diff --git a/Makefile b/Makefile index 34d5c9c7c..8c9c48cf7 100644 --- a/Makefile +++ b/Makefile @@ -21,9 +21,9 @@ build_apk_prod: generate_locale: flutter pub pub run intl_translation:extract_to_arb --output-dir assets/i18n lib/services/localization.dart - node bin/splitLocales + flutter pub pub run bin/split_locales.dart rm assets/i18n/intl_messages.arb build_locale: - node bin/buildLocales + flutter pub pub run bin/build_locales.dart flutter pub pub run intl_translation:generate_from_arb --output-dir=lib/locale --no-use-deferred-loading lib/services/localization.dart assets/i18n/intl_*.arb diff --git a/android/app/src/main/AndroidManifest.xml b/android/app/src/main/AndroidManifest.xml index 959c67128..f7742dd34 100644 --- a/android/app/src/main/AndroidManifest.xml +++ b/android/app/src/main/AndroidManifest.xml @@ -6,7 +6,7 @@ to allow setting breakpoints, to provide hot reload, etc. --> - + @@ -26,7 +26,9 @@ + android:icon="@mipmap/ic_launcher" + android:usesCleartextTraffic="true" + > - - - + + + + + + + + - - - + + + args = new HashMap<>(); - if (intent.getType().startsWith("image/")) { - Uri uri = intent.getParcelableExtra(Intent.EXTRA_STREAM); - uri = copyImageToTempFile(uri); - args.put("path", uri.toString()); - } else if (intent.getType().startsWith("text/")) { - args.put("text", intent.getStringExtra(Intent.EXTRA_TEXT)); - } else { - Log.w(getClass().getSimpleName(), "unknown intent type \"" + intent.getType() + "\" received, ignoring"); - return; + + try { + if (intent.getType().startsWith("image/")) { + Uri uri = intent.getParcelableExtra(Intent.EXTRA_STREAM); + if (!getExtensionFromUri(uri).equalsIgnoreCase("gif")) { + args.put("image", copyImageToTempFile(uri).toString()); + } else { + args.put("video", copyVideoToTempFileIfNeeded(uri).toString()); + } + } else if (intent.getType().startsWith("video/")) { + Uri uri = intent.getParcelableExtra(Intent.EXTRA_STREAM); + args.put("video", copyVideoToTempFileIfNeeded(uri).toString()); + } else if (intent.getType().startsWith("text/")) { + args.put("text", intent.getStringExtra(Intent.EXTRA_TEXT)); + } else { + Log.w(getClass().getSimpleName(), "unknown intent type \"" + intent.getType() + "\" received, ignoring"); + return; + } + } catch (KeyedException e) { + String msg = String.format("an exception occurred while receiving share of type %s" + + "%n %s", intent.getType(), e.getCause() != null ? e.getCause().toString() : e.toString()); + String errorTextKey = getLocalizationKey(e); + + args.put("error", errorTextKey); + Log.w(getClass().getSimpleName(), msg); } + Log.i(getClass().getSimpleName(), "sending intent to flutter"); eventSink.success(args); } } - private Uri copyImageToTempFile(Uri imageUri) { + private Uri copyImageToTempFile(Uri imageUri) throws KeyedException { + byte[] data = convertImage(imageUri); + File imageFile = createTemporaryFile(".jpeg"); + copyResourceToFile(() -> new ByteArrayInputStream(data), imageFile); + + return Uri.fromFile(imageFile); + } + + private byte[] convertImage(Uri imageUri) throws KeyedException { try { - byte[] data; + InputStream imageStream; + if (imageUri.getScheme().equals("content")) { - data = ImageConverter.convertImageData(this.getContentResolver().openInputStream(imageUri), ImageConverter.TargetFormat.JPEG); + imageStream = this.getContentResolver().openInputStream(imageUri); + } else if (imageUri.getScheme().equals("file")) { + imageStream = new FileInputStream(imageUri.getPath()); } else { - data = ImageConverter.convertImageDataFile(new File(imageUri.getPath()), ImageConverter.TargetFormat.JPEG); + throw new KeyedException(KeyedException.Key.UriSchemeNotSupported, imageUri.getScheme(), null); } - File imageFile = createTemporaryFile(".jpeg"); - FileOutputStream fileOutput = new FileOutputStream(imageFile); - fileOutput.write(data); - fileOutput.close(); + return ImageConverter.convertImageData(imageStream, ImageConverter.TargetFormat.JPEG); + } catch (FileNotFoundException e) { + throw new KeyedException(KeyedException.Key.ReadFileMissing, e); + } + } - return Uri.fromFile(imageFile); - } catch (IOException e) { - throw new RuntimeException(e); + private Uri copyVideoToTempFileIfNeeded(Uri videoUri) throws KeyedException { + Uri result = null; + + if (videoUri.getScheme().equals("file")) { + result = videoUri; + } else if (videoUri.getScheme().equals("content")){ + String extension = getExtensionFromUri(videoUri); + File tempFile = createTemporaryFile("." + extension); + copyResourceToFile(() -> getContentResolver().openInputStream(videoUri), tempFile); + result = Uri.fromFile(tempFile); + } else { + throw new KeyedException(KeyedException.Key.UriSchemeNotSupported, videoUri.getScheme(), null); } + + return result; } - private File createTemporaryFile(String extension) { + private String getExtensionFromUri(Uri uri) throws KeyedException { + if (uri.getScheme().equals("content")) { + String mime = this.getContentResolver().getType(uri); + return MimeTypeMap.getSingleton().getExtensionFromMimeType(mime); + } else if (uri.getScheme().equals("file")) { + return MimeTypeMap.getFileExtensionFromUrl(uri.toString()); + } else { + throw new KeyedException(KeyedException.Key.UriSchemeNotSupported, uri.getScheme(), null); + } + } + + private File createTemporaryFile(String extension) throws KeyedException { + String name = UUID.randomUUID().toString(); + try { - String name = UUID.randomUUID().toString(); return File.createTempFile(name, extension, this.getExternalFilesDir(Environment.DIRECTORY_PICTURES)); } catch (IOException e) { - throw new RuntimeException(e); + throw new KeyedException(KeyedException.Key.TempCreationFailed, e); + } catch (SecurityException e) { + throw new KeyedException(KeyedException.Key.TempCreationDenied, e); + } + } + + private void copyResourceToFile(InputStreamSupplier inputSupplier, File target) throws KeyedException { + try (InputStream input = inputSupplier.get()) { + try (OutputStream output = new FileOutputStream(target)) { + byte[] data = new byte[1024]; + int length; + while ((length = input.read(data)) > 0) { + output.write(data, 0, length); + } + } + catch (FileNotFoundException e) { + throw new KeyedException(KeyedException.Key.WriteTempMissing, e); + } catch (IOException e) { + throw new KeyedException(KeyedException.Key.WriteTempFailed, e); + } catch (SecurityException e) { + throw new KeyedException(KeyedException.Key.WriteTempDenied, e); + } + } + catch (FileNotFoundException e) { + throw new KeyedException(KeyedException.Key.ReadFileMissing, e); + } catch (IOException e) { + //Exception when closing the streams. Ignore. + } + } + + private String getLocalizationKey(KeyedException e) { + String errorTextKey = ""; + + switch (e.getKey()) { + case TempCreationFailed: + case WriteTempFailed: + case WriteTempMissing: + errorTextKey = "error__receive_share_temp_write_failed"; + break; + case WriteTempDenied: + case TempCreationDenied: + errorTextKey = "error__receive_share_temp_write_denied"; + break; + case UriSchemeNotSupported: + errorTextKey = "error__receive_share_invalid_uri_scheme"; + break; + case ReadFileMissing: + errorTextKey = "error__receive_share_file_not_found"; + break; + } + + return errorTextKey; + } +} + +class KeyedException extends Exception { + public enum Key { + TempCreationFailed("Failed to create temporary file."), + TempCreationDenied(TempCreationFailed.message), + WriteTempDenied("Failed to write to temporary file."), + WriteTempFailed(WriteTempDenied.message), + WriteTempMissing(WriteTempDenied.message), + ReadFileMissing("Failed to read the shared file."), + UriSchemeNotSupported("Unsupported UR scheme: "); + + private String message; + + private Key(String msg) { + message = msg; } } + private final Key key; + + public KeyedException(Key key, Throwable cause) { + super(cause); + this.key = key; + } + + public KeyedException(Key key, String message, Throwable cause) { + super(message, cause); + this.key = key; + } + + public Key getKey() { + return key; + } + + @Override + public String getMessage() { + return key.message + super.getMessage(); + } } diff --git a/android/app/src/main/java/com/example/openbook/util/InputStreamSupplier.java b/android/app/src/main/java/com/example/openbook/util/InputStreamSupplier.java new file mode 100644 index 000000000..88b3f7dad --- /dev/null +++ b/android/app/src/main/java/com/example/openbook/util/InputStreamSupplier.java @@ -0,0 +1,9 @@ +package com.example.openbook.util; + +import java.io.FileNotFoundException; +import java.io.InputStream; + +@FunctionalInterface +public interface InputStreamSupplier { + public InputStream get() throws FileNotFoundException; +} \ No newline at end of file diff --git a/android/build.gradle b/android/build.gradle index 531aa78a2..6e2e13881 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -20,6 +20,11 @@ rootProject.buildDir = '../build' subprojects { project.buildDir = "${rootProject.buildDir}/${project.name}" } + +ext { + flutterFFmpegPackage = "full-gpl-lts" +} + subprojects { project.evaluationDependsOn(':app') } diff --git a/assets/i18n/da/application_settings.arb b/assets/i18n/da/application_settings.arb new file mode 100644 index 000000000..4d259913b --- /dev/null +++ b/assets/i18n/da/application_settings.arb @@ -0,0 +1,82 @@ +{ + "videos": "Videoer", + "@videos": { + "type": "text", + "placeholders": {} + }, + "link_previews": "Link forhåndsvisninger", + "@link_previews": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay": "Automatisk afspilning", + "@videos_autoplay": { + "type": "text", + "placeholders": {} + }, + "link_previews_show": "Vis", + "@link_previews_show": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_always": "Altid", + "@videos_autoplay_always": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_wifi_only": "Kun Wi-Fi", + "@videos_autoplay_wifi_only": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_never": "Aldrig", + "@videos_autoplay_never": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_always": "Altid", + "@link_previews_autoplay_always": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_wifi_only": "Kun Wi-Fi", + "@link_previews_autoplay_wifi_only": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_never": "Aldrig", + "@link_previews_autoplay_never": { + "type": "text", + "placeholders": {} + }, + "videos_sound": "Lyd", + "@videos_sound": { + "type": "text", + "placeholders": {} + }, + "tap_to_change": "(Tryk for at ændre)", + "@tap_to_change": { + "type": "text", + "placeholders": {} + }, + "videos_sound_enabled": "Aktiveret", + "@videos_sound_enabled": { + "type": "text", + "placeholders": {} + }, + "videos_sound_disabled": "Deaktiveret", + "@videos_sound_disabled": { + "type": "text", + "placeholders": {} + }, + "comment_sort_newest_first": "Nyeste først", + "@comment_sort_newest_first": { + "type": "text", + "placeholders": {} + }, + "comment_sort_oldest_first": "Ældste først", + "@comment_sort_oldest_first": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/da/auth.arb b/assets/i18n/da/auth.arb new file mode 100644 index 000000000..5d729a5be --- /dev/null +++ b/assets/i18n/da/auth.arb @@ -0,0 +1,531 @@ +{ + "headline": "Better social.", + "@headline": { + "type": "text", + "placeholders": {} + }, + "login": "Log ind", + "@login": { + "type": "text", + "placeholders": {} + }, + "email_empty_error": "Email adresse kan ikke være tom.", + "@email_empty_error": { + "type": "text", + "placeholders": {} + }, + "email_invalid_error": "Angiv venligst en gyldig email adresse.", + "@email_invalid_error": { + "type": "text", + "placeholders": {} + }, + "username_empty_error": "Brugernavn må ikke være tomt.", + "@username_empty_error": { + "type": "text", + "placeholders": {} + }, + "username_characters_error": "Et brugernavn kan kun indeholde alfanumeriske tegn og underscore.", + "@username_characters_error": { + "type": "text", + "placeholders": {} + }, + "username_maxlength_error": "Et brugernavn kan ikke være længere end {maxLength} tegn.", + "@username_maxlength_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "create_account": "Tilmeld dig", + "@create_account": { + "type": "text", + "placeholders": {} + }, + "create_acc__lets_get_started": "Lad os komme i gang", + "@create_acc__lets_get_started": { + "type": "text", + "placeholders": {} + }, + "create_acc__welcome_to_beta": "Velkommen til beta!", + "@create_acc__welcome_to_beta": { + "type": "text", + "placeholders": {} + }, + "create_acc__previous": "Tilbage", + "@create_acc__previous": { + "type": "text", + "placeholders": {} + }, + "create_acc__next": "Næste", + "@create_acc__next": { + "type": "text", + "placeholders": {} + }, + "create_acc__create_account": "Opret konto", + "@create_acc__create_account": { + "type": "text", + "placeholders": {} + }, + "create_acc__paste_link": "Indsæt dit registrerings link nedenfor", + "@create_acc__paste_link": { + "type": "text", + "placeholders": {} + }, + "create_acc__paste_password_reset_link": "Indsæt dit link til nulstilling af adgangskode nedenfor", + "@create_acc__paste_password_reset_link": { + "type": "text", + "placeholders": {} + }, + "create_acc__paste_link_help_text": "Benyt linket fra tilmeld Okuna knappen i din email invitation.", + "@create_acc__paste_link_help_text": { + "type": "text", + "placeholders": {} + }, + "create_acc__link_empty_error": "Link feltet må ikke være tomt.", + "@create_acc__link_empty_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__link_invalid_error": "Fejl i linket.", + "@create_acc__link_invalid_error": { + "type": "text", + "placeholders": {} + }, + "password_empty_error": "Adgangskoden må ikke være tom.", + "@password_empty_error": { + "type": "text", + "placeholders": {} + }, + "password_range_error": "Adgangskoden skal være imellem {minLength} og {maxLength} tegn.", + "@password_range_error": { + "type": "text", + "placeholders": { + "minLength": {}, + "maxLength": {} + } + }, + "name_empty_error": "Navn er obligatorisk.", + "@name_empty_error": { + "type": "text", + "placeholders": {} + }, + "name_range_error": "Navn skal være imellem {minLength} og {maxLength} tegn.", + "@name_range_error": { + "type": "text", + "placeholders": { + "minLength": {}, + "maxLength": {} + } + }, + "description_empty_error": "Beskrivelse må ikke være tom.", + "@description_empty_error": { + "type": "text", + "placeholders": {} + }, + "description_range_error": "Beskrivelse skal være imellem {minLength} og {maxLength} tegn.", + "@description_range_error": { + "type": "text", + "placeholders": { + "minLength": {}, + "maxLength": {} + } + }, + "reset_password_success_title": "Klar!", + "@reset_password_success_title": { + "type": "text", + "placeholders": {} + }, + "reset_password_success_info": "Din adgangskode er blevet ændret", + "@reset_password_success_info": { + "type": "text", + "placeholders": {} + }, + "create_acc__request_invite": "Har du ingen invitation? Anmod om en her.", + "@create_acc__request_invite": { + "type": "text", + "placeholders": {} + }, + "create_acc__subscribe": "Bestil", + "@create_acc__subscribe": { + "type": "text", + "placeholders": {} + }, + "create_acc__subscribe_to_waitlist_text": "Anmod om en invitation!", + "@create_acc__subscribe_to_waitlist_text": { + "type": "text", + "placeholders": {} + }, + "create_acc__congratulations": "Tillykke!", + "@create_acc__congratulations": { + "type": "text", + "placeholders": {} + }, + "create_acc__your_subscribed": "Du er nr. {0} på ventelisten.", + "@create_acc__your_subscribed": { + "type": "text", + "placeholders": {} + }, + "create_acc__almost_there": "Næsten færdig...", + "@create_acc__almost_there": { + "type": "text", + "placeholders": {} + }, + "create_acc__what_name": "Hvad er dit navn?", + "@create_acc__what_name": { + "type": "text", + "placeholders": {} + }, + "create_acc__name_placeholder": "James Bond", + "@create_acc__name_placeholder": { + "type": "text", + "placeholders": {} + }, + "create_acc__name_empty_error": "😱 Dit navn må ikke være tomt.", + "@create_acc__name_empty_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__name_length_error": "😱 Dit navn kan ikke være længere end 50 tegn. (Hvis det er, beklager vi meget.)", + "@create_acc__name_length_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__name_characters_error": "😅 Et brugernavn kan kun indeholde alfanumeriske tegn (indtil vidre).", + "@create_acc__name_characters_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__what_username": "Vælg et brugernavn", + "@create_acc__what_username": { + "type": "text", + "placeholders": {} + }, + "create_acc__username_placeholder": "pablopicasso", + "@create_acc__username_placeholder": { + "type": "text", + "placeholders": {} + }, + "create_acc__username_empty_error": "😱 Brugernavnet må ikke være tomt.", + "@create_acc__username_empty_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__username_length_error": "😅 Et brugernavn kan ikke være længere end 30 tegn.", + "@create_acc__username_length_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__username_characters_error": "😅 Et brugernavn kan kun indeholde alfanumeriske tegn og understreg.", + "@create_acc__username_characters_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__username_taken_error": "😩 Brugernavnet @%s er allerede benyttet.", + "@create_acc__username_taken_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__username_server_error": "😭 Vi har problemer med vores servere, prøv venligst igen om et par minutter.", + "@create_acc__username_server_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__what_email": "Hvad er din email?", + "@create_acc__what_email": { + "type": "text", + "placeholders": {} + }, + "create_acc__email_placeholder": "john_travolta@mail.com", + "@create_acc__email_placeholder": { + "type": "text", + "placeholders": {} + }, + "create_acc__email_empty_error": "😱 Din email adresse kan ikke være tom", + "@create_acc__email_empty_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__email_invalid_error": "😅 Angiv venligst en gyldig email adresse.", + "@create_acc__email_invalid_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__email_taken_error": "🤔 Der findes allerede en konto med denne email adresse.", + "@create_acc__email_taken_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__email_server_error": "😭 Vi har problemer med vores servere, prøv venligst igen om et par minutter.", + "@create_acc__email_server_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__what_password": "Vælg en adgangskode", + "@create_acc__what_password": { + "type": "text", + "placeholders": {} + }, + "create_acc_password_hint_text": "({minLength}-{maxLength} tegn)", + "@create_acc_password_hint_text": { + "type": "text", + "placeholders": { + "minLength": {}, + "maxLength": {} + } + }, + "create_acc__what_password_subtext": "(min 10 tegn.)", + "@create_acc__what_password_subtext": { + "type": "text", + "placeholders": {} + }, + "create_acc__password_empty_error": "😱 Din adgangskode må ikke være tom", + "@create_acc__password_empty_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__password_length_error": "😅 Adgangskoden skal være imellem 8 og 64 tegn.", + "@create_acc__password_length_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__what_avatar": "Tilføj et profilbillede", + "@create_acc__what_avatar": { + "type": "text", + "placeholders": {} + }, + "create_acc__avatar_tap_to_change": "Tryk for at ændre", + "@create_acc__avatar_tap_to_change": { + "type": "text", + "placeholders": {} + }, + "create_acc__avatar_choose_camera": "Tag et billede", + "@create_acc__avatar_choose_camera": { + "type": "text", + "placeholders": {} + }, + "create_acc__avatar_choose_gallery": "Vælg et eksisterende billede", + "@create_acc__avatar_choose_gallery": { + "type": "text", + "placeholders": {} + }, + "create_acc__avatar_remove_photo": "Fjern billede", + "@create_acc__avatar_remove_photo": { + "type": "text", + "placeholders": {} + }, + "create_acc__done": "Opret konto", + "@create_acc__done": { + "type": "text", + "placeholders": {} + }, + "create_acc__done_subtext": "Du kan ændre dette senere i profil indstillinger.", + "@create_acc__done_subtext": { + "type": "text", + "placeholders": {} + }, + "create_acc__done_created": "Din konto er oprettet med brugernavn ", + "@create_acc__done_created": { + "type": "text", + "placeholders": {} + }, + "create_acc__submit_loading_title": "Hav tålmodighed!", + "@create_acc__submit_loading_title": { + "type": "text", + "placeholders": {} + }, + "create_acc__submit_loading_desc": "Vi opretter din konto.", + "@create_acc__submit_loading_desc": { + "type": "text", + "placeholders": {} + }, + "create_acc__submit_error_title": "Åh nej...", + "@create_acc__submit_error_title": { + "type": "text", + "placeholders": {} + }, + "create_acc__submit_error_desc_server": "😭 Vi har problemer med vores servere, prøv venligst igen om et par minutter.", + "@create_acc__submit_error_desc_server": { + "type": "text", + "placeholders": {} + }, + "create_acc__submit_error_desc_validation": "😅 Det ser ud til at nogle af informationerne ikke var korrekte, kontroller venligst og prøv igen.", + "@create_acc__submit_error_desc_validation": { + "type": "text", + "placeholders": {} + }, + "create_acc__done_title": "Hurra!", + "@create_acc__done_title": { + "type": "text", + "placeholders": {} + }, + "create_acc__done_description": "Din konto er oprettet.", + "@create_acc__done_description": { + "type": "text", + "placeholders": {} + }, + "create_acc__your_username_is": "Dit brugernavn er ", + "@create_acc__your_username_is": { + "type": "text", + "placeholders": {} + }, + "create_acc__can_change_username": "Hvis du ønsker, kan du altid ændre det via din profil side.", + "@create_acc__can_change_username": { + "type": "text", + "placeholders": {} + }, + "create_acc__done_continue": "Log ind", + "@create_acc__done_continue": { + "type": "text", + "placeholders": {} + }, + "create_acc__one_last_thing": "En sidste ting...", + "@create_acc__one_last_thing": { + "type": "text", + "placeholders": {} + }, + "create_acc__register": "Tilmeld", + "@create_acc__register": { + "type": "text", + "placeholders": {} + }, + "create_acc__are_you_legal_age": "Er du ældre end 16 år?", + "@create_acc__are_you_legal_age": { + "type": "text", + "placeholders": {} + }, + "login__login": "Fortsæt", + "@login__login": { + "type": "text", + "placeholders": {} + }, + "login__previous": "Forrige", + "@login__previous": { + "type": "text", + "placeholders": {} + }, + "login__title": "Velkommen tilbage!", + "@login__title": { + "type": "text", + "placeholders": {} + }, + "login__subtitle": "Indtast dine oplysninger for at fortsætte.", + "@login__subtitle": { + "type": "text", + "placeholders": {} + }, + "login__forgot_password": "Glemt adgangskode", + "@login__forgot_password": { + "type": "text", + "placeholders": {} + }, + "login__forgot_password_subtitle": "Angiv venligst dit brugernavn eller email", + "@login__forgot_password_subtitle": { + "type": "text", + "placeholders": {} + }, + "login__username_label": "Brugernavn", + "@login__username_label": { + "type": "text", + "placeholders": {} + }, + "login__password_label": "Adgangskode", + "@login__password_label": { + "type": "text", + "placeholders": {} + }, + "login__email_label": "Email", + "@login__email_label": { + "type": "text", + "placeholders": {} + }, + "login__or_text": "Eller", + "@login__or_text": { + "type": "text", + "placeholders": {} + }, + "login__password_empty_error": "Adgangskode er obligatorisk.", + "@login__password_empty_error": { + "type": "text", + "placeholders": {} + }, + "login__password_length_error": "Adgangskoden skal være imellem 8 og 64 tegn.", + "@login__password_length_error": { + "type": "text", + "placeholders": {} + }, + "login__username_empty_error": "Brugernavnet er obligatorisk.", + "@login__username_empty_error": { + "type": "text", + "placeholders": {} + }, + "login__username_length_error": "Et brugernavn kan ikke være længere end 30 tegn.", + "@login__username_length_error": { + "type": "text", + "placeholders": {} + }, + "login__username_characters_error": "Et brugernavn kan kun indeholde alfanumeriske tegn og underscore.", + "@login__username_characters_error": { + "type": "text", + "placeholders": {} + }, + "login__credentials_mismatch_error": "De angivne oplysninger er ikke gyldige.", + "@login__credentials_mismatch_error": { + "type": "text", + "placeholders": {} + }, + "login__server_error": "Æh øh... Vi oplever problemer med serverne. Prøv venligst igen om nogle minutter.", + "@login__server_error": { + "type": "text", + "placeholders": {} + }, + "login__connection_error": "Vi kan ikke forbinde til vores servere. Er du forbundet med internettet?", + "@login__connection_error": { + "type": "text", + "placeholders": {} + }, + "change_password_title": "Ændre adgangskode", + "@change_password_title": { + "type": "text", + "placeholders": {} + }, + "change_password_current_pwd": "Nuværende adgangskode", + "@change_password_current_pwd": { + "type": "text", + "placeholders": {} + }, + "change_password_current_pwd_hint": "Angiv den nuværende adgangskode", + "@change_password_current_pwd_hint": { + "type": "text", + "placeholders": {} + }, + "change_password_current_pwd_incorrect": "Den indtastede adgangskode er forkert", + "@change_password_current_pwd_incorrect": { + "type": "text", + "placeholders": {} + }, + "change_password_new_pwd": "Ny adgangskode", + "@change_password_new_pwd": { + "type": "text", + "placeholders": {} + }, + "change_password_new_pwd_hint": "Indtast din nye adgangskode", + "@change_password_new_pwd_hint": { + "type": "text", + "placeholders": {} + }, + "change_password_new_pwd_error": "Verificer venligst at adgangskoden er mellem 10 og 100 tegn lang", + "@change_password_new_pwd_error": { + "type": "text", + "placeholders": {} + }, + "change_password_save_text": "Gem", + "@change_password_save_text": { + "type": "text", + "placeholders": {} + }, + "change_password_save_success": "Alt vel! Din adgangskode er opdateret", + "@change_password_save_success": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/da/community.arb b/assets/i18n/da/community.arb new file mode 100644 index 000000000..de1a6e9e7 --- /dev/null +++ b/assets/i18n/da/community.arb @@ -0,0 +1,752 @@ +{ + "no": "Nej", + "@no": { + "type": "text", + "placeholders": {} + }, + "yes": "Ja", + "@yes": { + "type": "text", + "placeholders": {} + }, + "button_staff": "Personale", + "@button_staff": { + "type": "text", + "placeholders": {} + }, + "button_rules": "Regler", + "@button_rules": { + "type": "text", + "placeholders": {} + }, + "community": "fællesskab", + "@community": { + "type": "text", + "placeholders": {} + }, + "communities": "fælleskaber", + "@communities": { + "type": "text", + "placeholders": {} + }, + "type_public": "Offentlig", + "@type_public": { + "type": "text", + "placeholders": {} + }, + "type_private": "Privat", + "@type_private": { + "type": "text", + "placeholders": {} + }, + "member_capitalized": "Medlem", + "@member_capitalized": { + "type": "text", + "placeholders": {} + }, + "members_capitalized": "Medlemmer", + "@members_capitalized": { + "type": "text", + "placeholders": {} + }, + "admin_desc": "Dette vil tillade medlemmet at redigere fællesskabs detaljerne, administratorer, moderatorer og blokerede brugere.", + "@admin_desc": { + "type": "text", + "placeholders": {} + }, + "confirmation_title": "Bekræftelse", + "@confirmation_title": { + "type": "text", + "placeholders": {} + }, + "retry_loading_posts": "Tryk for at prøve igen", + "@retry_loading_posts": { + "type": "text", + "placeholders": {} + }, + "admin_add_confirmation": "Er du sikker på at du tilføje @{username} som fællesskabs administrator?", + "@admin_add_confirmation": { + "type": "text", + "placeholders": { + "username": {} + } + }, + "ban_confirmation": "Er du sikker på, at du vil blokere @{username}?", + "@ban_confirmation": { + "type": "text", + "placeholders": { + "username": {} + } + }, + "ban_desc": "Dette vil fjerne brugeren fra fællesskabet og forhindre den i at blive medlem igen.", + "@ban_desc": { + "type": "text", + "placeholders": {} + }, + "moderator_add_confirmation": "Er du sikker på at du tilføje @{username} som fællesskabs moderator?", + "@moderator_add_confirmation": { + "type": "text", + "placeholders": { + "username": {} + } + }, + "moderator_desc": "Dette vil tillade medlemmet at redigere fællesskabs detaljerne, moderatorer og blokerede brugere.", + "@moderator_desc": { + "type": "text", + "placeholders": {} + }, + "moderators_you": "Dig", + "@moderators_you": { + "type": "text", + "placeholders": {} + }, + "moderators_title": "Moderatorer", + "@moderators_title": { + "type": "text", + "placeholders": {} + }, + "leave_desc": "Du vil ikke længere se dens opslag i din tidslinje og kan heller ikke lave opslag til den længere.", + "@leave_desc": { + "type": "text", + "placeholders": {} + }, + "leave_confirmation": "Er du sikker på at du vil forlade fællesskabet?", + "@leave_confirmation": { + "type": "text", + "placeholders": {} + }, + "moderator_resource_name": "moderator", + "@moderator_resource_name": { + "type": "text", + "placeholders": {} + }, + "moderators_resource_name": "moderatorer", + "@moderators_resource_name": { + "type": "text", + "placeholders": {} + }, + "add_moderator_title": "Tilføj en moderator", + "@add_moderator_title": { + "type": "text", + "placeholders": {} + }, + "delete_confirmation": "Er du sikker på at du vil slette fællesskabet?", + "@delete_confirmation": { + "type": "text", + "placeholders": {} + }, + "delete_desc": "Du vil ikke længere se dens opslag i din tidslinje og kan heller ikke lave opslag til den længere.", + "@delete_desc": { + "type": "text", + "placeholders": {} + }, + "actions_manage_text": "Administrere", + "@actions_manage_text": { + "type": "text", + "placeholders": {} + }, + "manage_title": "Administrere fællesskab", + "@manage_title": { + "type": "text", + "placeholders": {} + }, + "manage_details_title": "Detaljer", + "@manage_details_title": { + "type": "text", + "placeholders": {} + }, + "manage_details_desc": "Ændre titel, navn, avatar, coverbillede mv.", + "@manage_details_desc": { + "type": "text", + "placeholders": {} + }, + "manage_admins_title": "Administratorer", + "@manage_admins_title": { + "type": "text", + "placeholders": {} + }, + "manage_admins_desc": "Se, tilføje og fjerne administratorer.", + "@manage_admins_desc": { + "type": "text", + "placeholders": {} + }, + "manage_mods_title": "Moderatorer", + "@manage_mods_title": { + "type": "text", + "placeholders": {} + }, + "manage_mods_desc": "Se, tilføje og fjerne moderatorer.", + "@manage_mods_desc": { + "type": "text", + "placeholders": {} + }, + "manage_banned_title": "Blokerede brugere", + "@manage_banned_title": { + "type": "text", + "placeholders": {} + }, + "manage_banned_desc": "Se, tilføje og fjerne blokerede brugere.", + "@manage_banned_desc": { + "type": "text", + "placeholders": {} + }, + "manage_mod_reports_title": "Moderations rapporter", + "@manage_mod_reports_title": { + "type": "text", + "placeholders": {} + }, + "manage_mod_reports_desc": "Gennemse fællesskabets moderations rapporter.", + "@manage_mod_reports_desc": { + "type": "text", + "placeholders": {} + }, + "manage_closed_posts_title": "Lukkede opslag", + "@manage_closed_posts_title": { + "type": "text", + "placeholders": {} + }, + "manage_closed_posts_desc": "Se og administrere lukkede opslag", + "@manage_closed_posts_desc": { + "type": "text", + "placeholders": {} + }, + "manage_invite_title": "Inviter personer", + "@manage_invite_title": { + "type": "text", + "placeholders": {} + }, + "manage_invite_desc": "Inviter dine forbindelser og følgere til at slutte sig til fællesskabet.", + "@manage_invite_desc": { + "type": "text", + "placeholders": {} + }, + "manage_delete_title": "Slet fællesskab", + "@manage_delete_title": { + "type": "text", + "placeholders": {} + }, + "manage_delete_desc": "Slet fællesskabet, for evigt.", + "@manage_delete_desc": { + "type": "text", + "placeholders": {} + }, + "manage_leave_title": "Forlad fællesskab", + "@manage_leave_title": { + "type": "text", + "placeholders": {} + }, + "manage_leave_desc": "Forlad fællesskabet.", + "@manage_leave_desc": { + "type": "text", + "placeholders": {} + }, + "manage_add_favourite": "Føj fællesskabet til dine favoritter", + "@manage_add_favourite": { + "type": "text", + "placeholders": {} + }, + "manage_remove_favourite": "Fjern fællesskabet fra dine favoritter", + "@manage_remove_favourite": { + "type": "text", + "placeholders": {} + }, + "is_private": "Dette fællesskab er privat.", + "@is_private": { + "type": "text", + "placeholders": {} + }, + "invited_by_member": "Du skal inviteres af et medlem.", + "@invited_by_member": { + "type": "text", + "placeholders": {} + }, + "invited_by_moderator": "Du skal inviteres af en moderator.", + "@invited_by_moderator": { + "type": "text", + "placeholders": {} + }, + "refreshing": "Opdaterer fællesskab", + "@refreshing": { + "type": "text", + "placeholders": {} + }, + "posts": "Opslag", + "@posts": { + "type": "text", + "placeholders": {} + }, + "about": "Om", + "@about": { + "type": "text", + "placeholders": {} + }, + "category": "kategori.", + "@category": { + "type": "text", + "placeholders": {} + }, + "categories": "kategorier.", + "@categories": { + "type": "text", + "placeholders": {} + }, + "add_administrators_title": "Tilføj administrator.", + "@add_administrators_title": { + "type": "text", + "placeholders": {} + }, + "community_members": "Fællesskabs medlemmer", + "@community_members": { + "type": "text", + "placeholders": {} + }, + "member": "medlem", + "@member": { + "description": "Currently not used in app, reserved for potential use. Could be used as: Showing 1 member", + "type": "text", + "placeholders": {} + }, + "member_plural": "medlemmer", + "@member_plural": { + "description": "See all members ,Search all members", + "type": "text", + "placeholders": {} + }, + "administrators_title": "Administratorer", + "@administrators_title": { + "type": "text", + "placeholders": {} + }, + "administrator_text": "administrator", + "@administrator_text": { + "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 administrator", + "type": "text", + "placeholders": {} + }, + "administrator_plural": "administratorer", + "@administrator_plural": { + "description": "Egs. Search administrators, See list_search_text in user_search.arb ", + "type": "text", + "placeholders": {} + }, + "administrator_you": "Dig", + "@administrator_you": { + "type": "text", + "placeholders": {} + }, + "user_you_text": "Dig", + "@user_you_text": { + "type": "text", + "placeholders": {} + }, + "pick_upto_max": "Vælg op til {max} kategorier", + "@pick_upto_max": { + "type": "text", + "placeholders": { + "max": {} + } + }, + "pick_atleast_min_category": "Du skal vælge mindst {min} kategori!", + "@pick_atleast_min_category": { + "description": "You must pick at least 1 category", + "type": "text", + "placeholders": { + "min": {} + } + }, + "pick_atleast_min_categories": "Du skal vælge mindst {min} kategorier!", + "@pick_atleast_min_categories": { + "description": "Eg. Variable min will be 3-5. You must pick at least (3-5) categories", + "type": "text", + "placeholders": { + "min": {} + } + }, + "ban_user_title": "Bloker bruger", + "@ban_user_title": { + "type": "text", + "placeholders": {} + }, + "banned_users_title": "Blokerede brugere", + "@banned_users_title": { + "type": "text", + "placeholders": {} + }, + "banned_user_text": "blokerede brugere", + "@banned_user_text": { + "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 banned user", + "type": "text", + "placeholders": {} + }, + "banned_users_text": "blokerede brugere", + "@banned_users_text": { + "description": "Egs. Search banned users, See list_search_text in user_search.arb ", + "type": "text", + "placeholders": {} + }, + "favorites_title": "Favoritter", + "@favorites_title": { + "type": "text", + "placeholders": {} + }, + "favorite_community": "favorit fællesskab", + "@favorite_community": { + "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 favorite community", + "type": "text", + "placeholders": {} + }, + "favorite_communities": "favorit fællesskaber", + "@favorite_communities": { + "description": "Egs. Search favorite communities, See list_search_text in user_search.arb ", + "type": "text", + "placeholders": {} + }, + "administrated_title": "Administreret", + "@administrated_title": { + "type": "text", + "placeholders": {} + }, + "administrated_community": "administreret fællesskab", + "@administrated_community": { + "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 administrated community", + "type": "text", + "placeholders": {} + }, + "administrated_communities": "administrerede fællesskaber", + "@administrated_communities": { + "description": "Egs. Search administrated communities, See list_search_text in user_search.arb ", + "type": "text", + "placeholders": {} + }, + "moderated_title": "Modereret", + "@moderated_title": { + "type": "text", + "placeholders": {} + }, + "moderated_community": "modereret fællesskab", + "@moderated_community": { + "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 moderated community", + "type": "text", + "placeholders": {} + }, + "moderated_communities": "modererede fællesskaber", + "@moderated_communities": { + "description": "Egs. Search moderated communities, See list_search_text in user_search.arb ", + "type": "text", + "placeholders": {} + }, + "joined_title": "Tilmeldt", + "@joined_title": { + "type": "text", + "placeholders": {} + }, + "joined_community": "tilmeldt fællesskab", + "@joined_community": { + "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 joined community", + "type": "text", + "placeholders": {} + }, + "joined_communities": "tilmeldte fællesskaber", + "@joined_communities": { + "description": "Egs. Search joined communities, See list_search_text in user_search.arb ", + "type": "text", + "placeholders": {} + }, + "join_communities_desc": "Tilmeld fællesskaber for at se denne tab komme til live!", + "@join_communities_desc": { + "type": "text", + "placeholders": {} + }, + "refresh_text": "Opdater", + "@refresh_text": { + "type": "text", + "placeholders": {} + }, + "trending_none_found": "Ingen populære fællesskaber fundet. Prøv igen om få minutter.", + "@trending_none_found": { + "type": "text", + "placeholders": {} + }, + "trending_refresh": "Opdater", + "@trending_refresh": { + "type": "text", + "placeholders": {} + }, + "trending_in_all": "Populær i alle kategorier", + "@trending_in_all": { + "type": "text", + "placeholders": {} + }, + "trending_in_category": "Populær i {categoryName}", + "@trending_in_category": { + "type": "text", + "placeholders": { + "categoryName": {} + } + }, + "communities_title": "Fælleskaber", + "@communities_title": { + "type": "text", + "placeholders": {} + }, + "communities_no_category_found": "Ingen kategorier fundet. Prøv igen om nogle minutter.", + "@communities_no_category_found": { + "type": "text", + "placeholders": {} + }, + "communities_refresh_text": "Opdater", + "@communities_refresh_text": { + "type": "text", + "placeholders": {} + }, + "communities_all_text": "Alle", + "@communities_all_text": { + "type": "text", + "placeholders": {} + }, + "invite_to_community_title": "Inviter til fællesskab", + "@invite_to_community_title": { + "type": "text", + "placeholders": {} + }, + "invite_to_community_resource_singular": "forbindelse eller følger", + "@invite_to_community_resource_singular": { + "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 connection or follower", + "type": "text", + "placeholders": {} + }, + "invite_to_community_resource_plural": "forbindelser og følgere", + "@invite_to_community_resource_plural": { + "description": "Egs. Search connections and followers, See list_search_text in user_search.arb ", + "type": "text", + "placeholders": {} + }, + "favorite_action": "Favorit fællesskab", + "@favorite_action": { + "type": "text", + "placeholders": {} + }, + "unfavorite_action": "Fjern fællesskab fra favoritter", + "@unfavorite_action": { + "type": "text", + "placeholders": {} + }, + "save_community_label_title": "Titel", + "@save_community_label_title": { + "type": "text", + "placeholders": {} + }, + "save_community_label_title_hint_text": "f.eks Rejse, Fotografi, Spil.", + "@save_community_label_title_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_community_name_title": "Navn", + "@save_community_name_title": { + "type": "text", + "placeholders": {} + }, + "save_community_name_title_hint_text": " f.eks rejse, fotografi, spil.", + "@save_community_name_title_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_community_name_taken": "Fællesskabs navn '{takenName}' er i brug", + "@save_community_name_taken": { + "type": "text", + "placeholders": { + "takenName": {} + } + }, + "save_community_name_label_color": "Farve", + "@save_community_name_label_color": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_color_hint_text": "(Tryk for at ændre)", + "@save_community_name_label_color_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_type": "Type", + "@save_community_name_label_type": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_type_hint_text": "(Tryk for at ændre)", + "@save_community_name_label_type_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_community_name_member_invites": "Medlems invitationer", + "@save_community_name_member_invites": { + "type": "text", + "placeholders": {} + }, + "save_community_name_member_invites_subtitle": "Medlemmer kan invitere folk til fællesskabet", + "@save_community_name_member_invites_subtitle": { + "type": "text", + "placeholders": {} + }, + "save_community_name_category": "Kategori", + "@save_community_name_category": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_desc_optional": "Beskrivelse · Valgfrit", + "@save_community_name_label_desc_optional": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_desc_optional_hint_text": "Hvad handler dit fællesskab om?", + "@save_community_name_label_desc_optional_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_rules_optional": "Regler · Valgfrit", + "@save_community_name_label_rules_optional": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_rules_optional_hint_text": "Er der noget du vil have dine brugere skal vide?", + "@save_community_name_label_rules_optional_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_member_adjective": "Medlems kaldenavn · Valgfrit", + "@save_community_name_label_member_adjective": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_member_adjective_hint_text": "f.eks rejsende, fotograf, gamer.", + "@save_community_name_label_member_adjective_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_members_adjective": "Medlems kaldenavn (flertal) · Valgfrit", + "@save_community_name_label_members_adjective": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_members_adjective_hint_text": "f.eks rejsende, fotografer, gamers.", + "@save_community_name_label_members_adjective_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_community_edit_community": "Rediger fællesskab", + "@save_community_edit_community": { + "type": "text", + "placeholders": {} + }, + "save_community_create_community": "Opret fællesskab", + "@save_community_create_community": { + "type": "text", + "placeholders": {} + }, + "save_community_save_text": "Gem", + "@save_community_save_text": { + "type": "text", + "placeholders": {} + }, + "save_community_create_text": "Opret", + "@save_community_create_text": { + "type": "text", + "placeholders": {} + }, + "actions_invite_people_title": "Inviter til fællesskab", + "@actions_invite_people_title": { + "type": "text", + "placeholders": {} + }, + "join_community": "Deltag", + "@join_community": { + "type": "text", + "placeholders": {} + }, + "leave_community": "Forlad", + "@leave_community": { + "type": "text", + "placeholders": {} + }, + "community_staff": "Fællesskabs administration", + "@community_staff": { + "type": "text", + "placeholders": {} + }, + "post_singular": "opslag", + "@post_singular": { + "type": "text", + "placeholders": {} + }, + "post_plural": "opslag", + "@post_plural": { + "type": "text", + "placeholders": {} + }, + "rules_title": "Fællesskabs regler", + "@rules_title": { + "type": "text", + "placeholders": {} + }, + "rules_text": "Regler", + "@rules_text": { + "type": "text", + "placeholders": {} + }, + "name_characters_error": "Et brugernavn kan kun indeholde alfanumeriske tegn og underscore.", + "@name_characters_error": { + "type": "text", + "placeholders": {} + }, + "name_range_error": "Et brugernavn kan ikke være længere end {maxLength} tegn.", + "@name_range_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "name_empty_error": "Navn er obligatorisk.", + "@name_empty_error": { + "type": "text", + "placeholders": {} + }, + "title_range_error": "Titlen kan ikke være længere end {maxLength} tegn.", + "@title_range_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "title_empty_error": "Titel må ikke være tom.", + "@title_empty_error": { + "type": "text", + "placeholders": {} + }, + "rules_range_error": "Regler kan ikke være længere end {maxLength} tegn.", + "@rules_range_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "rules_empty_error": "Regler er obligatoriske.", + "@rules_empty_error": { + "type": "text", + "placeholders": {} + }, + "description_range_error": "Beskrivelsen kan ikke være længere end {maxLength} tegn.", + "@description_range_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "adjectives_range_error": "Kaldenavne kan ikke være længere end {maxLength} tegn.", + "@adjectives_range_error": { + "description": "This refers to the customisable adjectives assigned to community members,eg. 1k travellers,5k photographers", + "type": "text", + "placeholders": { + "maxLength": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/da/contextual_account_search_box.arb b/assets/i18n/da/contextual_account_search_box.arb new file mode 100644 index 000000000..87e723694 --- /dev/null +++ b/assets/i18n/da/contextual_account_search_box.arb @@ -0,0 +1,8 @@ +{ + "suggestions": "Forslag", + "@suggestions": { + "description": "The title to display on the suggestions when searching for accounts when trying to mention someone.", + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/da/drawer.arb b/assets/i18n/da/drawer.arb new file mode 100644 index 000000000..7930722ed --- /dev/null +++ b/assets/i18n/da/drawer.arb @@ -0,0 +1,224 @@ +{ + "menu_title": "Menu", + "@menu_title": { + "type": "text", + "placeholders": {} + }, + "main_title": "Mit Okuna", + "@main_title": { + "type": "text", + "placeholders": {} + }, + "my_circles": "Mine cirkler", + "@my_circles": { + "type": "text", + "placeholders": {} + }, + "my_lists": "Mine lister", + "@my_lists": { + "type": "text", + "placeholders": {} + }, + "my_followers": "Mine følgere", + "@my_followers": { + "type": "text", + "placeholders": {} + }, + "my_following": "Hvem jeg følger", + "@my_following": { + "type": "text", + "placeholders": {} + }, + "my_invites": "Mine invitationer", + "@my_invites": { + "type": "text", + "placeholders": {} + }, + "my_pending_mod_tasks": "Mine udestående moderations opgaver", + "@my_pending_mod_tasks": { + "type": "text", + "placeholders": {} + }, + "my_mod_penalties": "Mine moderations straffe points", + "@my_mod_penalties": { + "type": "text", + "placeholders": {} + }, + "app_account_text": "App & Konto", + "@app_account_text": { + "type": "text", + "placeholders": {} + }, + "themes": "Temaer", + "@themes": { + "type": "text", + "placeholders": {} + }, + "global_moderation": "Global moderation", + "@global_moderation": { + "type": "text", + "placeholders": {} + }, + "profile": "Profil", + "@profile": { + "type": "text", + "placeholders": {} + }, + "connections": "Mine forbindelser", + "@connections": { + "type": "text", + "placeholders": {} + }, + "lists": "Mine lister", + "@lists": { + "type": "text", + "placeholders": {} + }, + "settings": "Indstillinger", + "@settings": { + "type": "text", + "placeholders": {} + }, + "application_settings": "App-indstillinger", + "@application_settings": { + "type": "text", + "placeholders": {} + }, + "account_settings": "Konto Indstillinger", + "@account_settings": { + "type": "text", + "placeholders": {} + }, + "developer_settings": "Udviklerindstillinger", + "@developer_settings": { + "type": "text", + "placeholders": {} + }, + "account_settings_change_email": "Skift Email", + "@account_settings_change_email": { + "type": "text", + "placeholders": {} + }, + "account_settings_change_password": "Skift Adgangskode", + "@account_settings_change_password": { + "type": "text", + "placeholders": {} + }, + "account_settings_notifications": "Notifikationer", + "@account_settings_notifications": { + "type": "text", + "placeholders": {} + }, + "account_settings_language_text": "Sprog", + "@account_settings_language_text": { + "type": "text", + "placeholders": {} + }, + "account_settings_language": "Sprog ({currentUserLanguage})", + "@account_settings_language": { + "type": "text", + "placeholders": { + "currentUserLanguage": {} + } + }, + "account_settings_blocked_users": "Blokerede brugere", + "@account_settings_blocked_users": { + "type": "text", + "placeholders": {} + }, + "account_settings_delete_account": "Slet konto", + "@account_settings_delete_account": { + "type": "text", + "placeholders": {} + }, + "help": "Support & Feedback", + "@help": { + "type": "text", + "placeholders": {} + }, + "customize": "Tilpas", + "@customize": { + "type": "text", + "placeholders": {} + }, + "logout": "Log ud", + "@logout": { + "type": "text", + "placeholders": {} + }, + "useful_links_title": "Nyttige links", + "@useful_links_title": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines": "Okuna retningslinjer", + "@useful_links_guidelines": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_desc": "De retningslinjer, som vi alle forventes at følge for et sundt og venskabeligt samvær.", + "@useful_links_guidelines_desc": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_github": "Github project board", + "@useful_links_guidelines_github": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_github_desc": "Se hvad vi i øjeblikket arbejder med", + "@useful_links_guidelines_github_desc": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_feature_requests": "Foreslå ny funktionalitet", + "@useful_links_guidelines_feature_requests": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_feature_requests_desc": "Foreslå ny funktionalitet eller stem på eksisterende forslag", + "@useful_links_guidelines_feature_requests_desc": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_bug_tracker": "Indberetning af fejl", + "@useful_links_guidelines_bug_tracker": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_bug_tracker_desc": "Indberet fejl eller stem på foreslåede rettelser", + "@useful_links_guidelines_bug_tracker_desc": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_handbook": "Okuna håndbog", + "@useful_links_guidelines_handbook": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_handbook_desc": "En bog med alt hvad der er værd at vide om at benytte platformen", + "@useful_links_guidelines_handbook_desc": { + "type": "text", + "placeholders": {} + }, + "useful_links_support": "Støt Okuna", + "@useful_links_support": { + "type": "text", + "placeholders": {} + }, + "useful_links_support_desc": "Find en vej at støtte os på vores tur!", + "@useful_links_support_desc": { + "type": "text", + "placeholders": {} + }, + "useful_links_slack_channel": "Fællesskabets Slack Channel", + "@useful_links_slack_channel": { + "type": "text", + "placeholders": {} + }, + "useful_links_slack_channel_desc": "Stedet hvor alt om Okuna diskuteres", + "@useful_links_slack_channel_desc": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/da/error.arb b/assets/i18n/da/error.arb new file mode 100644 index 000000000..3de993b0b --- /dev/null +++ b/assets/i18n/da/error.arb @@ -0,0 +1,12 @@ +{ + "unknown_error": "Ukendt fejl", + "@unknown_error": { + "type": "text", + "placeholders": {} + }, + "no_internet_connection": "Ingen internetforbindelse", + "@no_internet_connection": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/da/image_picker.arb b/assets/i18n/da/image_picker.arb new file mode 100644 index 000000000..bf3aeae2e --- /dev/null +++ b/assets/i18n/da/image_picker.arb @@ -0,0 +1,19 @@ +{ + "from_gallery": "Fra galleri", + "@from_gallery": { + "type": "text", + "placeholders": {} + }, + "from_camera": "Fra kamera", + "@from_camera": { + "type": "text", + "placeholders": {} + }, + "error_too_large": "Fil for stor (limit: {limit} MB)", + "@error_too_large": { + "type": "text", + "placeholders": { + "limit": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/da/moderation.arb b/assets/i18n/da/moderation.arb new file mode 100644 index 000000000..fe9536e6e --- /dev/null +++ b/assets/i18n/da/moderation.arb @@ -0,0 +1,361 @@ +{ + "filters_title": "Moderations Filtre", + "@filters_title": { + "type": "text", + "placeholders": {} + }, + "filters_reset": "Nulstil", + "@filters_reset": { + "type": "text", + "placeholders": {} + }, + "filters_verified": "Verificerede", + "@filters_verified": { + "type": "text", + "placeholders": {} + }, + "filters_apply": "Anvend filtre", + "@filters_apply": { + "type": "text", + "placeholders": {} + }, + "filters_type": "Type", + "@filters_type": { + "type": "text", + "placeholders": {} + }, + "filters_status": "Status", + "@filters_status": { + "type": "text", + "placeholders": {} + }, + "filters_other": "Andre", + "@filters_other": { + "type": "text", + "placeholders": {} + }, + "actions_review": "Gennemgå", + "@actions_review": { + "type": "text", + "placeholders": {} + }, + "actions_chat_with_team": "Chat med teamet", + "@actions_chat_with_team": { + "type": "text", + "placeholders": {} + }, + "update_category_title": "Opdater Kategori", + "@update_category_title": { + "type": "text", + "placeholders": {} + }, + "update_category_save": "Gem", + "@update_category_save": { + "type": "text", + "placeholders": {} + }, + "update_description_save": "Gem", + "@update_description_save": { + "type": "text", + "placeholders": {} + }, + "update_description_title": "Rediger beskrivelse", + "@update_description_title": { + "type": "text", + "placeholders": {} + }, + "update_description_report_desc": "Anmeldelses beskrivelse", + "@update_description_report_desc": { + "type": "text", + "placeholders": {} + }, + "update_description_report_hint_text": "f.eks Det anmeldte blev vurderet at...", + "@update_description_report_hint_text": { + "type": "text", + "placeholders": {} + }, + "update_status_save": "Gem", + "@update_status_save": { + "type": "text", + "placeholders": {} + }, + "update_status_title": "Opdater status", + "@update_status_title": { + "type": "text", + "placeholders": {} + }, + "community_review_title": "Gennemse moderet objekt", + "@community_review_title": { + "type": "text", + "placeholders": {} + }, + "moderated_object_title": "Objekt", + "@moderated_object_title": { + "type": "text", + "placeholders": {} + }, + "moderated_object_status": "Status", + "@moderated_object_status": { + "type": "text", + "placeholders": {} + }, + "moderated_object_reports_count": "Anmeldelses antal", + "@moderated_object_reports_count": { + "type": "text", + "placeholders": {} + }, + "moderated_object_verified_by_staff": "Gennemset af Okuna personale", + "@moderated_object_verified_by_staff": { + "type": "text", + "placeholders": {} + }, + "moderated_object_verified": "Gennemset", + "@moderated_object_verified": { + "type": "text", + "placeholders": {} + }, + "moderated_object_true_text": "Ja", + "@moderated_object_true_text": { + "description": "Eg. Moderated object verified by staff? true / false", + "type": "text", + "placeholders": {} + }, + "moderated_object_false_text": "Nej", + "@moderated_object_false_text": { + "description": "Eg. Moderated object verified by staff? true / false", + "type": "text", + "placeholders": {} + }, + "community_review_object": "Objekt", + "@community_review_object": { + "type": "text", + "placeholders": {} + }, + "community_review_approve": "Godkend", + "@community_review_approve": { + "type": "text", + "placeholders": {} + }, + "community_review_reject": "afvis", + "@community_review_reject": { + "type": "text", + "placeholders": {} + }, + "community_review_item_verified": "Denne anmeldelse er gennemgået", + "@community_review_item_verified": { + "type": "text", + "placeholders": {} + }, + "global_review_title": "Gennemse moderet objekt", + "@global_review_title": { + "type": "text", + "placeholders": {} + }, + "global_review_object_text": "Objekt", + "@global_review_object_text": { + "type": "text", + "placeholders": {} + }, + "global_review_verify_text": "Verificer", + "@global_review_verify_text": { + "type": "text", + "placeholders": {} + }, + "global_review_unverify_text": "Fjern verificering", + "@global_review_unverify_text": { + "type": "text", + "placeholders": {} + }, + "confirm_report_title": "Indsend anmeldelse", + "@confirm_report_title": { + "type": "text", + "placeholders": {} + }, + "confirm_report_provide_details": "Kan du tilføje ekstra detaljer som kan være relevante for anmeldelsen?", + "@confirm_report_provide_details": { + "type": "text", + "placeholders": {} + }, + "confirm_report_provide_optional_info": "(Valgfrit)", + "@confirm_report_provide_optional_info": { + "type": "text", + "placeholders": {} + }, + "confirm_report_provide_optional_hint_text": "Skriv her...", + "@confirm_report_provide_optional_hint_text": { + "type": "text", + "placeholders": {} + }, + "confirm_report_provide_happen_next": "Her er hvad der vil ske efterfølgende:", + "@confirm_report_provide_happen_next": { + "type": "text", + "placeholders": {} + }, + "confirm_report_provide_happen_next_desc": "- Din anmeldelse vil blive indsendt anonymt. \n- Hvis du anmelder et opslag eller en kommentar, vil anmeldelsen blive sendt til Okuna personalet og fællesskabs moderatorerne hvis relevant og opslaget vil blive skjult fra dit feed. \n- Hvis du anmelder en konto eller et fællesskab, vil det blive sendt til Okuna personalet. \n- Vi vil gennemgå det og hvis det godkendes, vil indhold blive slettet og sanktioner givet til de involverede, gående fra en midlertidig udelukkelse til sletning a kontoen, afhængig af alvorligheden af overtrædelsen. \n- Hvis anmeldelsen vurderes at være lavet i et forsøg på at skade et andet medlem eller fællesskab på platformen, uden nogen overtrædelse af den angivne type, vil sanktioner blive givet til dig. \n", + "@confirm_report_provide_happen_next_desc": { + "type": "text", + "placeholders": {} + }, + "confirm_report_submit": "Forstået, indsend.", + "@confirm_report_submit": { + "type": "text", + "placeholders": {} + }, + "confirm_report_user_reported": "Bruger anmeldelse", + "@confirm_report_user_reported": { + "type": "text", + "placeholders": {} + }, + "confirm_report_community_reported": "Fællesskabs anmeldelse", + "@confirm_report_community_reported": { + "type": "text", + "placeholders": {} + }, + "confirm_report_post_reported": "Opslags anmeldelse", + "@confirm_report_post_reported": { + "type": "text", + "placeholders": {} + }, + "confirm_report_post_comment_reported": "Opslags kommentar anmeldelse", + "@confirm_report_post_comment_reported": { + "type": "text", + "placeholders": {} + }, + "confirm_report_item_reported": "Objekt anmeldt", + "@confirm_report_item_reported": { + "type": "text", + "placeholders": {} + }, + "community_moderated_objects": "Fællesskabs modererede objekter", + "@community_moderated_objects": { + "type": "text", + "placeholders": {} + }, + "globally_moderated_objects": "Globalt modererede objekter", + "@globally_moderated_objects": { + "type": "text", + "placeholders": {} + }, + "tap_to_retry": "Tryk for at forsøge genindlæsning", + "@tap_to_retry": { + "type": "text", + "placeholders": {} + }, + "report_post_text": "Anmeld opslag", + "@report_post_text": { + "type": "text", + "placeholders": {} + }, + "you_have_reported_post_text": "Du har anmeldt dette opslag", + "@you_have_reported_post_text": { + "type": "text", + "placeholders": {} + }, + "report_account_text": "Anmeld konto", + "@report_account_text": { + "type": "text", + "placeholders": {} + }, + "you_have_reported_account_text": "Du har anmeldt denne konto", + "@you_have_reported_account_text": { + "type": "text", + "placeholders": {} + }, + "report_community_text": "Anmeld fællesskab", + "@report_community_text": { + "type": "text", + "placeholders": {} + }, + "you_have_reported_community_text": "Du har anmeldt dette fællesskab", + "@you_have_reported_community_text": { + "type": "text", + "placeholders": {} + }, + "report_comment_text": "Anmeld kommentar", + "@report_comment_text": { + "type": "text", + "placeholders": {} + }, + "you_have_reported_comment_text": "Du har anmeldt denne kommentar", + "@you_have_reported_comment_text": { + "type": "text", + "placeholders": {} + }, + "description_text": "Beskrivelse", + "@description_text": { + "type": "text", + "placeholders": {} + }, + "no_description_text": "Ingen beskrivelse", + "@no_description_text": { + "type": "text", + "placeholders": {} + }, + "category_text": "Kategori", + "@category_text": { + "type": "text", + "placeholders": {} + }, + "reporter_text": "Rapporter", + "@reporter_text": { + "type": "text", + "placeholders": {} + }, + "reports_preview_title": "Reporter", + "@reports_preview_title": { + "type": "text", + "placeholders": {} + }, + "reports_preview_resource_reports": "anmelder", + "@reports_preview_resource_reports": { + "description": "Usage: See all reports..", + "type": "text", + "placeholders": {} + }, + "reports_see_all": "Se alle {resourceCount} {resourceName}", + "@reports_see_all": { + "description": "Usage: See all 4 reports.", + "type": "text", + "placeholders": { + "resourceCount": {}, + "resourceName": {} + } + }, + "object_status_title": "Status", + "@object_status_title": { + "type": "text", + "placeholders": {} + }, + "my_moderation_tasks_title": "Udestående moderationsopgaver", + "@my_moderation_tasks_title": { + "type": "text", + "placeholders": {} + }, + "pending_moderation_tasks_singular": "udestående moderationsopgave", + "@pending_moderation_tasks_singular": { + "type": "text", + "placeholders": {} + }, + "pending_moderation_tasks_plural": "udestående moderationsopgaver", + "@pending_moderation_tasks_plural": { + "description": "Eg. No pending moderation tasks found", + "type": "text", + "placeholders": {} + }, + "my_moderation_penalties_title": "Moderations straffer", + "@my_moderation_penalties_title": { + "type": "text", + "placeholders": {} + }, + "my_moderation_penalties_resouce_singular": "moderations straffe", + "@my_moderation_penalties_resouce_singular": { + "type": "text", + "placeholders": {} + }, + "my_moderation_penalties_resource_plural": "moderations straffer", + "@my_moderation_penalties_resource_plural": { + "description": "See all moderation penalties, No moderation penalties found etc..", + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/da/notifications.arb b/assets/i18n/da/notifications.arb new file mode 100644 index 000000000..284628e25 --- /dev/null +++ b/assets/i18n/da/notifications.arb @@ -0,0 +1,218 @@ +{ + "tab_general": "Overordnet", + "@tab_general": { + "type": "text", + "placeholders": {} + }, + "tab_requests": "Forespørgsler", + "@tab_requests": { + "type": "text", + "placeholders": {} + }, + "settings_title": "Indstillinger for beskeder", + "@settings_title": { + "type": "text", + "placeholders": {} + }, + "general_title": "Beskeder", + "@general_title": { + "type": "text", + "placeholders": {} + }, + "general_desc": "Få besked når noget sker", + "@general_desc": { + "type": "text", + "placeholders": {} + }, + "follow_title": "Følg", + "@follow_title": { + "type": "text", + "placeholders": {} + }, + "follow_desc": "Få besked når nogen begynder at følge dig", + "@follow_desc": { + "type": "text", + "placeholders": {} + }, + "connection_title": "Kontaktanmodning", + "@connection_title": { + "type": "text", + "placeholders": {} + }, + "connection_desc": "Få besked når nogen ønsker at forbinde sig med dig", + "@connection_desc": { + "type": "text", + "placeholders": {} + }, + "comment_title": "Tilføj kommentar", + "@comment_title": { + "type": "text", + "placeholders": {} + }, + "comment_desc": "Få besked når nogen kommenterer på et af dine indlæg eller på et du også kommenterede på", + "@comment_desc": { + "type": "text", + "placeholders": {} + }, + "comment_reply_title": "Send svar på kommentar", + "@comment_reply_title": { + "type": "text", + "placeholders": {} + }, + "comment_reply_desc": "Få besked når nogen svarer på en af dine kommentarer eller på en du også svarede på", + "@comment_reply_desc": { + "type": "text", + "placeholders": {} + }, + "comment_user_mention_title": "Send nævnelse af kommentaren", + "@comment_user_mention_title": { + "type": "text", + "placeholders": {} + }, + "comment_user_mention_desc": "Få besked når nogen nævner dig i en af sine kommentarer", + "@comment_user_mention_desc": { + "type": "text", + "placeholders": {} + }, + "post_user_mention_title": "Send nævnelse", + "@post_user_mention_title": { + "type": "text", + "placeholders": {} + }, + "post_user_mention_desc": "Få besked når nogen nævner dig i en af sine indlæg", + "@post_user_mention_desc": { + "type": "text", + "placeholders": {} + }, + "comment_reaction_title": "Send reaktion på kommentar", + "@comment_reaction_title": { + "type": "text", + "placeholders": {} + }, + "comment_reaction_desc": "Få besked når nogen reagerer på en af dine kommentarer til indlægget", + "@comment_reaction_desc": { + "type": "text", + "placeholders": {} + }, + "post_reaction_title": "Send reaktion", + "@post_reaction_title": { + "type": "text", + "placeholders": {} + }, + "post_reaction_desc": "Få besked når nogen reagerer på et af dine indlæg", + "@post_reaction_desc": { + "type": "text", + "placeholders": {} + }, + "community_invite_title": "Invitation til fælleskabet", + "@community_invite_title": { + "type": "text", + "placeholders": {} + }, + "community_invite_desc": "Få besked når nogen inviterer dig i et fælleskab", + "@community_invite_desc": { + "type": "text", + "placeholders": {} + }, + "mute_post_turn_on_post_notifications": "Slå beskeder for indlæg til", + "@mute_post_turn_on_post_notifications": { + "type": "text", + "placeholders": {} + }, + "mute_post_turn_off_post_notifications": "Slå beskeder for indlæg fra", + "@mute_post_turn_off_post_notifications": { + "type": "text", + "placeholders": {} + }, + "mute_post_turn_on_post_comment_notifications": "Slå beskeder for kommentarer på indlæg til", + "@mute_post_turn_on_post_comment_notifications": { + "type": "text", + "placeholders": {} + }, + "mute_post_turn_off_post_comment_notifications": "Slå beskeder for kommentarer på indlæg fra", + "@mute_post_turn_off_post_comment_notifications": { + "type": "text", + "placeholders": {} + }, + "connection_request_tile": "[name] [username] ønsker at forbinde sig med dig", + "@connection_request_tile": { + "description": "Eg.: James @jamest wants to connect with you.", + "type": "text", + "placeholders": {} + }, + "accepted_connection_request_tile": "[name] [username] godkendte din anmodning om at indgå forbindelse", + "@accepted_connection_request_tile": { + "description": "Eg.: James @jamest accepted your connection request.", + "type": "text", + "placeholders": {} + }, + "reacted_to_post_tile": "[name] [username] reagerede på dit indlæg.", + "@reacted_to_post_tile": { + "description": "Eg.: James @jamest reacted to your post.", + "type": "text", + "placeholders": {} + }, + "reacted_to_post_comment_tile": "[name] [username] reagerede på din kommentar til indlægget.", + "@reacted_to_post_comment_tile": { + "description": "Eg.: James @jamest reacted to your post comment.", + "type": "text", + "placeholders": {} + }, + "following_you_tile": "[name] [username] følger dig nu.", + "@following_you_tile": { + "description": "Eg.: James @jamest is now following you.", + "type": "text", + "placeholders": {} + }, + "user_community_invite_tile": "[name] [username] indbyder dig til at blive medlem i fælleskabet /c/{communityName}.", + "@user_community_invite_tile": { + "description": "Eg.: James @jamest has invited you to join community /c/okuna.", + "type": "text", + "placeholders": { + "communityName": {} + } + }, + "comment_reply_notification_tile_user_replied": "[name] [username] svarede: {postCommentText}", + "@comment_reply_notification_tile_user_replied": { + "description": "For.eg. James @jamest replied.", + "type": "text", + "placeholders": { + "postCommentText": {} + } + }, + "comment_reply_notification_tile_user_also_replied": "[name] [username] svarede også: {postCommentText}", + "@comment_reply_notification_tile_user_also_replied": { + "type": "text", + "placeholders": { + "postCommentText": {} + } + }, + "comment_comment_notification_tile_user_commented": "[name] [username] kommenterede på dit indlæg: {postCommentText}", + "@comment_comment_notification_tile_user_commented": { + "type": "text", + "placeholders": { + "postCommentText": {} + } + }, + "comment_comment_notification_tile_user_also_commented": "[name] [username] kommenterede også: {postCommentText}", + "@comment_comment_notification_tile_user_also_commented": { + "type": "text", + "placeholders": { + "postCommentText": {} + } + }, + "mentioned_in_post_comment_tile": "[name] [username] nævnte dig i en kommentar: {postCommentText}", + "@mentioned_in_post_comment_tile": { + "description": "Eg.: James @jamest mentioned you on a comment: hello @jamest", + "type": "text", + "placeholders": { + "postCommentText": {} + } + }, + "mentioned_in_post_tile": "[name] [username] nævnte dig i et indlæg.", + "@mentioned_in_post_tile": { + "description": "Eg.: James @jamest mentioned you on a post.", + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/da/post.arb b/assets/i18n/da/post.arb new file mode 100644 index 000000000..445b79c3a --- /dev/null +++ b/assets/i18n/da/post.arb @@ -0,0 +1,601 @@ +{ + "open_post": "Åben opslag", + "@open_post": { + "type": "text", + "placeholders": {} + }, + "close_post": "Luk opslag", + "@close_post": { + "type": "text", + "placeholders": {} + }, + "post_opened": "Opslag åbnet", + "@post_opened": { + "type": "text", + "placeholders": {} + }, + "post_closed": "Opslag lukket ", + "@post_closed": { + "type": "text", + "placeholders": {} + }, + "comment_required_error": "Kommentar er obligatorisk.", + "@comment_required_error": { + "type": "text", + "placeholders": {} + }, + "comment_maxlength_error": "En kommentar kan ikke være længere end {maxLength} tegn.", + "@comment_maxlength_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "timeline_posts_all_loaded": "🎉 Alle opslag hentet", + "@timeline_posts_all_loaded": { + "type": "text", + "placeholders": {} + }, + "timeline_posts_refreshing_drhoo_title": "Hav tålmodighed!", + "@timeline_posts_refreshing_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "timeline_posts_no_more_drhoo_subtitle": "Følg brugere eller deltag i et fællesskab for at komme i gang!", + "@timeline_posts_no_more_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "timeline_posts_failed_drhoo_title": "Kunne ikke indlæse din tidslinje.", + "@timeline_posts_failed_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "timeline_posts_failed_drhoo_subtitle": "Prøv igen om nogle sekunder", + "@timeline_posts_failed_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "timeline_posts_default_drhoo_title": "Der er noget galt.", + "@timeline_posts_default_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "timeline_posts_default_drhoo_subtitle": "Prøv at genindlæse tidslinjen.", + "@timeline_posts_default_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "timeline_posts_refresh_posts": "Genindlæs opslag", + "@timeline_posts_refresh_posts": { + "type": "text", + "placeholders": {} + }, + "no_circles_for": "Ingen cirkler indeholder '{circlesSearchQuery}'.", + "@no_circles_for": { + "type": "text", + "placeholders": { + "circlesSearchQuery": {} + } + }, + "share_to_circles": "Del til cirkler", + "@share_to_circles": { + "type": "text", + "placeholders": {} + }, + "profile_counts_post": " Opslag", + "@profile_counts_post": { + "type": "text", + "placeholders": {} + }, + "profile_counts_posts": " Opslag", + "@profile_counts_posts": { + "type": "text", + "placeholders": {} + }, + "profile_counts_followers": " Følgere", + "@profile_counts_followers": { + "type": "text", + "placeholders": {} + }, + "profile_counts_following": " Følger", + "@profile_counts_following": { + "type": "text", + "placeholders": {} + }, + "profile_counts_follower": " Følger", + "@profile_counts_follower": { + "type": "text", + "placeholders": {} + }, + "profile_retry_loading_posts": "Tryk for at prøve igen", + "@profile_retry_loading_posts": { + "type": "text", + "placeholders": {} + }, + "action_comment": "Kommentar", + "@action_comment": { + "type": "text", + "placeholders": {} + }, + "action_react": "Reager", + "@action_react": { + "type": "text", + "placeholders": {} + }, + "action_reply": "Svar", + "@action_reply": { + "type": "text", + "placeholders": {} + }, + "share": "Del", + "@share": { + "type": "text", + "placeholders": {} + }, + "share_to": "Del via", + "@share_to": { + "type": "text", + "placeholders": {} + }, + "sharing_post_to": "Deler opslag via", + "@sharing_post_to": { + "type": "text", + "placeholders": {} + }, + "you_shared_with": "Du delte via", + "@you_shared_with": { + "type": "text", + "placeholders": {} + }, + "shared_privately_on": "Delt privat i", + "@shared_privately_on": { + "description": "Eg. Shared privately on @shantanu's circles. See following string, usernames_circles . Will combine this in future, needs refactoring.", + "type": "text", + "placeholders": {} + }, + "usernames_circles": "@{postCreatorUsername}'s cirkler", + "@usernames_circles": { + "type": "text", + "placeholders": { + "postCreatorUsername": {} + } + }, + "share_community": "Del", + "@share_community": { + "type": "text", + "placeholders": {} + }, + "share_to_community": "Del til fællesskab", + "@share_to_community": { + "type": "text", + "placeholders": {} + }, + "share_community_title": "Et fællesskab", + "@share_community_title": { + "type": "text", + "placeholders": {} + }, + "share_community_desc": "Del opslaget til et fællesskab du er del af.", + "@share_community_desc": { + "type": "text", + "placeholders": {} + }, + "my_circles": "Mine cirkler", + "@my_circles": { + "type": "text", + "placeholders": {} + }, + "my_circles_desc": "Del opslaget til en eller flere af dine cirkler.", + "@my_circles_desc": { + "type": "text", + "placeholders": {} + }, + "world_circle_name": "Verden", + "@world_circle_name": { + "type": "text", + "placeholders": {} + }, + "search_circles": "Søg cirkler...", + "@search_circles": { + "type": "text", + "placeholders": {} + }, + "reaction_list_tap_retry": "Tryk for at genindlæse reaktioner.", + "@reaction_list_tap_retry": { + "type": "text", + "placeholders": {} + }, + "create_new": "Nyt opslag", + "@create_new": { + "type": "text", + "placeholders": {} + }, + "create_new_post_label": "Opret nyt indlæg", + "@create_new_post_label": { + "type": "text", + "placeholders": {} + }, + "create_new_community_post_label": "Opret nyt fælleskabsindlæg", + "@create_new_community_post_label": { + "type": "text", + "placeholders": {} + }, + "close_create_post_label": "Luk \"opret nyt indlæg\"", + "@close_create_post_label": { + "type": "text", + "placeholders": {} + }, + "create_next": "Næste", + "@create_next": { + "type": "text", + "placeholders": {} + }, + "create_photo": "Foto", + "@create_photo": { + "type": "text", + "placeholders": {} + }, + "create_video": "Video", + "@create_video": { + "type": "text", + "placeholders": {} + }, + "commenter_post_text": "Opslag", + "@commenter_post_text": { + "type": "text", + "placeholders": {} + }, + "commenter_write_something": "Skriv noget...", + "@commenter_write_something": { + "type": "text", + "placeholders": {} + }, + "edit_title": "Rediger opslag", + "@edit_title": { + "type": "text", + "placeholders": {} + }, + "edit_save": "Gem", + "@edit_save": { + "type": "text", + "placeholders": {} + }, + "commenter_expanded_save": "Gem", + "@commenter_expanded_save": { + "type": "text", + "placeholders": {} + }, + "commenter_expanded_join_conversation": "Deltag i samtalen...", + "@commenter_expanded_join_conversation": { + "type": "text", + "placeholders": {} + }, + "commenter_expanded_start_conversation": "Start en ny samtale...", + "@commenter_expanded_start_conversation": { + "type": "text", + "placeholders": {} + }, + "commenter_expanded_edit_comment": "Rediger kommentar", + "@commenter_expanded_edit_comment": { + "type": "text", + "placeholders": {} + }, + "is_closed": "Lukket opslag", + "@is_closed": { + "type": "text", + "placeholders": {} + }, + "comment_reply_expanded_reply_comment": "Besvar kommentar", + "@comment_reply_expanded_reply_comment": { + "type": "text", + "placeholders": {} + }, + "comment_reply_expanded_post": "Opslag", + "@comment_reply_expanded_post": { + "type": "text", + "placeholders": {} + }, + "comment_reply_expanded_reply_hint_text": "Dit svar...", + "@comment_reply_expanded_reply_hint_text": { + "type": "text", + "placeholders": {} + }, + "trending_posts_title": "Populære opslag", + "@trending_posts_title": { + "type": "text", + "placeholders": {} + }, + "trending_posts_no_trending_posts": "Der er ingen populære opslag. Prøv at opdatere om nogle sekunder.", + "@trending_posts_no_trending_posts": { + "type": "text", + "placeholders": {} + }, + "trending_posts_refresh": "Opdater", + "@trending_posts_refresh": { + "type": "text", + "placeholders": {} + }, + "comments_view_all_comments": "Se alle {commentsCount} kommentarer", + "@comments_view_all_comments": { + "type": "text", + "placeholders": { + "commentsCount": {} + } + }, + "comments_closed_post": "Lukket opslag", + "@comments_closed_post": { + "type": "text", + "placeholders": {} + }, + "comments_disabled": "Kommentarer deaktiveret", + "@comments_disabled": { + "type": "text", + "placeholders": {} + }, + "text_copied": "Tekst kopieret!", + "@text_copied": { + "type": "text", + "placeholders": {} + }, + "post_reactions_title": "Opslags reaktioner", + "@post_reactions_title": { + "type": "text", + "placeholders": {} + }, + "have_not_shared_anything": "Du har ikke delt noget endnu.", + "@have_not_shared_anything": { + "type": "text", + "placeholders": {} + }, + "user_has_not_shared_anything": "{name} har ikke delt noget endnu.", + "@user_has_not_shared_anything": { + "type": "text", + "placeholders": { + "name": {} + } + }, + "comments_header_newest_replies": "Nyeste svar", + "@comments_header_newest_replies": { + "type": "text", + "placeholders": {} + }, + "comments_header_newer": "Nyere", + "@comments_header_newer": { + "type": "text", + "placeholders": {} + }, + "comments_header_view_newest_replies": "Se nyeste svar", + "@comments_header_view_newest_replies": { + "type": "text", + "placeholders": {} + }, + "comments_header_see_newest_replies": "Se nyeste svar", + "@comments_header_see_newest_replies": { + "type": "text", + "placeholders": {} + }, + "comments_header_oldest_replies": "Ældste svar", + "@comments_header_oldest_replies": { + "type": "text", + "placeholders": {} + }, + "comments_header_older": "Ældre", + "@comments_header_older": { + "type": "text", + "placeholders": {} + }, + "comments_header_view_oldest_replies": "Se ældste svar", + "@comments_header_view_oldest_replies": { + "type": "text", + "placeholders": {} + }, + "comments_header_see_oldest_replies": "Se ældste svar", + "@comments_header_see_oldest_replies": { + "type": "text", + "placeholders": {} + }, + "comments_header_be_the_first_replies": "Vær den første til at svare", + "@comments_header_be_the_first_replies": { + "type": "text", + "placeholders": {} + }, + "comments_header_newest_comments": "Nyeste kommentarer", + "@comments_header_newest_comments": { + "type": "text", + "placeholders": {} + }, + "comments_header_view_newest_comments": "Se nyeste kommentarer", + "@comments_header_view_newest_comments": { + "type": "text", + "placeholders": {} + }, + "comments_header_see_newest_comments": "Se nyeste kommentarer", + "@comments_header_see_newest_comments": { + "type": "text", + "placeholders": {} + }, + "comments_header_oldest_comments": "Ældste kommentarer", + "@comments_header_oldest_comments": { + "type": "text", + "placeholders": {} + }, + "comments_header_view_oldest_comments": "Se ældste kommentarer", + "@comments_header_view_oldest_comments": { + "type": "text", + "placeholders": {} + }, + "comments_header_see_oldest_comments": "Se ældste kommentarer", + "@comments_header_see_oldest_comments": { + "type": "text", + "placeholders": {} + }, + "comments_header_be_the_first_comments": "Vær den første til at kommentere", + "@comments_header_be_the_first_comments": { + "type": "text", + "placeholders": {} + }, + "comments_page_title": "Kommentarer", + "@comments_page_title": { + "type": "text", + "placeholders": {} + }, + "comments_page_no_more_to_load": "Ikke flere kommentarer at hente", + "@comments_page_no_more_to_load": { + "type": "text", + "placeholders": {} + }, + "comments_page_tap_to_retry": "Tryk for at genindlæse kommentarer.", + "@comments_page_tap_to_retry": { + "type": "text", + "placeholders": {} + }, + "comments_page_tap_to_retry_replies": "Tryk for at genindlæse svar.", + "@comments_page_tap_to_retry_replies": { + "type": "text", + "placeholders": {} + }, + "comments_page_no_more_replies_to_load": "Ikke flere svar at hente", + "@comments_page_no_more_replies_to_load": { + "type": "text", + "placeholders": {} + }, + "comments_page_replies_title": "Svar på opslag", + "@comments_page_replies_title": { + "type": "text", + "placeholders": {} + }, + "disable_post_comments": "Deaktiver kommentarer", + "@disable_post_comments": { + "type": "text", + "placeholders": {} + }, + "enable_post_comments": "Aktiver kommentarer", + "@enable_post_comments": { + "type": "text", + "placeholders": {} + }, + "comments_enabled_message": "Kommentarer aktiveret for opslag", + "@comments_enabled_message": { + "type": "text", + "placeholders": {} + }, + "comments_disabled_message": "Kommentarer deaktiveret for opslag", + "@comments_disabled_message": { + "type": "text", + "placeholders": {} + }, + "actions_delete": "Slet opslag", + "@actions_delete": { + "type": "text", + "placeholders": {} + }, + "actions_deleted": "Opslag slettet", + "@actions_deleted": { + "type": "text", + "placeholders": {} + }, + "actions_delete_comment": "Slet kommentar", + "@actions_delete_comment": { + "type": "text", + "placeholders": {} + }, + "actions_edit_comment": "Rediger kommentar", + "@actions_edit_comment": { + "type": "text", + "placeholders": {} + }, + "actions_comment_deleted": "Kommentar slettet", + "@actions_comment_deleted": { + "type": "text", + "placeholders": {} + }, + "actions_report_text": "Anmeld", + "@actions_report_text": { + "type": "text", + "placeholders": {} + }, + "actions_reported_text": "Anmeldt", + "@actions_reported_text": { + "type": "text", + "placeholders": {} + }, + "actions_show_more_text": "Vis mere", + "@actions_show_more_text": { + "description": "Shown for posts with long text to expand the entire text.", + "type": "text", + "placeholders": {} + }, + "time_short_years": "å", + "@time_short_years": { + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3y. Keep it as short as possible", + "type": "text", + "placeholders": {} + }, + "time_short_one_year": "1å", + "@time_short_one_year": { + "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", + "type": "text", + "placeholders": {} + }, + "time_short_weeks": "u", + "@time_short_weeks": { + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 5w.Keep it as short as possible ", + "type": "text", + "placeholders": {} + }, + "time_short_one_week": "1u", + "@time_short_one_week": { + "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", + "type": "text", + "placeholders": {} + }, + "time_short_days": "d", + "@time_short_days": { + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3d. Keep it as short as possible ", + "type": "text", + "placeholders": {} + }, + "time_short_one_day": "1d", + "@time_short_one_day": { + "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", + "type": "text", + "placeholders": {} + }, + "time_short_hours": "t", + "@time_short_hours": { + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3h.Keep it as short as possible ", + "type": "text", + "placeholders": {} + }, + "time_short_one_hour": "1t", + "@time_short_one_hour": { + "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", + "type": "text", + "placeholders": {} + }, + "time_short_minutes": "m", + "@time_short_minutes": { + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 13m.Keep it as short as possible ", + "type": "text", + "placeholders": {} + }, + "time_short_seconds": "s", + "@time_short_seconds": { + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 13s Keep it as short as possible ", + "type": "text", + "placeholders": {} + }, + "time_short_one_minute": "1m", + "@time_short_one_minute": { + "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", + "type": "text", + "placeholders": {} + }, + "time_short_now_text": "nu", + "@time_short_now_text": { + "description": "Shown when a post was immediately posted, as in time posted is 'now'.Should be as few characters as possible.", + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/da/post_body_link_preview.arb b/assets/i18n/da/post_body_link_preview.arb new file mode 100644 index 000000000..cdef041f3 --- /dev/null +++ b/assets/i18n/da/post_body_link_preview.arb @@ -0,0 +1,14 @@ +{ + "empty": "Dette link kunne ikke skaffes", + "@empty": { + "type": "text", + "placeholders": {} + }, + "error_with_description": "Mislykkedes at forhåndsvise link med hjemmeside fejl: {description}", + "@error_with_description": { + "type": "text", + "placeholders": { + "description": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/da/post_body_media.arb b/assets/i18n/da/post_body_media.arb new file mode 100644 index 000000000..000c99d6d --- /dev/null +++ b/assets/i18n/da/post_body_media.arb @@ -0,0 +1,7 @@ +{ + "unsupported": "Ikke understøttet medier typ", + "@unsupported": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/da/post_uploader.arb b/assets/i18n/da/post_uploader.arb new file mode 100644 index 000000000..1a3869355 --- /dev/null +++ b/assets/i18n/da/post_uploader.arb @@ -0,0 +1,47 @@ +{ + "generic_upload_failed": "Upload mislykkedes", + "@generic_upload_failed": { + "type": "text", + "placeholders": {} + }, + "creating_post": "Opretter indlæg...", + "@creating_post": { + "type": "text", + "placeholders": {} + }, + "compressing_media": "Kompresserer medier...", + "@compressing_media": { + "type": "text", + "placeholders": {} + }, + "uploading_media": "Uploader medier...", + "@uploading_media": { + "type": "text", + "placeholders": {} + }, + "publishing": "Offentliggør indlæg...", + "@publishing": { + "type": "text", + "placeholders": {} + }, + "processing": "Forarbejder indlæg...", + "@processing": { + "type": "text", + "placeholders": {} + }, + "success": "Succes!", + "@success": { + "type": "text", + "placeholders": {} + }, + "cancelling": "Annullerer", + "@cancelling": { + "type": "text", + "placeholders": {} + }, + "cancelled": "Annulleret!", + "@cancelled": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/da/posts_stream.arb b/assets/i18n/da/posts_stream.arb new file mode 100644 index 000000000..b4eee831b --- /dev/null +++ b/assets/i18n/da/posts_stream.arb @@ -0,0 +1,47 @@ +{ + "all_loaded": "🎉 Alle indlæg loadet", + "@all_loaded": { + "type": "text", + "placeholders": {} + }, + "refreshing_drhoo_title": "Vent lidt!", + "@refreshing_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "refreshing_drhoo_subtitle": "Opdaterer stream.", + "@refreshing_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "empty_drhoo_title": "Denne stream er tom.", + "@empty_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "empty_drhoo_subtitle": "Prøv at genopfriske om nogle sekunder.", + "@empty_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "failed_drhoo_title": "Kunne ikke loade stream.", + "@failed_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "failed_drhoo_subtitle": "Prøv igen om nogle sekunder", + "@failed_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "status_tile_empty": "Ingen indlæg fundet", + "@status_tile_empty": { + "type": "text", + "placeholders": {} + }, + "status_tile_no_more_to_load": "🎉 Alle indlæg loadet", + "@status_tile_no_more_to_load": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/da/user.arb b/assets/i18n/da/user.arb new file mode 100644 index 000000000..e70628557 --- /dev/null +++ b/assets/i18n/da/user.arb @@ -0,0 +1,980 @@ +{ + "thousand_postfix": "kilo", + "@thousand_postfix": { + "description": "For eg. communty has 3k members", + "type": "text", + "placeholders": {} + }, + "million_postfix": "mega", + "@million_postfix": { + "description": "For eg. user has 3m followers", + "type": "text", + "placeholders": {} + }, + "billion_postfix": "mia", + "@billion_postfix": { + "description": "For eg. World circle has 7.5b people", + "type": "text", + "placeholders": {} + }, + "translate_see_translation": "Se oversættelse", + "@translate_see_translation": { + "type": "text", + "placeholders": {} + }, + "translate_show_original": "Vis originalet", + "@translate_show_original": { + "type": "text", + "placeholders": {} + }, + "follows_lists_account": "1 konto", + "@follows_lists_account": { + "type": "text", + "placeholders": {} + }, + "follows_lists_accounts": "{prettyUsersCount} Konti", + "@follows_lists_accounts": { + "description": "prettyUsersCount will be 3m, 50k etc.. so we endup with final string 3k Accounts", + "type": "text", + "placeholders": { + "prettyUsersCount": {} + } + }, + "edit_profile_user_name_taken": "Brugernavnet @{username} er allerede taget", + "@edit_profile_user_name_taken": { + "type": "text", + "placeholders": { + "username": {} + } + }, + "profile_action_deny_connection": "Afvis forespørgsel om forbindelse", + "@profile_action_deny_connection": { + "type": "text", + "placeholders": {} + }, + "profile_action_user_blocked": "Bruger blokeret", + "@profile_action_user_blocked": { + "type": "text", + "placeholders": {} + }, + "profile_action_user_unblocked": "Blokering af bruger ophævet", + "@profile_action_user_unblocked": { + "type": "text", + "placeholders": {} + }, + "profile_action_cancel_connection": "Kald forspørgsel om forbindelse tilbage", + "@profile_action_cancel_connection": { + "type": "text", + "placeholders": {} + }, + "profile_url_invalid_error": "Angiv venligst en gyldig url!", + "@profile_url_invalid_error": { + "type": "text", + "placeholders": {} + }, + "profile_location_length_error": "Bopæl kan ikke være længere end {maxLength} tegn.", + "@profile_location_length_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "profile_bio_length_error": "Biografien kan ikke være længere end {maxLength} tegn.", + "@profile_bio_length_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "follow_button_follow_text": "Følg", + "@follow_button_follow_text": { + "type": "text", + "placeholders": {} + }, + "follow_button_unfollow_text": "Følg ikke længere", + "@follow_button_unfollow_text": { + "type": "text", + "placeholders": {} + }, + "edit_profile_username": "Brugernavn", + "@edit_profile_username": { + "type": "text", + "placeholders": {} + }, + "add_account_update_account_lists": "Aktualiser konto lister", + "@add_account_update_account_lists": { + "type": "text", + "placeholders": {} + }, + "add_account_to_lists": "Føj konto til liste", + "@add_account_to_lists": { + "type": "text", + "placeholders": {} + }, + "add_account_update_lists": "Opdater lister", + "@add_account_update_lists": { + "type": "text", + "placeholders": {} + }, + "add_account_save": "Gem", + "@add_account_save": { + "type": "text", + "placeholders": {} + }, + "add_account_done": "Færdig", + "@add_account_done": { + "type": "text", + "placeholders": {} + }, + "add_account_success": "Succes", + "@add_account_success": { + "type": "text", + "placeholders": {} + }, + "emoji_field_none_selected": "Ingen emoji valgt", + "@emoji_field_none_selected": { + "type": "text", + "placeholders": {} + }, + "emoji_search_none_found": "Intet passende emoji fundet '{searchQuery}'.", + "@emoji_search_none_found": { + "type": "text", + "placeholders": { + "searchQuery": {} + } + }, + "follow_lists_title": "Mine lister", + "@follow_lists_title": { + "type": "text", + "placeholders": {} + }, + "follow_lists_search_for": "Søg efter en liste...", + "@follow_lists_search_for": { + "type": "text", + "placeholders": {} + }, + "follow_lists_no_list_found": "Ingen liste fundet.", + "@follow_lists_no_list_found": { + "type": "text", + "placeholders": {} + }, + "follow_lists_no_list_found_for": "Ingen liste fundet for '{searchQuery}'", + "@follow_lists_no_list_found_for": { + "type": "text", + "placeholders": { + "searchQuery": {} + } + }, + "list_name_empty_error": "Listenavn må ikke være tom", + "@list_name_empty_error": { + "type": "text", + "placeholders": {} + }, + "list_name_range_error": "Listenavn må ikke være længere end {maxLength} tegn", + "@list_name_range_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "circle_name_empty_error": "Kredsnavn må ikke være tom", + "@circle_name_empty_error": { + "type": "text", + "placeholders": {} + }, + "circle_name_range_error": "Kredsnavn må ikke være længere end {maxLength} tegn.", + "@circle_name_range_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "save_follows_list_name": "Navn", + "@save_follows_list_name": { + "type": "text", + "placeholders": {} + }, + "save_follows_list_hint_text": "f.eks rejse, fotografi", + "@save_follows_list_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_follows_list_name_taken": "Listenavn '{listName}' er allerede taget", + "@save_follows_list_name_taken": { + "type": "text", + "placeholders": { + "listName": {} + } + }, + "save_follows_list_emoji": "Emoji", + "@save_follows_list_emoji": { + "type": "text", + "placeholders": {} + }, + "save_follows_list_users": "Brugere", + "@save_follows_list_users": { + "type": "text", + "placeholders": {} + }, + "save_follows_list_edit": "Redigér liste", + "@save_follows_list_edit": { + "type": "text", + "placeholders": {} + }, + "save_follows_list_create": "Opret liste", + "@save_follows_list_create": { + "type": "text", + "placeholders": {} + }, + "save_follows_list_save": "Gem", + "@save_follows_list_save": { + "type": "text", + "placeholders": {} + }, + "save_follows_list_emoji_required_error": "Emoji er krævet", + "@save_follows_list_emoji_required_error": { + "type": "text", + "placeholders": {} + }, + "follows_list_edit": "Redigér", + "@follows_list_edit": { + "type": "text", + "placeholders": {} + }, + "follows_list_header_title": "Brugere", + "@follows_list_header_title": { + "type": "text", + "placeholders": {} + }, + "edit_profile_name": "Navn", + "@edit_profile_name": { + "type": "text", + "placeholders": {} + }, + "edit_profile_url": "url", + "@edit_profile_url": { + "type": "text", + "placeholders": {} + }, + "edit_profile_location": "Bopæl", + "@edit_profile_location": { + "type": "text", + "placeholders": {} + }, + "edit_profile_bio": "Biografi", + "@edit_profile_bio": { + "type": "text", + "placeholders": {} + }, + "edit_profile_followers_count": "Antal følgere", + "@edit_profile_followers_count": { + "type": "text", + "placeholders": {} + }, + "edit_profile_community_posts": "Fællesskabsindlæg", + "@edit_profile_community_posts": { + "type": "text", + "placeholders": {} + }, + "edit_profile_title": "Redigér profil", + "@edit_profile_title": { + "type": "text", + "placeholders": {} + }, + "edit_profile_save_text": "Gem", + "@edit_profile_save_text": { + "type": "text", + "placeholders": {} + }, + "edit_profile_pick_image": "Vælg billede", + "@edit_profile_pick_image": { + "type": "text", + "placeholders": {} + }, + "edit_profile_delete": "Slet", + "@edit_profile_delete": { + "type": "text", + "placeholders": {} + }, + "edit_profile_pick_image_error_too_large": "Billede for stort (limit: {limit} MB)", + "@edit_profile_pick_image_error_too_large": { + "type": "text", + "placeholders": { + "limit": {} + } + }, + "tile_following": " · Følger", + "@tile_following": { + "type": "text", + "placeholders": {} + }, + "following_text": "Følger", + "@following_text": { + "type": "text", + "placeholders": {} + }, + "following_resource_name": "brugere der følger", + "@following_resource_name": { + "description": "Eg: Search followed users.., No followed users found. etc ", + "type": "text", + "placeholders": {} + }, + "tile_delete": "Slet", + "@tile_delete": { + "type": "text", + "placeholders": {} + }, + "invite": "Indbyd", + "@invite": { + "type": "text", + "placeholders": {} + }, + "uninvite": "Kald indbydelse tilbage", + "@uninvite": { + "type": "text", + "placeholders": {} + }, + "invite_member": "Medlem", + "@invite_member": { + "type": "text", + "placeholders": {} + }, + "invite_someone_message": "Hej, jeg vil gerne invitere dig til Okuna. Først skal du downloade app'en hos iTunes ({iosLink}) eller Play store ({androidLink}). Dernæst skal du indføje denne personlige invitationslink i 'Sign up' skemaet i Okuna app'en: {inviteLink}", + "@invite_someone_message": { + "type": "text", + "placeholders": { + "iosLink": {}, + "androidLink": {}, + "inviteLink": {} + } + }, + "connections_header_circle_desc": "Kredsen som alle dine forbindelser tilføjes.", + "@connections_header_circle_desc": { + "type": "text", + "placeholders": {} + }, + "connections_header_users": "Brugere", + "@connections_header_users": { + "type": "text", + "placeholders": {} + }, + "connection_pending": "Verserende", + "@connection_pending": { + "type": "text", + "placeholders": {} + }, + "connection_circle_edit": "Redigér", + "@connection_circle_edit": { + "type": "text", + "placeholders": {} + }, + "connections_circle_delete": "Slet", + "@connections_circle_delete": { + "type": "text", + "placeholders": {} + }, + "save_connection_circle_name": "Navn", + "@save_connection_circle_name": { + "type": "text", + "placeholders": {} + }, + "save_connection_circle_hint": "fx venner, familie, arbejde.", + "@save_connection_circle_hint": { + "type": "text", + "placeholders": {} + }, + "save_connection_circle_color_name": "Farve", + "@save_connection_circle_color_name": { + "type": "text", + "placeholders": {} + }, + "save_connection_circle_color_hint": "(Tryk for at ændre)", + "@save_connection_circle_color_hint": { + "type": "text", + "placeholders": {} + }, + "save_connection_circle_users": "Brugere", + "@save_connection_circle_users": { + "type": "text", + "placeholders": {} + }, + "save_connection_circle_edit": "Redigér kreds", + "@save_connection_circle_edit": { + "type": "text", + "placeholders": {} + }, + "save_connection_circle_create": "Kreér kreds", + "@save_connection_circle_create": { + "type": "text", + "placeholders": {} + }, + "save_connection_circle_save": "Gem", + "@save_connection_circle_save": { + "type": "text", + "placeholders": {} + }, + "update_connection_circle_save": "Gem", + "@update_connection_circle_save": { + "type": "text", + "placeholders": {} + }, + "update_connection_circle_updated": "Kontakt opdateret", + "@update_connection_circle_updated": { + "type": "text", + "placeholders": {} + }, + "update_connection_circles_title": "Aktualisér kontakternes kredse", + "@update_connection_circles_title": { + "type": "text", + "placeholders": {} + }, + "confirm_connection_with": "Bekræft kontakt med {userName}", + "@confirm_connection_with": { + "type": "text", + "placeholders": { + "userName": {} + } + }, + "confirm_connection_add_connection": "Føj kontakt til kreds", + "@confirm_connection_add_connection": { + "type": "text", + "placeholders": {} + }, + "confirm_connection_connection_confirmed": "Kontakt bekræftet", + "@confirm_connection_connection_confirmed": { + "type": "text", + "placeholders": {} + }, + "confirm_connection_confirm_text": "Bekræft", + "@confirm_connection_confirm_text": { + "type": "text", + "placeholders": {} + }, + "connect_to_user_connect_with_username": "Forbind med {userName}", + "@connect_to_user_connect_with_username": { + "type": "text", + "placeholders": { + "userName": {} + } + }, + "connect_to_user_add_connection": "Føj kontakt til kreds", + "@connect_to_user_add_connection": { + "type": "text", + "placeholders": {} + }, + "connect_to_user_done": "Udført", + "@connect_to_user_done": { + "type": "text", + "placeholders": {} + }, + "connect_to_user_request_sent": "Kontaktanmodning sendt", + "@connect_to_user_request_sent": { + "type": "text", + "placeholders": {} + }, + "remove_account_from_list": "Slet konto fra listen", + "@remove_account_from_list": { + "type": "text", + "placeholders": {} + }, + "remove_account_from_list_success": "Succes", + "@remove_account_from_list_success": { + "type": "text", + "placeholders": {} + }, + "confirm_block_user_title": "Bekræftelse", + "@confirm_block_user_title": { + "type": "text", + "placeholders": {} + }, + "confirm_block_user_info": "I vil hverken se hinandens indslæg eller være i stand til at interagere på nogen måde.", + "@confirm_block_user_info": { + "type": "text", + "placeholders": {} + }, + "confirm_block_user_yes": "Ja", + "@confirm_block_user_yes": { + "type": "text", + "placeholders": {} + }, + "confirm_block_user_no": "Nej", + "@confirm_block_user_no": { + "type": "text", + "placeholders": {} + }, + "confirm_block_user_blocked": "Bruger blokeret.", + "@confirm_block_user_blocked": { + "type": "text", + "placeholders": {} + }, + "confirm_block_user_question": "Er du sikker på, at du vil blokere @{username}?", + "@confirm_block_user_question": { + "type": "text", + "placeholders": { + "username": {} + } + }, + "save_connection_circle_name_taken": "Kredsnavn '{takenConnectionsCircleName}' er allerede taget", + "@save_connection_circle_name_taken": { + "type": "text", + "placeholders": { + "takenConnectionsCircleName": {} + } + }, + "timeline_filters_title": "Tidslinjefiltre", + "@timeline_filters_title": { + "type": "text", + "placeholders": {} + }, + "timeline_filters_search_desc": "Søger efter kredse og lister...", + "@timeline_filters_search_desc": { + "type": "text", + "placeholders": {} + }, + "timeline_filters_clear_all": "Slet alt", + "@timeline_filters_clear_all": { + "type": "text", + "placeholders": {} + }, + "timeline_filters_apply_all": "Anvend filtre", + "@timeline_filters_apply_all": { + "type": "text", + "placeholders": {} + }, + "timeline_filters_circles": "Kredse", + "@timeline_filters_circles": { + "type": "text", + "placeholders": {} + }, + "timeline_filters_lists": "Lister", + "@timeline_filters_lists": { + "type": "text", + "placeholders": {} + }, + "followers_title": "Følgere", + "@followers_title": { + "type": "text", + "placeholders": {} + }, + "follower_singular": "følger", + "@follower_singular": { + "type": "text", + "placeholders": {} + }, + "follower_plural": "følgere", + "@follower_plural": { + "type": "text", + "placeholders": {} + }, + "delete_account_title": "Slet konto", + "@delete_account_title": { + "type": "text", + "placeholders": {} + }, + "delete_account_current_pwd": "Nuværende adgangskode", + "@delete_account_current_pwd": { + "type": "text", + "placeholders": {} + }, + "delete_account_current_pwd_hint": "Indtast din aktuel adgangskode", + "@delete_account_current_pwd_hint": { + "type": "text", + "placeholders": {} + }, + "delete_account_next": "Næste", + "@delete_account_next": { + "type": "text", + "placeholders": {} + }, + "delete_account_confirmation_title": "Bekræftelse", + "@delete_account_confirmation_title": { + "type": "text", + "placeholders": {} + }, + "delete_account_confirmation_desc": "Er du sikker på, at du vil slette dit konto?", + "@delete_account_confirmation_desc": { + "type": "text", + "placeholders": {} + }, + "delete_account_confirmation_desc_info": "Det er en endegyldig aktion og kan ikke kaldes tilbage.", + "@delete_account_confirmation_desc_info": { + "type": "text", + "placeholders": {} + }, + "delete_account_confirmation_no": "Nej", + "@delete_account_confirmation_no": { + "type": "text", + "placeholders": {} + }, + "delete_account_confirmation_yes": "Ja", + "@delete_account_confirmation_yes": { + "type": "text", + "placeholders": {} + }, + "delete_account_confirmation_goodbye": "Farvel", + "@delete_account_confirmation_goodbye": { + "type": "text", + "placeholders": {} + }, + "invites_create_create_title": "Kreér indbydelse", + "@invites_create_create_title": { + "type": "text", + "placeholders": {} + }, + "invites_create_edit_title": "Redigér indbydelse", + "@invites_create_edit_title": { + "type": "text", + "placeholders": {} + }, + "invites_create_save": "Gem", + "@invites_create_save": { + "type": "text", + "placeholders": {} + }, + "invites_create_create": "Kreér", + "@invites_create_create": { + "type": "text", + "placeholders": {} + }, + "invites_create_name_title": "nickname", + "@invites_create_name_title": { + "type": "text", + "placeholders": {} + }, + "invites_create_name_hint": "fx. Jane Doe", + "@invites_create_name_hint": { + "type": "text", + "placeholders": {} + }, + "invites_pending": "verserende", + "@invites_pending": { + "type": "text", + "placeholders": {} + }, + "invites_delete": "Slet", + "@invites_delete": { + "type": "text", + "placeholders": {} + }, + "invites_invite_text": "Invitation", + "@invites_invite_text": { + "type": "text", + "placeholders": {} + }, + "invites_share_yourself": "Del selv invitation", + "@invites_share_yourself": { + "type": "text", + "placeholders": {} + }, + "invites_share_yourself_desc": "Vælg fra messaging apps etc.", + "@invites_share_yourself_desc": { + "type": "text", + "placeholders": {} + }, + "invites_share_email": "Del invitation per email", + "@invites_share_email": { + "type": "text", + "placeholders": {} + }, + "invites_email_text": "Email", + "@invites_email_text": { + "type": "text", + "placeholders": {} + }, + "invites_email_hint": "f.eks. janedoe@email.com", + "@invites_email_hint": { + "type": "text", + "placeholders": {} + }, + "invites_email_invite_text": "Email invitation", + "@invites_email_invite_text": { + "type": "text", + "placeholders": {} + }, + "invites_email_send_text": "Send", + "@invites_email_send_text": { + "type": "text", + "placeholders": {} + }, + "invites_email_sent_text": "Invitationsemail sendt", + "@invites_email_sent_text": { + "type": "text", + "placeholders": {} + }, + "invites_share_email_desc": "Vi skal sende en invitationsemail med instruktioner på dine vegne", + "@invites_share_email_desc": { + "type": "text", + "placeholders": {} + }, + "invites_edit_text": "Redigér", + "@invites_edit_text": { + "type": "text", + "placeholders": {} + }, + "invites_title": "Mine invitationer", + "@invites_title": { + "type": "text", + "placeholders": {} + }, + "invites_accepted_title": "Accepteret", + "@invites_accepted_title": { + "type": "text", + "placeholders": {} + }, + "invites_accepted_group_name": "accepterede invitationer", + "@invites_accepted_group_name": { + "description": "Egs where this will end up: Accepted invites (capitalised title), Search accepted invites, See all accepted invites ", + "type": "text", + "placeholders": {} + }, + "invites_accepted_group_item_name": "acceptered invitation", + "@invites_accepted_group_item_name": { + "type": "text", + "placeholders": {} + }, + "invites_pending_group_name": "verserende invitationer", + "@invites_pending_group_name": { + "type": "text", + "placeholders": {} + }, + "invites_pending_group_item_name": "verserende invitation", + "@invites_pending_group_item_name": { + "type": "text", + "placeholders": {} + }, + "invites_none_used": "Du har tilsyneladende ikke brugt nogen invitation endnu.", + "@invites_none_used": { + "type": "text", + "placeholders": {} + }, + "invites_none_left": "Du har ingen invitationer tilbage.", + "@invites_none_left": { + "type": "text", + "placeholders": {} + }, + "invites_invite_a_friend": "Inviter en ven", + "@invites_invite_a_friend": { + "type": "text", + "placeholders": {} + }, + "invites_refresh": "Opdater", + "@invites_refresh": { + "type": "text", + "placeholders": {} + }, + "language_settings_title": "Sprogindstillinger", + "@language_settings_title": { + "type": "text", + "placeholders": {} + }, + "language_settings_save": "Gem", + "@language_settings_save": { + "type": "text", + "placeholders": {} + }, + "language_settings_saved_success": "Sprogændring succesfuld", + "@language_settings_saved_success": { + "type": "text", + "placeholders": {} + }, + "groups_see_all": "Se alle {groupName}", + "@groups_see_all": { + "description": "Can be, See all joined communities, See all pending invites, See all moderated communities etc. ", + "type": "text", + "placeholders": { + "groupName": {} + } + }, + "invites_joined_with": "Blevet medlem med brugernavn @{username}", + "@invites_joined_with": { + "type": "text", + "placeholders": { + "username": {} + } + }, + "invites_pending_email": "Verserende, invitationsemail sendt til {email}", + "@invites_pending_email": { + "type": "text", + "placeholders": { + "email": {} + } + }, + "timeline_filters_no_match": "Ingen overensstemmelse med '{searchQuery}'.", + "@timeline_filters_no_match": { + "type": "text", + "placeholders": { + "searchQuery": {} + } + }, + "clear_application_cache_text": "Tøm cache", + "@clear_application_cache_text": { + "type": "text", + "placeholders": {} + }, + "clear_application_cache_desc": "Tøm cachen for indlæg, konti, billeder & mere.", + "@clear_application_cache_desc": { + "type": "text", + "placeholders": {} + }, + "clear_application_cache_success": "Cache succesfuldt tømt", + "@clear_application_cache_success": { + "type": "text", + "placeholders": {} + }, + "clear_application_cache_failure": "Kunne ikke tømme cache", + "@clear_application_cache_failure": { + "type": "text", + "placeholders": {} + }, + "confirm_guidelines_reject_title": "Retningslinjernes afvisning", + "@confirm_guidelines_reject_title": { + "type": "text", + "placeholders": {} + }, + "confirm_guidelines_reject_info": "Du kan ikke bruge Okuna før du accepterer retningslinjerne.", + "@confirm_guidelines_reject_info": { + "type": "text", + "placeholders": {} + }, + "confirm_guidelines_reject_chat_with_team": "Snak med teamet.", + "@confirm_guidelines_reject_chat_with_team": { + "type": "text", + "placeholders": {} + }, + "confirm_guidelines_reject_chat_immediately": "Start en samtale omgående.", + "@confirm_guidelines_reject_chat_immediately": { + "type": "text", + "placeholders": {} + }, + "confirm_guidelines_reject_chat_community": "Snak med fælleskabet.", + "@confirm_guidelines_reject_chat_community": { + "type": "text", + "placeholders": {} + }, + "confirm_guidelines_reject_join_slack": "Deltag i Slack kanalen.", + "@confirm_guidelines_reject_join_slack": { + "type": "text", + "placeholders": {} + }, + "confirm_guidelines_reject_go_back": "Tilbage", + "@confirm_guidelines_reject_go_back": { + "type": "text", + "placeholders": {} + }, + "confirm_guidelines_reject_delete_account": "Slet konto", + "@confirm_guidelines_reject_delete_account": { + "type": "text", + "placeholders": {} + }, + "guidelines_desc": "Tag et øjeblik til at læse og acceptere vores retningslinjer.", + "@guidelines_desc": { + "type": "text", + "placeholders": {} + }, + "guidelines_accept": "Accepter", + "@guidelines_accept": { + "type": "text", + "placeholders": {} + }, + "guidelines_reject": "Afvis", + "@guidelines_reject": { + "type": "text", + "placeholders": {} + }, + "change_email_title": "Skift Email", + "@change_email_title": { + "type": "text", + "placeholders": {} + }, + "change_email_email_text": "Email", + "@change_email_email_text": { + "type": "text", + "placeholders": {} + }, + "change_email_hint_text": "Indtast din emailadresse", + "@change_email_hint_text": { + "type": "text", + "placeholders": {} + }, + "change_email_error": "Email allerede registreret", + "@change_email_error": { + "type": "text", + "placeholders": {} + }, + "change_email_save": "Gem", + "@change_email_save": { + "type": "text", + "placeholders": {} + }, + "change_email_success_info": "Vi har sendt et bekræftelses link til din nye email adresse, klik det for at bekræfte din nye email", + "@change_email_success_info": { + "type": "text", + "placeholders": {} + }, + "clear_app_preferences_title": "Nulstil præferencer", + "@clear_app_preferences_title": { + "type": "text", + "placeholders": {} + }, + "clear_app_preferences_desc": "Nulstil app præferencer. I øjeblikket er dette den eneste foretrukne sortering af kommentarer.", + "@clear_app_preferences_desc": { + "type": "text", + "placeholders": {} + }, + "clear_app_preferences_cleared_successfully": "Nulstillede præferencer med succes", + "@clear_app_preferences_cleared_successfully": { + "type": "text", + "placeholders": {} + }, + "email_verification_successful": "Fantastisk! Din email er nu bekræftet", + "@email_verification_successful": { + "type": "text", + "placeholders": {} + }, + "email_verification_error": "Ups! Dit token var ikke validt, eller er udløbet. Prøv igen", + "@email_verification_error": { + "type": "text", + "placeholders": {} + }, + "clear_app_preferences_error": "Kunne ikke nulstille præferencer", + "@clear_app_preferences_error": { + "type": "text", + "placeholders": {} + }, + "disconnect_from_user_success": "Afbrød med succes", + "@disconnect_from_user_success": { + "type": "text", + "placeholders": {} + }, + "block_user": "Bloker bruger", + "@block_user": { + "type": "text", + "placeholders": {} + }, + "unblock_user": "Fjern blokering af bruger", + "@unblock_user": { + "type": "text", + "placeholders": {} + }, + "disconnect_from_user": "Fjern forbindelse med {userName}", + "@disconnect_from_user": { + "type": "text", + "placeholders": { + "userName": {} + } + }, + "circle_peoples_count": "{prettyUsersCount} personer", + "@circle_peoples_count": { + "type": "text", + "placeholders": { + "prettyUsersCount": {} + } + }, + "follows_list_accounts_count": "{prettyUsersCount} konti", + "@follows_list_accounts_count": { + "type": "text", + "placeholders": { + "prettyUsersCount": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/da/user_search.arb b/assets/i18n/da/user_search.arb new file mode 100644 index 000000000..3c35046db --- /dev/null +++ b/assets/i18n/da/user_search.arb @@ -0,0 +1,76 @@ +{ + "search_text": "Søg...", + "@search_text": { + "type": "text", + "placeholders": {} + }, + "communities": "Fælleskaber", + "@communities": { + "type": "text", + "placeholders": {} + }, + "users": "Brugere", + "@users": { + "type": "text", + "placeholders": {} + }, + "list_search_text": "Søg {resourcePluralName} ...", + "@list_search_text": { + "description": "resourcePluralName can take many forms foreg. Search members... , Search accepted invites, Search communities.. etc.", + "type": "text", + "placeholders": { + "resourcePluralName": {} + } + }, + "list_no_results_found": "Ingen {resourcePluralName} fundet.", + "@list_no_results_found": { + "description": "Used in a generic list widget. Can be No users found. No communities found. No pending invites found. Its always a plural. ", + "type": "text", + "placeholders": { + "resourcePluralName": {} + } + }, + "list_refresh_text": "Opdater", + "@list_refresh_text": { + "type": "text", + "placeholders": {} + }, + "list_retry": "Tryk for at prøve igen.", + "@list_retry": { + "type": "text", + "placeholders": {} + }, + "cancel": "Annuller", + "@cancel": { + "type": "text", + "placeholders": {} + }, + "searching_for": "Søger efter '{searchQuery}'", + "@searching_for": { + "type": "text", + "placeholders": { + "searchQuery": {} + } + }, + "no_results_for": "Ingen resultater for '{searchQuery}'.", + "@no_results_for": { + "type": "text", + "placeholders": { + "searchQuery": {} + } + }, + "no_communities_for": "Ingen fællesskaber fundet for '{searchQuery}'.", + "@no_communities_for": { + "type": "text", + "placeholders": { + "searchQuery": {} + } + }, + "no_users_for": "Ingen brugere fundet for '{searchQuery}'.", + "@no_users_for": { + "type": "text", + "placeholders": { + "searchQuery": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/da/video_picker.arb b/assets/i18n/da/video_picker.arb new file mode 100644 index 000000000..5e7a332a2 --- /dev/null +++ b/assets/i18n/da/video_picker.arb @@ -0,0 +1,12 @@ +{ + "from_gallery": "Fra galleri", + "@from_gallery": { + "type": "text", + "placeholders": {} + }, + "from_camera": "Fra kamera", + "@from_camera": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/de/application_settings.arb b/assets/i18n/de/application_settings.arb new file mode 100644 index 000000000..8aae79a9e --- /dev/null +++ b/assets/i18n/de/application_settings.arb @@ -0,0 +1,82 @@ +{ + "videos": "Videos", + "@videos": { + "type": "text", + "placeholders": {} + }, + "link_previews": "Link-Vorschau", + "@link_previews": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay": "Autoplay", + "@videos_autoplay": { + "type": "text", + "placeholders": {} + }, + "link_previews_show": "Anzeigen", + "@link_previews_show": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_always": "Immer", + "@videos_autoplay_always": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_wifi_only": "Nur WLAN", + "@videos_autoplay_wifi_only": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_never": "Nie", + "@videos_autoplay_never": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_always": "Immer", + "@link_previews_autoplay_always": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_wifi_only": "Nur WiFi", + "@link_previews_autoplay_wifi_only": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_never": "Nie", + "@link_previews_autoplay_never": { + "type": "text", + "placeholders": {} + }, + "videos_sound": "Sound", + "@videos_sound": { + "type": "text", + "placeholders": {} + }, + "tap_to_change": "(Zum Ändern tippen)", + "@tap_to_change": { + "type": "text", + "placeholders": {} + }, + "videos_sound_enabled": "Aktiviert", + "@videos_sound_enabled": { + "type": "text", + "placeholders": {} + }, + "videos_sound_disabled": "Deaktiviert", + "@videos_sound_disabled": { + "type": "text", + "placeholders": {} + }, + "comment_sort_newest_first": "Neueste zuerst", + "@comment_sort_newest_first": { + "type": "text", + "placeholders": {} + }, + "comment_sort_oldest_first": "Älteste zuerst", + "@comment_sort_oldest_first": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/de/auth.arb b/assets/i18n/de/auth.arb index 8e118ed0f..1bd80ca33 100644 --- a/assets/i18n/de/auth.arb +++ b/assets/i18n/de/auth.arb @@ -2,744 +2,530 @@ "headline": "Better social.", "@headline": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login": "Anmelden", "@login": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "email_empty_error": "E-Mail darf nicht leer sein.", "@email_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "email_invalid_error": "Bitte gib eine gültige E-Mail an.", "@email_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "username_empty_error": "Benutzername darf nicht leer sein.", "@username_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "username_characters_error": "Ein Benutzername kann nur alphanumerische Zeichen und Unterstriche enthalten.", "@username_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "username_maxlength_error": "Ein Benutzername darf nicht mehr als {maxLength} Zeichen haben.", "@username_maxlength_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "create_account": "Registrieren", "@create_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__lets_get_started": "Los geht's", "@create_acc__lets_get_started": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__welcome_to_beta": "Willkommen zur Beta!", "@create_acc__welcome_to_beta": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__previous": "Zurück", "@create_acc__previous": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__next": "Weiter", "@create_acc__next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__create_account": "Account erstellen", "@create_acc__create_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__paste_link": "Füge deinen Registrierungslink unten ein", "@create_acc__paste_link": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__paste_password_reset_link": "Link zum Zurücksetzen des Passworts unten einfügen", "@create_acc__paste_password_reset_link": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__paste_link_help_text": "Benutze den Link von dem \"Join Okuna\" Button in deiner Einladungs-E-Mail.", + "create_acc__paste_link_help_text": "Benutze den Link von dem Button \"Okuna beitreten\" in deiner Einladungs-E-Mail.", "@create_acc__paste_link_help_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__link_empty_error": "Link darf nicht leer sein.", "@create_acc__link_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__link_invalid_error": "Dieser Link scheint ungültig zu sein.", "@create_acc__link_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "password_empty_error": "Passwort darf nicht leer sein.", "@password_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "password_range_error": "Das Passwort muss zwischen {minLength} und {maxLength} Zeichen lang sein.", "@password_range_error": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, "name_empty_error": "Name darf nicht leer sein.", "@name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "name_range_error": "Name muss zwischen {minLength} und {maxLength} Zeichen lang sein.", "@name_range_error": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, "description_empty_error": "Beschreibung darf nicht leer sein.", "@description_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "description_range_error": "Beschreibung muss zwischen {minLength} und {maxLength} Zeichen lang sein.", "@description_range_error": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, - "reset_password_success_title": "Fertig!", + "reset_password_success_title": "Alles erledigt!", "@reset_password_success_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reset_password_success_info": "Dein Passwort wurde erfolgreich aktualisiert", "@reset_password_success_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__request_invite": "Keine Einladung? Fordere hier eine an.", "@create_acc__request_invite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__subscribe": "Anfrage", "@create_acc__subscribe": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__subscribe_to_waitlist_text": "Einladung anfordern!", "@create_acc__subscribe_to_waitlist_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__congratulations": "Herzlichen Glückwunsch!", "@create_acc__congratulations": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__your_subscribed": "Du bist {0}. auf der Warteliste.", "@create_acc__your_subscribed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__almost_there": "Fast geschafft...", "@create_acc__almost_there": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_name": "Wie heißt du?", "@create_acc__what_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__name_placeholder": "Fritz Fantom", "@create_acc__name_placeholder": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__name_empty_error": "😱 Dein Name darf nicht leer sein.", "@create_acc__name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__name_length_error": "😱 Dein Name darf nicht länger als 50 Zeichen lang sein. (Wenn er das tatsächlich ist, tut uns das sehr leid.)", "@create_acc__name_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__name_characters_error": "😅 Ein Name kann nur alphanumerische Zeichen enthalten (momentan).", "@create_acc__name_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_username": "Wähle einen Benutzernamen", "@create_acc__what_username": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_placeholder": "fritzfantom", "@create_acc__username_placeholder": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_empty_error": "😱 Der Benutzername darf nicht leer sein.", "@create_acc__username_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_length_error": "😅 Der Benutzername darf nicht länger als 30 Zeichen sein.", "@create_acc__username_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_characters_error": "😅 Ein Benutzername kann nur alphanumerische Zeichen und Unterstriche enthalten.", "@create_acc__username_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_taken_error": "😩 Der Benutzername @%s ist schon vergeben.", "@create_acc__username_taken_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_server_error": "😭 Ein Serverproblem ist aufgetreten, bitte versuche es später noch einmal.", "@create_acc__username_server_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_email": "Wie lautet deine E-Mail?", "@create_acc__what_email": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_placeholder": "fritz_fantom@mail.de", "@create_acc__email_placeholder": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_empty_error": "😱 Deine E-Mail darf nicht leer sein", "@create_acc__email_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_invalid_error": "😅 Bitte gib eine gültige E-Mail-Adresse an.", "@create_acc__email_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_taken_error": "🤔 Es gibt bereits einen Account mit dieser E-Mail.", "@create_acc__email_taken_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_server_error": "😭 Ein Serverproblem ist aufgetreten, bitte versuche es später noch einmal.", "@create_acc__email_server_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_password": "Wähle ein Passwort", "@create_acc__what_password": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc_password_hint_text": "({minLength}-{maxLength} Zeichen)", "@create_acc_password_hint_text": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, "create_acc__what_password_subtext": "(min. 10 Zeichen)", "@create_acc__what_password_subtext": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__password_empty_error": "😱 Dein Passwort darf nicht leer sein", "@create_acc__password_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__password_length_error": "😅 Ein Passwort muss zwischen 8 und 64 Zeichen lang sein.", "@create_acc__password_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_avatar": "Wähle ein Profilbild", "@create_acc__what_avatar": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_tap_to_change": "Zum Ändern tippen", "@create_acc__avatar_tap_to_change": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_choose_camera": "Foto aufnehmen", "@create_acc__avatar_choose_camera": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_choose_gallery": "Vorhandenes Bild auswählen", "@create_acc__avatar_choose_gallery": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_remove_photo": "Bild entfernen", "@create_acc__avatar_remove_photo": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done": "Account erstellen", "@create_acc__done": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_subtext": "Du kannst dies in deinen Profileinstellungen ändern.", "@create_acc__done_subtext": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_created": "Dein Konto wurde mit folgendem Benutzernamen erstellt ", "@create_acc__done_created": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_loading_title": "Halte durch!", "@create_acc__submit_loading_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_loading_desc": "Wir erstellen deinen Account.", "@create_acc__submit_loading_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_error_title": "Oh nein...", "@create_acc__submit_error_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_error_desc_server": "😭 Ein Serverproblem ist aufgetreten, bitte versuche es später noch einmal.", "@create_acc__submit_error_desc_server": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_error_desc_validation": "😅 Es sieht so aus, als ob einige Informationen nicht korrekt waren. Überprüfe diese und versuche es noch einmal.", "@create_acc__submit_error_desc_validation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_title": "Hurra!", "@create_acc__done_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_description": "Dein Account wurde erstellt.", "@create_acc__done_description": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__your_username_is": "Dein Benutzername ist ", "@create_acc__your_username_is": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__can_change_username": "Wenn du möchtest, kannst du ihn jederzeit über deine Profilseite ändern.", "@create_acc__can_change_username": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_continue": "Anmelden", "@create_acc__done_continue": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__one_last_thing": "Eine letzte Sache...", "@create_acc__one_last_thing": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__register": "Registrieren", "@create_acc__register": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__are_you_legal_age": "Bist du älter als 16 Jahre?", "@create_acc__are_you_legal_age": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__login": "Weiter", "@login__login": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__previous": "Zurück", "@login__previous": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__title": "Willkommen zurück!", "@login__title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__subtitle": "Gib deine Anmeldedaten ein, um fortzufahren.", "@login__subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__forgot_password": "Passwort vergessen", "@login__forgot_password": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__forgot_password_subtitle": "Benutzername oder E-Mail eingeben", "@login__forgot_password_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_label": "Benutzername", "@login__username_label": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__password_label": "Passwort", "@login__password_label": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__email_label": "E-Mail", "@login__email_label": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__or_text": "Oder", "@login__or_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__password_empty_error": "Passwort ist erforderlich.", "@login__password_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__password_length_error": "Das Passwort muss zwischen 8 und 64 Zeichen lang sein.", "@login__password_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_empty_error": "Benutzername ist erforderlich.", "@login__username_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_length_error": "Benutzername darf nicht länger als 30 Zeichen lang sein.", "@login__username_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_characters_error": "Benutzername kann nur alphanumerische Zeichen und Unterstriche enthalten.", "@login__username_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "login__credentials_mismatch_error": "Die angegebenen Anmeldedaten stimmen nicht überein.", + "login__credentials_mismatch_error": "Die Zugangsdaten sind ungültig.", "@login__credentials_mismatch_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "login__server_error": "Oh oh.. Wir haben Serverprobleme. Bitte versuche es in wenigen Minuten erneut.", + "login__server_error": "Oh oh.. Wir haben Serverprobleme. Bitte versuche es später noch einmal.", "@login__server_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "login__connection_error": "Wir können unsere Server nicht erreichen. Ist eine Verbindung zum Internet vorhanden?", + "login__connection_error": "Wir können unsere Server nicht erreichen. Bist du mit dem Internet verbunden?", "@login__connection_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_title": "Passwort ändern", "@change_password_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_current_pwd": "Aktuelles Passwort", "@change_password_current_pwd": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_current_pwd_hint": "Gib dein aktuelles Passwort ein", "@change_password_current_pwd_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "change_password_current_pwd_incorrect": "Eingegebenes Passwort war falsch", + "change_password_current_pwd_incorrect": "Falsches Passwort", "@change_password_current_pwd_incorrect": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_new_pwd": "Neues Passwort", "@change_password_new_pwd": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_new_pwd_hint": "Neues Passwort eingeben", "@change_password_new_pwd_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "change_password_new_pwd_error": "Bitte stelle sicher, dass das Passwort zwischen 10 und 100 Zeichen lang ist", + "change_password_new_pwd_error": "Dein Passwort muss zwischen 10 und 100 Zeichen lang sein", "@change_password_new_pwd_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_save_text": "Speichern", "@change_password_save_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_save_success": "Alles gut! Dein Passwort wurde aktualisiert", "@change_password_save_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/de/community.arb b/assets/i18n/de/community.arb index aa7452d79..32d62092e 100644 --- a/assets/i18n/de/community.arb +++ b/assets/i18n/de/community.arb @@ -2,475 +2,348 @@ "no": "Nein", "@no": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "yes": "Ja", "@yes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "button_staff": "Team", "@button_staff": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "button_rules": "Regeln", "@button_rules": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community": "Community", "@community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities": "Communities", "@communities": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "type_public": "Öffentlich", "@type_public": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "type_private": "Privat", "@type_private": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "member_capitalized": "Mitglied", "@member_capitalized": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "members_capitalized": "Mitglieder", "@members_capitalized": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "admin_desc": "Dies ermöglicht dem Mitglied, folgendes zu bearbeiten: Die Community-Details, Administratoren, Moderatoren und gesperrte Benutzer.", "@admin_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirmation_title": "Bestätigung", "@confirmation_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "retry_loading_posts": "Zum Wiederholen tippen", + "@retry_loading_posts": { + "type": "text", + "placeholders": {} }, "admin_add_confirmation": "Bist du sicher, dass du @{username} als einen Administrator der Community hinzufügen möchtest?", "@admin_add_confirmation": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "ban_confirmation": "Bist du sicher, dass du @{username} sperren möchtest?", "@ban_confirmation": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "ban_desc": "Dadurch wird der Benutzer aus der Community entfernt und es wird ihm nicht mehr erlaubt beizutreten.", "@ban_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderator_add_confirmation": "Bist du sicher, dass du @{username} als Community Moderator hinzufügen möchtest?", "@moderator_add_confirmation": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "moderator_desc": "Dies ermöglicht dem Mitglied, folgendes zu bearbeiten: Die Community-Details, Moderatoren und gesperrte Benutzer.", "@moderator_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderators_you": "Du", "@moderators_you": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderators_title": "Moderatoren", "@moderators_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "leave_desc": "Du wirst keine Beiträge dieser Community in deiner Timeline sehen, und auch keine Beiträge mehr mit dieser Community teilen können.", "@leave_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "leave_confirmation": "Bist du sicher, dass du die Community verlassen möchtest?", "@leave_confirmation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderator_resource_name": "Moderator", "@moderator_resource_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderators_resource_name": "Moderatoren", "@moderators_resource_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_moderator_title": "Moderator hinzufügen", "@add_moderator_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_confirmation": "Bist du dir sicher, dass du die Community löschen möchtest?", "@delete_confirmation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_desc": "Du wirst keine Beiträge dieser Community in deiner Timeline sehen, und auch keine Beiträge mehr mit dieser Community teilen können.", "@delete_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_manage_text": "Verwalten", "@actions_manage_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_title": "Community verwalten", "@manage_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_details_title": "Details", "@manage_details_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_details_desc": "Ändere den Titel, Namen, Avatar, Cover-Foto und mehr.", "@manage_details_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_admins_title": "Administratoren", "@manage_admins_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_admins_desc": "Administratoren anzeigen, hinzufügen und entfernen.", "@manage_admins_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_mods_title": "Moderatoren", "@manage_mods_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_mods_desc": "Moderatoren anzeigen, hinzufügen und entfernen.", "@manage_mods_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_banned_title": "Gesperrte Benutzer", "@manage_banned_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_banned_desc": "Gesperrte Benutzer anzeigen, hinzufügen und entfernen.", "@manage_banned_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_mod_reports_title": "Moderationsberichte", "@manage_mod_reports_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_mod_reports_desc": "Überprüfe die Meldungen an die Community.", "@manage_mod_reports_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_closed_posts_title": "Geschlossene Beiträge", "@manage_closed_posts_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_closed_posts_desc": "Geschlossene Beiträge anzeigen und bearbeiten", "@manage_closed_posts_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_invite_title": "Personen einladen", "@manage_invite_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_invite_desc": "Lade deine Verbindungen und Follower ein, dieser Community beizutreten.", "@manage_invite_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_delete_title": "Community löschen", "@manage_delete_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "manage_delete_desc": "Community für immer löschen.", + "manage_delete_desc": "Community endgültig löschen.", "@manage_delete_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_leave_title": "Community verlassen", "@manage_leave_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_leave_desc": "Diese Community verlassen.", "@manage_leave_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_add_favourite": "Community zu deinen Favoriten hinzufügen", "@manage_add_favourite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_remove_favourite": "Community aus deinen Favoriten entfernen", "@manage_remove_favourite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "is_private": "Diese Community ist privat.", "@is_private": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invited_by_member": "Du musst von einem Mitglied eingeladen werden.", "@invited_by_member": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invited_by_moderator": "Du musst von einem Moderator eingeladen werden.", "@invited_by_moderator": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "refreshing": "Community neu laden", "@refreshing": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "posts": "Beiträge", "@posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "about": "Über", "@about": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "category": "Kategorie.", "@category": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "categories": "Kategorien.", "@categories": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_administrators_title": "Administrator hinzufügen.", "@add_administrators_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_members": "Community-Mitglieder", "@community_members": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "member": "Mitglied", "@member": { "description": "Currently not used in app, reserved for potential use. Could be used as: Showing 1 member", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "member_plural": "Mitglieder", "@member_plural": { "description": "See all members ,Search all members", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrators_title": "Administratoren", "@administrators_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrator_text": "Administrator", "@administrator_text": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 administrator", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrator_plural": "Administratoren", "@administrator_plural": { "description": "Egs. Search administrators, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrator_you": "Du", "@administrator_you": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "user_you_text": "Du", "@user_you_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "pick_upto_max": "Wähle bis zu {max} Kategorien", "@pick_upto_max": { "type": "text", "placeholders": { - "max": { - - } + "max": {} } }, "pick_atleast_min_category": "Du musst mindestens {min} Kategorie auswählen.", @@ -478,9 +351,7 @@ "description": "You must pick at least 1 category", "type": "text", "placeholders": { - "min": { - - } + "min": {} } }, "pick_atleast_min_categories": "Du musst mindestens {min} Kategorien auswählen.", @@ -488,530 +359,386 @@ "description": "Eg. Variable min will be 3-5. You must pick at least (3-5) categories", "type": "text", "placeholders": { - "min": { - - } + "min": {} } }, "ban_user_title": "Benutzer bannen", "@ban_user_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "banned_users_title": "Gesperrte Benutzer", "@banned_users_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "banned_user_text": "gesperrter Benutzer", "@banned_user_text": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 banned user", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "banned_users_text": "gesperrte Benutzer", "@banned_users_text": { "description": "Egs. Search banned users, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorites_title": "Favoriten", "@favorites_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorite_community": "favorisierte Community", "@favorite_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 favorite community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorite_communities": "favorisierte Communities", "@favorite_communities": { "description": "Egs. Search favorite communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrated_title": "Verwaltet", "@administrated_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrated_community": "verwaltete Community", "@administrated_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 administrated community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrated_communities": "verwaltete Communities", "@administrated_communities": { "description": "Egs. Search administrated communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_title": "Moderiert", "@moderated_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_community": "moderierte Community", "@moderated_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 moderated community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_communities": "moderierte Communities", "@moderated_communities": { "description": "Egs. Search moderated communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "joined_title": "Beigetreten", "@joined_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "joined_community": "Beigetretene Community", "@joined_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 joined community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "joined_communities": "Beigetretene Communities", "@joined_communities": { "description": "Egs. Search joined communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "join_communities_desc": "Werde Mitglied von Communities und diese Registerkarte erwacht zum Leben!", "@join_communities_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "refresh_text": "Aktualisieren", "@refresh_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_none_found": "Keine angesagten Communities gefunden. Versuche es in ein paar Minuten erneut.", "@trending_none_found": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_refresh": "Aktualisieren", "@trending_refresh": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_in_all": "Angesagt in allen Kategorien", "@trending_in_all": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_in_category": "Angesagt in {categoryName}", "@trending_in_category": { "type": "text", "placeholders": { - "categoryName": { - - } + "categoryName": {} } }, "communities_title": "Communities", "@communities_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities_no_category_found": "Keine Kategorien gefunden. Bitte versuche es in wenigen Minuten erneut.", "@communities_no_category_found": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities_refresh_text": "Aktualisieren", "@communities_refresh_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities_all_text": "Alle", "@communities_all_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_to_community_title": "Zur Community einladen", "@invite_to_community_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_to_community_resource_singular": "Verbindung oder Follower", "@invite_to_community_resource_singular": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 connection or follower", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_to_community_resource_plural": "Verbindungen und Follower", "@invite_to_community_resource_plural": { "description": "Egs. Search connections and followers, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorite_action": "Community favorisieren", "@favorite_action": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "unfavorite_action": "Community von Favoriten löschen", + "unfavorite_action": "Community aus Favoriten entfernen", "@unfavorite_action": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_label_title": "Titel", "@save_community_label_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_label_title_hint_text": "z.B. Reisen, Fotografie, Gaming.", "@save_community_label_title_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_title": "Name", "@save_community_name_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_title_hint_text": " z.B. Reisen, Fotografie, Gaming.", "@save_community_name_title_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_taken": "Der Community Name '{takenName}' ist bereits vergeben", "@save_community_name_taken": { "type": "text", "placeholders": { - "takenName": { - - } + "takenName": {} } }, "save_community_name_label_color": "Farbe", "@save_community_name_label_color": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_color_hint_text": "(Zum Ändern tippen)", "@save_community_name_label_color_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_type": "Typ", "@save_community_name_label_type": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_type_hint_text": "(Zum Ändern tippen)", "@save_community_name_label_type_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_member_invites": "Mitglieder-Einladungen", "@save_community_name_member_invites": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "save_community_name_member_invites_subtitle": "Mitglieder können Personen in die Community einladen", + "save_community_name_member_invites_subtitle": "Mitglieder können andere in die Community einladen", "@save_community_name_member_invites_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_category": "Kategorie", "@save_community_name_category": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_desc_optional": "Beschreibung · Optional", "@save_community_name_label_desc_optional": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_desc_optional_hint_text": "Worum geht es in deiner Community?", "@save_community_name_label_desc_optional_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_rules_optional": "Regeln · Optional", "@save_community_name_label_rules_optional": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_rules_optional_hint_text": "Gibt es etwas, das deine Benutzer wissen sollten?", "@save_community_name_label_rules_optional_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_member_adjective": "Mitglied Adjektiv · Optional", "@save_community_name_label_member_adjective": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_member_adjective_hint_text": "z.B. Reisender, Fotograf, Gamer.", "@save_community_name_label_member_adjective_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_members_adjective": "Mitglieder Adjektiv · Optional", "@save_community_name_label_members_adjective": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_members_adjective_hint_text": "z.B. Reisende, Fotografen, Gamer.", "@save_community_name_label_members_adjective_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_edit_community": "Community bearbeiten", "@save_community_edit_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_create_community": "Community erstellen", "@save_community_create_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_save_text": "Speichern", "@save_community_save_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_create_text": "Erstellen", "@save_community_create_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_invite_people_title": "Lade jemanden in die Community ein", "@actions_invite_people_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "join_community": "Beitreten", "@join_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "leave_community": "Verlassen", "@leave_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_staff": "Community-Team", "@community_staff": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_singular": "Beitrag", "@post_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_plural": "Beiträge", "@post_plural": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "rules_title": "Community-Regeln", "@rules_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "rules_text": "Regeln", "@rules_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "name_characters_error": "Der Name kann nur alphanumerische Zeichen und Unterstriche enthalten.", "@name_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "name_range_error": "Name darf nicht länger als {maxLength} Zeichen sein.", "@name_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "name_empty_error": "Name darf nicht leer sein.", "@name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "title_range_error": "Der Titel kann nicht mehr als {maxLength} Zeichen haben.", "@title_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "title_empty_error": "Titel darf nicht leer sein.", "@title_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "rules_range_error": "Regeln dürfen nicht länger als {maxLength} Zeichen sein.", "@rules_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "rules_empty_error": "Regeln dürfen nicht leer sein.", "@rules_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "description_range_error": "Beschreibung darf nicht länger als {maxLength} Zeichen sein.", "@description_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "adjectives_range_error": "Adjektive dürfen nicht länger als {maxLength} Zeichen sein.", @@ -1019,9 +746,7 @@ "description": "This refers to the customisable adjectives assigned to community members,eg. 1k travellers,5k photographers", "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } } } \ No newline at end of file diff --git a/assets/i18n/de/contextual_account_search_box.arb b/assets/i18n/de/contextual_account_search_box.arb index ef9e1bf9a..926456fcc 100644 --- a/assets/i18n/de/contextual_account_search_box.arb +++ b/assets/i18n/de/contextual_account_search_box.arb @@ -3,8 +3,6 @@ "@suggestions": { "description": "The title to display on the suggestions when searching for accounts when trying to mention someone.", "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/de/drawer.arb b/assets/i18n/de/drawer.arb index 322f58bf3..52ad68600 100644 --- a/assets/i18n/de/drawer.arb +++ b/assets/i18n/de/drawer.arb @@ -2,304 +2,223 @@ "menu_title": "Menü", "@menu_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "main_title": "Mein Okuna", "@main_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_circles": "Meine Kreise", "@my_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_lists": "Meine Listen", "@my_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_followers": "Meine Follower", "@my_followers": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_following": "Folge ich", "@my_following": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_invites": "Meine Einladungen", "@my_invites": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_pending_mod_tasks": "Meine offenen Moderatoraufgaben", "@my_pending_mod_tasks": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_mod_penalties": "Meine Strafen", "@my_mod_penalties": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "app_account_text": "App & Account", "@app_account_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "themes": "Designs", "@themes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_moderation": "Globale Moderation", "@global_moderation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile": "Profil", "@profile": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connections": "Meine Verbindungen", "@connections": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "lists": "Meine Listen", "@lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "settings": "Einstellungen", "@settings": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "application_settings": "App-Einstellungen", "@application_settings": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "account_settings": "Accounteinstellungen", + "account_settings": "Account-Einstellungen", "@account_settings": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "developer_settings": "Entwicklereinstellungen", + "@developer_settings": { + "type": "text", + "placeholders": {} }, "account_settings_change_email": "E-Mail ändern", "@account_settings_change_email": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_change_password": "Passwort ändern", "@account_settings_change_password": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_notifications": "Benachrichtigungen", "@account_settings_notifications": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_language_text": "Sprache", "@account_settings_language_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_language": "Sprache ({currentUserLanguage})", "@account_settings_language": { "type": "text", "placeholders": { - "currentUserLanguage": { - - } + "currentUserLanguage": {} } }, "account_settings_blocked_users": "Blockierte Benutzer", "@account_settings_blocked_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_delete_account": "Account löschen", "@account_settings_delete_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "help": "Support & Feedback", "@help": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "customize": "Anpassen", "@customize": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "logout": "Abmelden", "@logout": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_title": "Nützliche Links", "@useful_links_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines": "Okuna-Richtlinien", "@useful_links_guidelines": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_desc": "Regeln, die wir alle für ein gutes und freundliches Miteinander befolgen sollten.", "@useful_links_guidelines_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_github": "Github Projektboard", "@useful_links_guidelines_github": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "useful_links_guidelines_github_desc": "Wirf einen Blick auf das, woran wir gerade arbeiten", + "useful_links_guidelines_github_desc": "Sieh dir an, woran wir gerade arbeiten", "@useful_links_guidelines_github_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_feature_requests": "Feature-Anfragen", "@useful_links_guidelines_feature_requests": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_feature_requests_desc": "Schlage neue Funktionen vor oder stimme für bestehende Vorschläge ab", "@useful_links_guidelines_feature_requests_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "useful_links_guidelines_bug_tracker": "Fehlerverfolgung", + "useful_links_guidelines_bug_tracker": "Bug-Tracker", "@useful_links_guidelines_bug_tracker": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_bug_tracker_desc": "Melde einen Fehler oder gib bereits gemeldeten Fehlern mehr Priorität", "@useful_links_guidelines_bug_tracker_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "useful_links_guidelines_handbook": "Okuna Benutzerhandbuch", + "useful_links_guidelines_handbook": "Okuna Handbuch", "@useful_links_guidelines_handbook": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_handbook_desc": "Ein Benutzerhandbuch mit allem, was man wissen muss, um Okuna zu nutzen", "@useful_links_guidelines_handbook_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "useful_links_support": "Okuna unterstützen", + "useful_links_support": "Unterstütze Okuna", "@useful_links_support": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_support_desc": "Finde einen Weg, wie Du uns auf unserer Reise unterstützen kannst!", "@useful_links_support_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_slack_channel": "Community Slack Channel", "@useful_links_slack_channel": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_slack_channel_desc": "Hier kann man sich über Okuna austauschen", "@useful_links_slack_channel_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/de/error.arb b/assets/i18n/de/error.arb index 6666ed39a..a3cb552f4 100644 --- a/assets/i18n/de/error.arb +++ b/assets/i18n/de/error.arb @@ -2,15 +2,11 @@ "unknown_error": "Unbekannter Fehler", "@unknown_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "no_internet_connection": "Keine Internetverbindung", "@no_internet_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/de/image_picker.arb b/assets/i18n/de/image_picker.arb new file mode 100644 index 000000000..5947d133c --- /dev/null +++ b/assets/i18n/de/image_picker.arb @@ -0,0 +1,19 @@ +{ + "from_gallery": "Aus der Galerie", + "@from_gallery": { + "type": "text", + "placeholders": {} + }, + "from_camera": "Von der Kamera", + "@from_camera": { + "type": "text", + "placeholders": {} + }, + "error_too_large": "Datei zu groß (Limit: {limit} MB)", + "@error_too_large": { + "type": "text", + "placeholders": { + "limit": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/de/moderation.arb b/assets/i18n/de/moderation.arb index 528a4f45b..a285e09d9 100644 --- a/assets/i18n/de/moderation.arb +++ b/assets/i18n/de/moderation.arb @@ -2,502 +2,360 @@ "filters_title": "Moderationsfilter", "@filters_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_reset": "Zurücksetzen", "@filters_reset": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_verified": "Verifiziert", "@filters_verified": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "filters_apply": "Filter anwenden", + "filters_apply": "Anwenden", "@filters_apply": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_type": "Typ", "@filters_type": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_status": "Status", "@filters_status": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_other": "Sonstige", "@filters_other": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_review": "Überprüfen", "@actions_review": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_chat_with_team": "Chatte mit dem Team", "@actions_chat_with_team": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_category_title": "Kategorie aktualisieren", "@update_category_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_category_save": "Speichern", "@update_category_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_save": "Speichern", "@update_description_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_title": "Beschreibung bearbeiten", "@update_description_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_report_desc": "Beschreibung melden", "@update_description_report_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_report_hint_text": "z.B. der Bericht wurde als zu ... empfunden.", "@update_description_report_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_status_save": "Speichern", "@update_status_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_status_title": "Status aktualisieren", "@update_status_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "community_review_title": "Moderiertes Objekt überprüfen", + "community_review_title": "Gemeldetes Element überprüfen", "@community_review_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "moderated_object_title": "Objekt", + "moderated_object_title": "Element", "@moderated_object_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_status": "Status", "@moderated_object_status": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "moderated_object_reports_count": "Anzahl der Berichte", + "moderated_object_reports_count": "Anzahl der Meldungen", "@moderated_object_reports_count": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "moderated_object_verified_by_staff": "Verifiziert durch Okuna-Mitarbeiter", + "moderated_object_verified_by_staff": "Geprüft durch das Okuna-Team", "@moderated_object_verified_by_staff": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "moderated_object_verified": "Verifiziert", + "moderated_object_verified": "Geprüft", "@moderated_object_verified": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_true_text": "Wahr", "@moderated_object_true_text": { - "description": "Eg. Moderated object verified by staff? true \/ false", + "description": "Eg. Moderated object verified by staff? true / false", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_false_text": "Falsch", "@moderated_object_false_text": { - "description": "Eg. Moderated object verified by staff? true \/ false", + "description": "Eg. Moderated object verified by staff? true / false", "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "community_review_object": "Objekt", + "community_review_object": "Element", "@community_review_object": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_approve": "Bestätigen", "@community_review_approve": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "community_review_reject": "zurückweisen", + "community_review_reject": "Ablehnen", "@community_review_reject": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_item_verified": "Dieses Element wurde überprüft", "@community_review_item_verified": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "global_review_title": "Moderiertes Objekt überprüfen", + "global_review_title": "Gemeldetes Element überprüfen", "@global_review_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "global_review_object_text": "Objekt", + "global_review_object_text": "Element", "@global_review_object_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "global_review_verify_text": "Bestätigen", + "global_review_verify_text": "Verify", "@global_review_verify_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "global_review_unverify_text": "Bestätigung aufheben", + "global_review_unverify_text": "Unverify", "@global_review_unverify_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_title": "Bericht einreichen", "@confirm_report_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_details": "Kannst du zusätzliche Details angeben, die für den Bericht relevant sein könnten?", "@confirm_report_provide_details": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_optional_info": "(Optional)", "@confirm_report_provide_optional_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_optional_hint_text": "Schreibe hier...", "@confirm_report_provide_optional_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "confirm_report_provide_happen_next": "Hier ist, was als nächstes passieren wird:", + "confirm_report_provide_happen_next": "Das passiert als nächstes:", "@confirm_report_provide_happen_next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_happen_next_desc": "- Dein Bericht wird anonym übermittelt. \n- Wenn du einen Beitrag oder Kommentar meldest, wird der Bericht an die Okuna-Mitarbeiter und ggf. an die Community-Moderatoren gesendet und der Beitrag wird in deinem Feed ausgeblendet. \n- Wenn du ein Account oder eine Community meldest, wird dies an die Okuna-Mitarbeiter gesendet. \n- Wir werden das überprüfen und wenn es bestätigt wird, werden die Inhalte gelöscht und Strafen für die betroffenen Personen verhängt. Diese reichen von einer vorübergehenden Sperrung bis zur Löschung des Accounts - je nach Schwere der Überschreitung. \n- Wenn sich herausstellt, dass die Meldung in dem Versuch erstellt wurde, einem anderen Mitglied oder einer Community auf der Plattform ohne Verletzung des angegebenen Grundes Schaden zuzufügen, werden Strafen gegenüber dir verhängt.\n", "@confirm_report_provide_happen_next_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_submit": "Ich verstehe, einreichen.", "@confirm_report_submit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_user_reported": "Benutzer gemeldet", "@confirm_report_user_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_community_reported": "Community gemeldet", "@confirm_report_community_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_post_reported": "Beitrag gemeldet", "@confirm_report_post_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_post_comment_reported": "Kommentar gemeldet", "@confirm_report_post_comment_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_item_reported": "Element gemeldet", "@confirm_report_item_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "community_moderated_objects": "Moderierte Objekte", + "community_moderated_objects": "Gemeldete Elemente der Community", "@community_moderated_objects": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "globally_moderated_objects": "Global moderierte Objekte", + "globally_moderated_objects": "Global gemeldete Elemente", "@globally_moderated_objects": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "tap_to_retry": "Tippe hier, um das Laden von Elementen zu wiederholen", + "tap_to_retry": "Tippe hier, um neu zu laden", "@tap_to_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_post_text": "Beitrag melden", "@report_post_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_post_text": "Du hast diesen Beitrag gemeldet", "@you_have_reported_post_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "report_account_text": "Account melden", + "report_account_text": "Benutzer melden", "@report_account_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_account_text": "Du hast diesen Account gemeldet", "@you_have_reported_account_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_community_text": "Community melden", "@report_community_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_community_text": "Du hast diese Community gemeldet", "@you_have_reported_community_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_comment_text": "Kommentar melden", "@report_comment_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_comment_text": "Du hast diesen Kommentar gemeldet", "@you_have_reported_comment_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "description_text": "Beschreibung", "@description_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "no_description_text": "Keine Beschreibung", "@no_description_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "category_text": "Kategorie", "@category_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reporter_text": "Meldender", "@reporter_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reports_preview_title": "Berichte", "@reports_preview_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reports_preview_resource_reports": "Berichte", "@reports_preview_resource_reports": { "description": "Usage: See all reports..", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reports_see_all": "Alle {resourceCount} {resourceName} anzeigen", "@reports_see_all": { "description": "Usage: See all 4 reports.", "type": "text", "placeholders": { - "resourceCount": { - - }, - "resourceName": { - - } + "resourceCount": {}, + "resourceName": {} } }, "object_status_title": "Status", "@object_status_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "my_moderation_tasks_title": "Offene Moderatoraufgaben", + "my_moderation_tasks_title": "Offene Moderationsaufgaben", "@my_moderation_tasks_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "pending_moderation_tasks_singular": "offene Moderatoraufgabe", + "pending_moderation_tasks_singular": "offene Moderationsaufgabe", "@pending_moderation_tasks_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "pending_moderation_tasks_plural": "offene Moderatoraufgaben", + "pending_moderation_tasks_plural": "offenen Moderationsaufgaben", "@pending_moderation_tasks_plural": { "description": "Eg. No pending moderation tasks found", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_penalties_title": "Meine Strafen", "@my_moderation_penalties_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_penalties_resouce_singular": "gegen mich verhängte Strafe", "@my_moderation_penalties_resouce_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_penalties_resource_plural": "gegen mich verhängte Strafen", "@my_moderation_penalties_resource_plural": { "description": "See all moderation penalties, No moderation penalties found etc..", "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/de/notifications.arb b/assets/i18n/de/notifications.arb index 84592555c..27a61492d 100644 --- a/assets/i18n/de/notifications.arb +++ b/assets/i18n/de/notifications.arb @@ -1,4 +1,14 @@ { + "tab_general": "Allgemein", + "@tab_general": { + "type": "text", + "placeholders": {} + }, + "tab_requests": "Anfragen", + "@tab_requests": { + "type": "text", + "placeholders": {} + }, "settings_title": "Benachrichtigungen", "@settings_title": { "type": "text", @@ -39,7 +49,7 @@ "type": "text", "placeholders": {} }, - "comment_desc": "Werde benachrichtigt, wenn jemand auf einen deiner Beiträge oder einen auf den du ebenfalls kommentiert hast, kommentiert", + "comment_desc": "Werde benachrichtigt, wenn jemand einen deiner Beiträge oder einen von dir kommentierten Beitrag kommentiert", "@comment_desc": { "type": "text", "placeholders": {} @@ -154,9 +164,9 @@ "type": "text", "placeholders": {} }, - "user_community_invite_tile": "[name] [username] hat dich in die Community \/c\/{communityName} eingeladen.", + "user_community_invite_tile": "[name] [username] hat dich in die Community /c/{communityName} eingeladen.", "@user_community_invite_tile": { - "description": "Eg.: James @jamest has invited you to join community \/c\/okuna.", + "description": "Eg.: James @jamest has invited you to join community /c/okuna.", "type": "text", "placeholders": { "communityName": {} diff --git a/assets/i18n/de/post.arb b/assets/i18n/de/post.arb index 94afd1afe..ca909a20e 100644 --- a/assets/i18n/de/post.arb +++ b/assets/i18n/de/post.arb @@ -2,809 +2,600 @@ "open_post": "Beitrag öffnen", "@open_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "close_post": "Beitrag schließen", "@close_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_opened": "Beitrag geöffnet", "@post_opened": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_closed": "Beitrag geschlossen ", "@post_closed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_required_error": "Kommentar darf nicht leer sein.", "@comment_required_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_maxlength_error": "Ein Kommentar darf nicht länger als {maxLength} Zeichen lang sein.", "@comment_maxlength_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "timeline_posts_all_loaded": "🎉 Alle Beiträge geladen", "@timeline_posts_all_loaded": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "timeline_posts_refreshing_drhoo_title": "Halte durch!", + "timeline_posts_refreshing_drhoo_title": "Gleich geschafft!", "@timeline_posts_refreshing_drhoo_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "timeline_posts_refreshing_drhoo_subtitle": "Timeline wird geladen.", - "@timeline_posts_refreshing_drhoo_subtitle": { - "type": "text", - "placeholders": { - - } - }, - "timeline_posts_no_more_drhoo_title": "Deine Timeline ist leer.", - "@timeline_posts_no_more_drhoo_title": { - "type": "text", - "placeholders": { - - } - }, - "timeline_posts_no_more_drhoo_subtitle": "Folge Benutzern oder trete einer Community bei, um loszulegen!", + "timeline_posts_no_more_drhoo_subtitle": "Folge jemandem oder trete einer Community bei, um loszulegen!", "@timeline_posts_no_more_drhoo_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_failed_drhoo_title": "Deine Timeline konnte nicht geladen werden.", "@timeline_posts_failed_drhoo_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "timeline_posts_failed_drhoo_subtitle": "Versuche es in ein paar Sekunden erneut", + "timeline_posts_failed_drhoo_subtitle": "Versuche es in ein paar Sekunden noch einmal", "@timeline_posts_failed_drhoo_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_default_drhoo_title": "Irgendwas stimmt hier nicht.", "@timeline_posts_default_drhoo_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_default_drhoo_subtitle": "Versuche die Timeline zu aktualisieren.", "@timeline_posts_default_drhoo_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_refresh_posts": "Beiträge aktualisieren", "@timeline_posts_refresh_posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "no_circles_for": "'Keine Kreise mit '{circlesSearchQuery} ' gefunden.", + "no_circles_for": "Keine Kreise mit '{circlesSearchQuery}' gefunden.", "@no_circles_for": { "type": "text", "placeholders": { - "circlesSearchQuery": { - - } + "circlesSearchQuery": {} } }, - "share_to_circles": "In Kreisen teilen", + "share_to_circles": "Mit Kreisen teilen", "@share_to_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_post": " Beitrag", "@profile_counts_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_posts": " Beiträge", "@profile_counts_posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_followers": " Follower", "@profile_counts_followers": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_following": " Folge ich", "@profile_counts_following": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_follower": " Follower", "@profile_counts_follower": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "profile_retry_loading_posts": "Zum Wiederholen tippen", + "@profile_retry_loading_posts": { + "type": "text", + "placeholders": {} }, "action_comment": "Kommentar", "@action_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "action_react": "Reagieren", "@action_react": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "action_reply": "Antworten", "@action_reply": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share": "Teilen", "@share": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_to": "Teilen mit ", "@share_to": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "sharing_post_to": "Beitrag teilen mit", "@sharing_post_to": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_shared_with": "Geteilt mit", "@you_shared_with": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "shared_privately_on": "Privat geteilt mit", "@shared_privately_on": { "description": "Eg. Shared privately on @shantanu's circles. See following string, usernames_circles . Will combine this in future, needs refactoring.", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "usernames_circles": "@{postCreatorUsername}'s Kreise", "@usernames_circles": { "type": "text", "placeholders": { - "postCreatorUsername": { - - } + "postCreatorUsername": {} } }, "share_community": "Teilen", "@share_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_to_community": "Mit Community teilen", "@share_to_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_community_title": "Einer Community", "@share_community_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_community_desc": "Teile den Beitrag mit einer Community, der du angehörst.", "@share_community_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_circles": "Meinen Kreisen", "@my_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_circles_desc": "Teile den Beitrag mit einem oder mehreren deiner Kreise.", "@my_circles_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "world_circle_name": "Welt", "@world_circle_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "search_circles": "Kreise suchen...", "@search_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "reaction_list_tap_retry": "Tippe, um das Laden der Reaktionen zu wiederholen.", + "reaction_list_tap_retry": "Tippe, um Reaktionen neu zu laden.", "@reaction_list_tap_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_new": "Neuer Beitrag", "@create_new": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "create_new_post_label": "Neuen Beitrag erstellen", + "@create_new_post_label": { + "type": "text", + "placeholders": {} + }, + "create_new_community_post_label": "Neuen Community-Beitrag erstellen", + "@create_new_community_post_label": { + "type": "text", + "placeholders": {} + }, + "close_create_post_label": "Beitragserstellung abbrechen", + "@close_create_post_label": { + "type": "text", + "placeholders": {} }, "create_next": "Weiter", "@create_next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_photo": "Foto", "@create_photo": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "create_video": "Video", + "@create_video": { + "type": "text", + "placeholders": {} }, "commenter_post_text": "Teilen", "@commenter_post_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_write_something": "Schreibe etwas...", "@commenter_write_something": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_title": "Beitrag bearbeiten", "@edit_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_save": "Speichern", "@edit_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_expanded_save": "Speichern", "@commenter_expanded_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "commenter_expanded_join_conversation": "Einer Konversation beitreten..", + "commenter_expanded_join_conversation": "Beteilige dich an der Unterhaltung...", "@commenter_expanded_join_conversation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "commenter_expanded_start_conversation": "Beginne das Gespräch..", + "commenter_expanded_start_conversation": "Beginne eine Unterhaltung...", "@commenter_expanded_start_conversation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_expanded_edit_comment": "Kommentar bearbeiten", "@commenter_expanded_edit_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "is_closed": "Geschlossener Beitrag", "@is_closed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "comment_reply_expanded_reply_comment": "Kommentar beantworten", + "comment_reply_expanded_reply_comment": "Auf Kommentar antworten", "@comment_reply_expanded_reply_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_reply_expanded_post": "Teilen", "@comment_reply_expanded_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_reply_expanded_reply_hint_text": "Deine Antwort...", "@comment_reply_expanded_reply_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_posts_title": "Angesagte Beiträge", "@trending_posts_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "trending_posts_no_trending_posts": "Es gibt keine angesagten Beiträge. Versuche in ein paar Sekunden zu aktualisieren.", + "trending_posts_no_trending_posts": "Keine angesagten Beiträge gefunden. Versuche in ein paar Sekunden zu aktualisieren.", "@trending_posts_no_trending_posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_posts_refresh": "Aktualisieren", "@trending_posts_refresh": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_view_all_comments": "Alle {commentsCount} Kommentare anzeigen", "@comments_view_all_comments": { "type": "text", "placeholders": { - "commentsCount": { - - } + "commentsCount": {} } }, "comments_closed_post": "Geschlossener Beitrag", "@comments_closed_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_disabled": "Kommentare deaktiviert", "@comments_disabled": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "text_copied": "Text kopiert!", "@text_copied": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_reactions_title": "Reaktionen auf Beiträge", "@post_reactions_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "have_not_shared_anything": "Du hast noch nichts geteilt.", "@have_not_shared_anything": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "user_has_not_shared_anything": "{name} hat noch nichts geteilt.", "@user_has_not_shared_anything": { "type": "text", "placeholders": { - "name": { - - } + "name": {} } }, "comments_header_newest_replies": "Neueste Antworten", "@comments_header_newest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_newer": "Neuere", "@comments_header_newer": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_view_newest_replies": "Neueste Antworten anzeigen", "@comments_header_view_newest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_see_newest_replies": "Neueste Antworten anzeigen", "@comments_header_see_newest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_oldest_replies": "Älteste Antworten", "@comments_header_oldest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_older": "Älter", "@comments_header_older": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_view_oldest_replies": "Älteste Antworten anzeigen", "@comments_header_view_oldest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_see_oldest_replies": "Älteste Antworten anzeigen", "@comments_header_see_oldest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "comments_header_be_the_first_replies": "Sei der Erste, der antwortet", + "comments_header_be_the_first_replies": "Schreibe die erste Antwort", "@comments_header_be_the_first_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_newest_comments": "Neuste Kommentare", "@comments_header_newest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_view_newest_comments": "Neueste Kommentare anzeigen", "@comments_header_view_newest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_see_newest_comments": "Neueste Kommentare anzeigen", "@comments_header_see_newest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_oldest_comments": "Älteste Kommentare", "@comments_header_oldest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_view_oldest_comments": "Älteste Kommentare anzeigen", "@comments_header_view_oldest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_see_oldest_comments": "Älteste Kommentare anzeigen", "@comments_header_see_oldest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "comments_header_be_the_first_comments": "Sei der Erste, der kommentiert", + "comments_header_be_the_first_comments": "Schreibe den ersten Kommentar", "@comments_header_be_the_first_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_title": "Kommentare", "@comments_page_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_no_more_to_load": "Keine weiteren Kommentare zum Laden", "@comments_page_no_more_to_load": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_tap_to_retry": "Kommentare neu laden.", "@comments_page_tap_to_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_tap_to_retry_replies": "Antworten neu laden.", "@comments_page_tap_to_retry_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_no_more_replies_to_load": "Keine weiteren Antworten zum Laden", "@comments_page_no_more_replies_to_load": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_replies_title": "Antworten", "@comments_page_replies_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "disable_post_comments": "Kommentare für Beiträge deaktivieren", + "disable_post_comments": "Kommentare deaktivieren", "@disable_post_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "enable_post_comments": "Kommentare für Beiträge aktivieren", + "enable_post_comments": "Kommentare aktivieren", "@enable_post_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_enabled_message": "Kommentare für diesen Beitrag aktiviert", "@comments_enabled_message": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_disabled_message": "Kommentare für diesen Beitrag deaktiviert", "@comments_disabled_message": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_delete": "Beitrag löschen", "@actions_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_deleted": "Beitrag gelöscht", "@actions_deleted": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_delete_comment": "Kommentar löschen", "@actions_delete_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_edit_comment": "Kommentar bearbeiten", "@actions_edit_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_comment_deleted": "Kommentar gelöscht", "@actions_comment_deleted": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_report_text": "Melden", "@actions_report_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_reported_text": "Gemeldet", "@actions_reported_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_show_more_text": "Mehr anzeigen", "@actions_show_more_text": { "description": "Shown for posts with long text to expand the entire text.", "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "time_short_years": "J", + "time_short_years": "y", "@time_short_years": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 3y. Keep it as short as possible", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3y. Keep it as short as possible", "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "time_short_one_year": "1J", + "time_short_one_year": "1y", "@time_short_one_year": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "time_short_weeks": "Wo.", + "time_short_weeks": "w", "@time_short_weeks": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 5w.Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 5w.Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "time_short_one_week": "1Wo", + "time_short_one_week": "1w", "@time_short_one_week": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "time_short_days": "Tg", + "time_short_days": "d", "@time_short_days": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 3d. Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3d. Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "time_short_one_day": "1Tg", + "time_short_one_day": "1d", "@time_short_one_day": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "time_short_hours": "Std", + "time_short_hours": "h", "@time_short_hours": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 3h.Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3h.Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_hour": "1h", "@time_short_one_hour": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "time_short_minutes": "Min.", + "time_short_minutes": "min", "@time_short_minutes": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 13m.Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 13m.Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "time_short_seconds": "Sek", + "time_short_seconds": "s", "@time_short_seconds": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 13s Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 13s Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "time_short_one_minute": "1Min.", + "time_short_one_minute": "1min", "@time_short_one_minute": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_now_text": "jetzt", "@time_short_now_text": { "description": "Shown when a post was immediately posted, as in time posted is 'now'.Should be as few characters as possible.", "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/de/post_body_link_preview.arb b/assets/i18n/de/post_body_link_preview.arb new file mode 100644 index 000000000..72feba550 --- /dev/null +++ b/assets/i18n/de/post_body_link_preview.arb @@ -0,0 +1,14 @@ +{ + "empty": "Für diesen Link kann keine Vorschau erstellt werden", + "@empty": { + "type": "text", + "placeholders": {} + }, + "error_with_description": "Fehler beim Erstellen der Vorschau mit Websitefehler: {description}", + "@error_with_description": { + "type": "text", + "placeholders": { + "description": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/de/post_body_media.arb b/assets/i18n/de/post_body_media.arb new file mode 100644 index 000000000..b6e717fbf --- /dev/null +++ b/assets/i18n/de/post_body_media.arb @@ -0,0 +1,7 @@ +{ + "unsupported": "Nicht unterstützter Medientyp", + "@unsupported": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/de/post_uploader.arb b/assets/i18n/de/post_uploader.arb new file mode 100644 index 000000000..a54b0671e --- /dev/null +++ b/assets/i18n/de/post_uploader.arb @@ -0,0 +1,47 @@ +{ + "generic_upload_failed": "Hochladen fehlgeschlagen", + "@generic_upload_failed": { + "type": "text", + "placeholders": {} + }, + "creating_post": "Beitrag wird erstellt...", + "@creating_post": { + "type": "text", + "placeholders": {} + }, + "compressing_media": "Medien werden komprimiert...", + "@compressing_media": { + "type": "text", + "placeholders": {} + }, + "uploading_media": "Medien werden hochgeladen...", + "@uploading_media": { + "type": "text", + "placeholders": {} + }, + "publishing": "Beitrag wird veröffentlicht ...", + "@publishing": { + "type": "text", + "placeholders": {} + }, + "processing": "Beitrag wird verarbeitet...", + "@processing": { + "type": "text", + "placeholders": {} + }, + "success": "Erfolgreich!", + "@success": { + "type": "text", + "placeholders": {} + }, + "cancelling": "breche ab", + "@cancelling": { + "type": "text", + "placeholders": {} + }, + "cancelled": "Abgebrochen!", + "@cancelled": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/de/posts_stream.arb b/assets/i18n/de/posts_stream.arb new file mode 100644 index 000000000..192ea3c0f --- /dev/null +++ b/assets/i18n/de/posts_stream.arb @@ -0,0 +1,47 @@ +{ + "all_loaded": "🎉 Alle Beiträge geladen", + "@all_loaded": { + "type": "text", + "placeholders": {} + }, + "refreshing_drhoo_title": "Gleich geschafft!", + "@refreshing_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "refreshing_drhoo_subtitle": "Stream wird aktualisiert.", + "@refreshing_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "empty_drhoo_title": "Dieser Stream ist leer.", + "@empty_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "empty_drhoo_subtitle": "Versuche es in ein paar Sekunden noch einmal.", + "@empty_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "failed_drhoo_title": "Stream konnte nicht geladen werden.", + "@failed_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "failed_drhoo_subtitle": "Versuche es in ein paar Sekunden noch einmal", + "@failed_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "status_tile_empty": "Keine Beiträge gefunden", + "@status_tile_empty": { + "type": "text", + "placeholders": {} + }, + "status_tile_no_more_to_load": "🎉 Alle Beiträge geladen", + "@status_tile_no_more_to_load": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/de/user.arb b/assets/i18n/de/user.arb index aaf6dc2ad..b0c1af162 100644 --- a/assets/i18n/de/user.arb +++ b/assets/i18n/de/user.arb @@ -1,1347 +1,980 @@ { - "thousand_postfix": "Tsd", + "thousand_postfix": " Tsd.", "@thousand_postfix": { "description": "For eg. communty has 3k members", "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "million_postfix": "Mio", + "million_postfix": " Mio.", "@million_postfix": { "description": "For eg. user has 3m followers", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "billion_postfix": " Mrd.", "@billion_postfix": { "description": "For eg. World circle has 7.5b people", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "translate_see_translation": "Übersetzen", "@translate_see_translation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "translate_show_original": "Originaltext", "@translate_show_original": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_lists_account": "1 Account", "@follows_lists_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_lists_accounts": "{prettyUsersCount} Accounts", "@follows_lists_accounts": { "description": "prettyUsersCount will be 3m, 50k etc.. so we endup with final string 3k Accounts", "type": "text", "placeholders": { - "prettyUsersCount": { - - } + "prettyUsersCount": {} } }, "edit_profile_user_name_taken": "Benutzername @{username} ist bereits vergeben", "@edit_profile_user_name_taken": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "profile_action_deny_connection": "Verbindungsanfrage ablehnen", "@profile_action_deny_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_action_user_blocked": "Benutzer blockiert", "@profile_action_user_blocked": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "profile_action_user_unblocked": "Benutzer Blockierung aufgehoben", + "profile_action_user_unblocked": "Benutzer nicht mehr blockiert", "@profile_action_user_unblocked": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_action_cancel_connection": "Verbindungsanfrage abbrechen", "@profile_action_cancel_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_url_invalid_error": "Bitte verwende eine gültige URL.", "@profile_url_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_location_length_error": "Ort darf nicht länger als {maxLength} Zeichen lang sein.", "@profile_location_length_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "profile_bio_length_error": "'Über mich' darf nicht länger als {maxLength} Zeichen lang sein.", "@profile_bio_length_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "follow_button_follow_text": "Folgen", "@follow_button_follow_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_button_unfollow_text": "Entfolgen", "@follow_button_unfollow_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_username": "Benutzername", "@edit_profile_username": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_update_account_lists": "Benutzerlisten aktualisieren", "@add_account_update_account_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_to_lists": "Benutzer zur Liste hinzufügen", "@add_account_to_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_update_lists": "Listen aktualisieren", "@add_account_update_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_save": "Speichern", "@add_account_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "add_account_done": "Fertig", + "add_account_done": "Erledigt", "@add_account_done": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_success": "Erfolgreich", "@add_account_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "emoji_field_none_selected": "Kein Emoji ausgewählt", "@emoji_field_none_selected": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "emoji_search_none_found": "Kein Emoji mit {searchQuery} gefunden.", "@emoji_search_none_found": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "follow_lists_title": "Meine Listen", "@follow_lists_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_lists_search_for": "Suche nach Liste...", "@follow_lists_search_for": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_lists_no_list_found": "Keine Listen gefunden.", "@follow_lists_no_list_found": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_lists_no_list_found_for": "Keine Liste zu '{searchQuery}' gefunden", "@follow_lists_no_list_found_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "list_name_empty_error": "Die Listenname kann nicht leer sein.", "@list_name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "list_name_range_error": "Der Listenname darf nicht länger als {maxLength} Zeichen lang sein.", "@list_name_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "circle_name_empty_error": "Die Kreisname kann nicht leer sein.", "@circle_name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "circle_name_range_error": "Der Name des Kreises darf nicht länger als {maxLength} Zeichen lang sein.", "@circle_name_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "save_follows_list_name": "Name", "@save_follows_list_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_hint_text": "z.B. Reisen, Fotografie", "@save_follows_list_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_name_taken": "Name der Liste {listName} bereits vergeben", "@save_follows_list_name_taken": { "type": "text", "placeholders": { - "listName": { - - } + "listName": {} } }, "save_follows_list_emoji": "Emoji", "@save_follows_list_emoji": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_users": "Benutzer", "@save_follows_list_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_edit": "Liste bearbeiten", "@save_follows_list_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_create": "Liste erstellen", "@save_follows_list_create": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_save": "Speichern", "@save_follows_list_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_emoji_required_error": "Emoji ist erforderlich", "@save_follows_list_emoji_required_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_list_edit": "Bearbeiten", "@follows_list_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_list_header_title": "Benutzer", "@follows_list_header_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_name": "Name", "@edit_profile_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_url": "URL", "@edit_profile_url": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_location": "Ort", "@edit_profile_location": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_bio": "Über mich", "@edit_profile_bio": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_followers_count": "Anzahl der Follower", "@edit_profile_followers_count": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "edit_profile_community_posts": "Community-Beiträge", + "@edit_profile_community_posts": { + "type": "text", + "placeholders": {} }, "edit_profile_title": "Profil bearbeiten", "@edit_profile_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_save_text": "Speichern", "@edit_profile_save_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_pick_image": "Bild auswählen", "@edit_profile_pick_image": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_delete": "Löschen", "@edit_profile_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_pick_image_error_too_large": "Bild ist zu groß (Max: {limit} MB)", "@edit_profile_pick_image_error_too_large": { "type": "text", "placeholders": { - "limit": { - - } + "limit": {} } }, "tile_following": " · Folgt", "@tile_following": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "following_text": "Folge ich", "@following_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "following_resource_name": "Nutzer, denen ich folge", "@following_resource_name": { "description": "Eg: Search followed users.., No followed users found. etc ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "tile_delete": "Löschen", "@tile_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite": "Einladen", "@invite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "uninvite": "Einladung stornieren", "@uninvite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_member": "Mitglied", "@invite_member": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_someone_message": "Hey, ich möchte dich zu Okuna einladen. Erstens, lade die App auf iTunes ({iosLink}) oder im Play Store ({androidLink}) herunter. Zweitens, füge den personalisierten Einladungslink in das Formular \"Anmelden\" in der Okuna App ein: {inviteLink}", "@invite_someone_message": { "type": "text", "placeholders": { - "iosLink": { - - }, - "androidLink": { - - }, - "inviteLink": { - - } + "iosLink": {}, + "androidLink": {}, + "inviteLink": {} } }, "connections_header_circle_desc": "Der Kreis, bei dem alle deine Verbindungen hinzugefügt werden.", "@connections_header_circle_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connections_header_users": "Benutzer", "@connections_header_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connection_pending": "Ausstehend", "@connection_pending": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connection_circle_edit": "Bearbeiten", "@connection_circle_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connections_circle_delete": "Löschen", "@connections_circle_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_name": "Name", "@save_connection_circle_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_hint": "z.B. Freunde, Familie, Arbeit.", "@save_connection_circle_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_color_name": "Farbe", "@save_connection_circle_color_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_color_hint": "(Zum Ändern tippen)", "@save_connection_circle_color_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_users": "Benutzer", "@save_connection_circle_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_edit": "Kreis bearbeiten", "@save_connection_circle_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_create": "Kreis erstellen", "@save_connection_circle_create": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_save": "Speichern", "@save_connection_circle_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_connection_circle_save": "Speichern", "@update_connection_circle_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_connection_circle_updated": "Verbindung aktualisiert", "@update_connection_circle_updated": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "update_connection_circles_title": "Verbindungskreise aktualisieren", + "update_connection_circles_title": "Verbindungen ändern", "@update_connection_circles_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_connection_with": "Verbindung mit {userName} bestätigen", "@confirm_connection_with": { "type": "text", "placeholders": { - "userName": { - - } + "userName": {} } }, "confirm_connection_add_connection": "Verbindung zum Kreis hinzufügen", "@confirm_connection_add_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_connection_connection_confirmed": "Verbindung bestätigt", "@confirm_connection_connection_confirmed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_connection_confirm_text": "Bestätigen", "@confirm_connection_confirm_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connect_to_user_connect_with_username": "Mit {userName} verbinden", "@connect_to_user_connect_with_username": { "type": "text", "placeholders": { - "userName": { - - } + "userName": {} } }, "connect_to_user_add_connection": "Verbindung zum Kreis hinzufügen", "@connect_to_user_add_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "connect_to_user_done": "Fertig", + "connect_to_user_done": "Erledigt", "@connect_to_user_done": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connect_to_user_request_sent": "Verbindungsanfrage gesendet", "@connect_to_user_request_sent": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "remove_account_from_list": "Account aus Listen entfernen", "@remove_account_from_list": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "remove_account_from_list_success": "Erfolgreich", "@remove_account_from_list_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_title": "Bestätigen", "@confirm_block_user_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_info": "Ihr werdet gegenseitig keine Beiträge des anderen mehr sehen. Außerdem werdet ihr in keiner Weise mehr miteinander in Kontakt treten können.", "@confirm_block_user_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_yes": "Ja", "@confirm_block_user_yes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_no": "Nein", "@confirm_block_user_no": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_blocked": "Benutzer blockiert.", "@confirm_block_user_blocked": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_question": "Bist du dir sicher, dass du @{username} blockieren möchtest?", "@confirm_block_user_question": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "save_connection_circle_name_taken": "Kreisname '{takenConnectionsCircleName}' bereits vergeben", "@save_connection_circle_name_taken": { "type": "text", "placeholders": { - "takenConnectionsCircleName": { - - } + "takenConnectionsCircleName": {} } }, "timeline_filters_title": "Timeline-Filter", "@timeline_filters_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_search_desc": "Nach Kreisen und Listen suchen...", "@timeline_filters_search_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_clear_all": "Alle aufheben", "@timeline_filters_clear_all": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_apply_all": "Anwenden", "@timeline_filters_apply_all": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_circles": "Kreise", "@timeline_filters_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_lists": "Listen", "@timeline_filters_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "followers_title": "Follower", "@followers_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follower_singular": "Follower", "@follower_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follower_plural": "Follower", "@follower_plural": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_title": "Account Löschen", "@delete_account_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_current_pwd": "Aktuelles Passwort", "@delete_account_current_pwd": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_current_pwd_hint": "Gib dein aktuelles Passwort ein", "@delete_account_current_pwd_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_next": "Weiter", "@delete_account_next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_title": "Bestätigung", "@delete_account_confirmation_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_desc": "Bist du dir sicher, dass du deinen Account löschen willst?", "@delete_account_confirmation_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "delete_account_confirmation_desc_info": "Dies ist eine permanente Aktion und kann nicht rückgängig gemacht werden.", + "delete_account_confirmation_desc_info": "Dies ist endgültig und kann nicht rückgängig gemacht werden.", "@delete_account_confirmation_desc_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_no": "Nein", "@delete_account_confirmation_no": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_yes": "Ja", "@delete_account_confirmation_yes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_goodbye": "Wir werden dich vermissen 😢", "@delete_account_confirmation_goodbye": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_create_title": "Einladung erstellen", "@invites_create_create_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_edit_title": "Einladung bearbeiten", "@invites_create_edit_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_save": "Speichern", "@invites_create_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_create": "Erstellen", "@invites_create_create": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_name_title": "Nickname", "@invites_create_name_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_name_hint": "z.B. Fritz Fantom", "@invites_create_name_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_pending": "Ausstehend", "@invites_pending": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_delete": "Löschen", "@invites_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_invite_text": "Einladen", "@invites_invite_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_yourself": "Einladung selber teilen", "@invites_share_yourself": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_yourself_desc": "Wählen aus Nachrichten-Apps, etc.", "@invites_share_yourself_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_email": "Einladung per E-Mail teilen", "@invites_share_email": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_text": "E-Mail", "@invites_email_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_hint": "z.B. fritz_fantom@mail.de", "@invites_email_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_invite_text": "Einladung senden", "@invites_email_invite_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_send_text": "Senden", "@invites_email_send_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_sent_text": "Einladung gesendet", "@invites_email_sent_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_email_desc": "Wir werden eine E-Mail in deinem Namen senden", "@invites_share_email_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_edit_text": "Bearbeiten", "@invites_edit_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_title": "Meine Einladungen", "@invites_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_accepted_title": "Angenommen", "@invites_accepted_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_accepted_group_name": "angenommene Einladungen", "@invites_accepted_group_name": { "description": "Egs where this will end up: Accepted invites (capitalised title), Search accepted invites, See all accepted invites ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_accepted_group_item_name": "angenommene Einladung", "@invites_accepted_group_item_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_pending_group_name": "ausstehende Einladungen", "@invites_pending_group_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_pending_group_item_name": "ausstehende Einladung", "@invites_pending_group_item_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_none_used": "Sieht so aus als hättest du noch keine Einladung verwendet.", "@invites_none_used": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_none_left": "Du hast keine Einladungen verfügbar.", "@invites_none_left": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_invite_a_friend": "FreundIn einladen", "@invites_invite_a_friend": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_refresh": "Aktualisieren", "@invites_refresh": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "language_settings_title": "Spracheinstellungen", "@language_settings_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "language_settings_save": "Speichern", "@language_settings_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "language_settings_saved_success": "Sprache erfolgreich geändert", "@language_settings_saved_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "groups_see_all": "Alle {groupName} anzeigen", "@groups_see_all": { "description": "Can be, See all joined communities, See all pending invites, See all moderated communities etc. ", "type": "text", "placeholders": { - "groupName": { - - } + "groupName": {} } }, "invites_joined_with": "Mit dem Benutzernamen @{username} beigetreten", "@invites_joined_with": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "invites_pending_email": "Ausstehend, Einladung an {email} gesendet", "@invites_pending_email": { "type": "text", "placeholders": { - "email": { - - } + "email": {} } }, "timeline_filters_no_match": "Keine Ergebnisse für {searchQuery}.", "@timeline_filters_no_match": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "clear_application_cache_text": "Zwischenspeicher leeren", "@clear_application_cache_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_application_cache_desc": "Gespeicherte Beiträge, Accounts, Bilder & mehr.", "@clear_application_cache_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_application_cache_success": "Zwischenspeicher erfolgreich geleert", "@clear_application_cache_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_application_cache_failure": "Zwischenspeicher konnte nicht gelöscht werden", "@clear_application_cache_failure": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_title": "Richtlinien ablehnen", "@confirm_guidelines_reject_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_info": "Du kannst Okuna nicht benutzen, wenn du die Richtlinien nicht akzeptierst.", "@confirm_guidelines_reject_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_chat_with_team": "Chatte mit dem Team.", "@confirm_guidelines_reject_chat_with_team": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_chat_immediately": "Beginne einen Chat.", "@confirm_guidelines_reject_chat_immediately": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "confirm_guidelines_reject_chat_community": "Mit der Community chatten.", + "confirm_guidelines_reject_chat_community": "Chatte mit der Community.", "@confirm_guidelines_reject_chat_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_join_slack": "Trete Okuna auf Slack bei.", "@confirm_guidelines_reject_join_slack": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_go_back": "Zurück", "@confirm_guidelines_reject_go_back": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_delete_account": "Account Löschen", "@confirm_guidelines_reject_delete_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "guidelines_desc": "Bitte nimm dir einen Moment Zeit, um unsere Richtlinien zu lesen und zu akzeptieren.", "@guidelines_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "guidelines_accept": "Akzeptieren", "@guidelines_accept": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "guidelines_reject": "Ablehnen", "@guidelines_reject": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_title": "E-Mail ändern", "@change_email_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_email_text": "E-Mail", "@change_email_email_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_hint_text": "Gib deine neue E-Mail ein", "@change_email_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_error": "Diese E-Mail Adresse ist bereits registriert", "@change_email_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_save": "Speichern", "@change_email_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "change_email_success_info": "Wir haben einen Bestätigungslink an deine neue E-Mail-Adresse gesendet, klick auf ihn, um deine neue E-Mail zu bestätigen", + "change_email_success_info": "Wir haben einen Bestätigungslink an deine neue E-Mail-Adresse gesendet. Klick auf den Link, um deine neue E-Mail-Adresse zu bestätigen.", "@change_email_success_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_title": "Einstellungen löschen", "@clear_app_preferences_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "clear_app_preferences_desc": "Anwendungseinstellungen löschen. Momentan ist das nur die bevorzugte Reihenfolge der Kommentare.", + "clear_app_preferences_desc": "App-Einstellungen löschen. Momentan ist das nur die bevorzugte Reihenfolge der Kommentare.", "@clear_app_preferences_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "clear_app_preferences_cleared_successfully": "Einstellungen erfolgreich gelöscht", + "clear_app_preferences_cleared_successfully": "Einstellungen erfolgreich zurückgesetzt", "@clear_app_preferences_cleared_successfully": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "email_verification_successful": "Nice! Deine E-Mail wurde verifiziert", + "email_verification_successful": "Perfekt! Deine E-Mail-Adresse ist nun verifiziert", "@email_verification_successful": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "email_verification_error": "Hoppla! Dein Token ist ungültig oder abgelaufen, bitte versuche es erneut", "@email_verification_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_error": "Einstellungen konnten nicht gelöscht werden", "@clear_app_preferences_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "disconnect_from_user_success": "Erfolgreich getrennt", "@disconnect_from_user_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "block_user": "Benutzer blockieren", "@block_user": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "unblock_user": "Blockierung aufheben", "@unblock_user": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "disconnect_from_user": "Verbindung mit {userName} trennen", "@disconnect_from_user": { "type": "text", "placeholders": { - "userName": { - - } + "userName": {} } }, "circle_peoples_count": "{prettyUsersCount} Personen", "@circle_peoples_count": { "type": "text", "placeholders": { - "prettyUsersCount": { - - } + "prettyUsersCount": {} } }, "follows_list_accounts_count": "{prettyUsersCount} Accounts", "@follows_list_accounts_count": { "type": "text", "placeholders": { - "prettyUsersCount": { - - } + "prettyUsersCount": {} } } } \ No newline at end of file diff --git a/assets/i18n/de/user_search.arb b/assets/i18n/de/user_search.arb index 451453443..5cb554048 100644 --- a/assets/i18n/de/user_search.arb +++ b/assets/i18n/de/user_search.arb @@ -2,32 +2,24 @@ "search_text": "Suchen...", "@search_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities": "Communities", "@communities": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "users": "Benutzer", "@users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "list_search_text": "Suche {resourcePluralName} ...", "@list_search_text": { "description": "resourcePluralName can take many forms foreg. Search members... , Search accepted invites, Search communities.. etc.", "type": "text", "placeholders": { - "resourcePluralName": { - - } + "resourcePluralName": {} } }, "list_no_results_found": "Keine {resourcePluralName} gefunden.", @@ -35,66 +27,50 @@ "description": "Used in a generic list widget. Can be No users found. No communities found. No pending invites found. Its always a plural. ", "type": "text", "placeholders": { - "resourcePluralName": { - - } + "resourcePluralName": {} } }, "list_refresh_text": "Aktualisieren", "@list_refresh_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "list_retry": "Tippen zum Wiederholen.", + "list_retry": "Nochmal versuchen.", "@list_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "cancel": "Abbrechen", "@cancel": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "searching_for": "Suche nach {searchQuery}", "@searching_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "no_results_for": "Keine Suchergebnisse für '{searchQuery}'.", "@no_results_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "no_communities_for": "Keine Communities zu '{searchQuery}' gefunden.", "@no_communities_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "no_users_for": "Keine Benutzer für '{searchQuery}' gefunden.", "@no_users_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } } } \ No newline at end of file diff --git a/assets/i18n/de/video_picker.arb b/assets/i18n/de/video_picker.arb new file mode 100644 index 000000000..7c13b52c4 --- /dev/null +++ b/assets/i18n/de/video_picker.arb @@ -0,0 +1,12 @@ +{ + "from_gallery": "Aus der Galerie", + "@from_gallery": { + "type": "text", + "placeholders": {} + }, + "from_camera": "Von der Kamera", + "@from_camera": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/en/application_settings.arb b/assets/i18n/en/application_settings.arb new file mode 100644 index 000000000..ef740a23b --- /dev/null +++ b/assets/i18n/en/application_settings.arb @@ -0,0 +1,82 @@ +{ + "videos": "Videos", + "@videos": { + "type": "text", + "placeholders": {} + }, + "link_previews": "Link previews", + "@link_previews": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay": "Autoplay", + "@videos_autoplay": { + "type": "text", + "placeholders": {} + }, + "link_previews_show": "Show", + "@link_previews_show": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_always": "Always", + "@videos_autoplay_always": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_wifi_only": "Wifi only", + "@videos_autoplay_wifi_only": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_never": "Never", + "@videos_autoplay_never": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_always": "Always", + "@link_previews_autoplay_always": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_wifi_only": "Wifi only", + "@link_previews_autoplay_wifi_only": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_never": "Never", + "@link_previews_autoplay_never": { + "type": "text", + "placeholders": {} + }, + "videos_sound": "Sound", + "@videos_sound": { + "type": "text", + "placeholders": {} + }, + "tap_to_change": "(Tap to change)", + "@tap_to_change": { + "type": "text", + "placeholders": {} + }, + "videos_sound_enabled": "Enabled", + "@videos_sound_enabled": { + "type": "text", + "placeholders": {} + }, + "videos_sound_disabled": "Disabled", + "@videos_sound_disabled": { + "type": "text", + "placeholders": {} + }, + "comment_sort_newest_first": "Newest first", + "@comment_sort_newest_first": { + "type": "text", + "placeholders": {} + }, + "comment_sort_oldest_first": "Oldest first", + "@comment_sort_oldest_first": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/en/community.arb b/assets/i18n/en/community.arb index 6e9610b07..b283c2285 100644 --- a/assets/i18n/en/community.arb +++ b/assets/i18n/en/community.arb @@ -59,6 +59,11 @@ "type": "text", "placeholders": {} }, + "retry_loading_posts": "Tap to retry", + "@retry_loading_posts": { + "type": "text", + "placeholders": {} + }, "admin_add_confirmation": "Are you sure you want to add @{username} as a community administrator?", "@admin_add_confirmation": { "type": "text", diff --git a/assets/i18n/en/drawer.arb b/assets/i18n/en/drawer.arb index f979ea9b5..810709462 100644 --- a/assets/i18n/en/drawer.arb +++ b/assets/i18n/en/drawer.arb @@ -89,6 +89,11 @@ "type": "text", "placeholders": {} }, + "developer_settings": "Developer Settings", + "@developer_settings": { + "type": "text", + "placeholders": {} + }, "account_settings_change_email": "Change Email", "@account_settings_change_email": { "type": "text", diff --git a/assets/i18n/en/error.arb b/assets/i18n/en/error.arb index 243600ff0..742dd9ddf 100644 --- a/assets/i18n/en/error.arb +++ b/assets/i18n/en/error.arb @@ -4,6 +4,26 @@ "type": "text", "placeholders": {} }, + "receive_share_temp_write_failed": "Failed to copy shared file to temporary location", + "@receive_share_temp_write_failed": { + "type": "text", + "placeholders": {} + }, + "receive_share_temp_write_denied": "Denied permission to copy shared file to temporary location", + "@receive_share_temp_write_denied": { + "type": "text", + "placeholders": {} + }, + "receive_share_invalid_uri_scheme": "Failed to receive share", + "@receive_share_invalid_uri_scheme": { + "type": "text", + "placeholders": {} + }, + "receive_share_file_not_found": "Shared file could not be found", + "@receive_share_file_not_found": { + "type": "text", + "placeholders": {} + }, "no_internet_connection": "No internet connection", "@no_internet_connection": { "type": "text", diff --git a/assets/i18n/en/image_picker.arb b/assets/i18n/en/image_picker.arb new file mode 100644 index 000000000..2cfa93196 --- /dev/null +++ b/assets/i18n/en/image_picker.arb @@ -0,0 +1,19 @@ +{ + "from_gallery": "From gallery", + "@from_gallery": { + "type": "text", + "placeholders": {} + }, + "from_camera": "From camera", + "@from_camera": { + "type": "text", + "placeholders": {} + }, + "error_too_large": "File too large (limit: {limit} MB)", + "@error_too_large": { + "type": "text", + "placeholders": { + "limit": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/en/notifications.arb b/assets/i18n/en/notifications.arb index 32ada6b5d..ac2c83d49 100644 --- a/assets/i18n/en/notifications.arb +++ b/assets/i18n/en/notifications.arb @@ -1,4 +1,14 @@ { + "tab_general": "General", + "@tab_general": { + "type": "text", + "placeholders": {} + }, + "tab_requests": "Requests", + "@tab_requests": { + "type": "text", + "placeholders": {} + }, "settings_title": "Notifications settings", "@settings_title": { "type": "text", diff --git a/assets/i18n/en/post.arb b/assets/i18n/en/post.arb index 249209c20..4ac3d0499 100644 --- a/assets/i18n/en/post.arb +++ b/assets/i18n/en/post.arb @@ -41,16 +41,6 @@ "type": "text", "placeholders": {} }, - "timeline_posts_refreshing_drhoo_subtitle": "Loading your timeline.", - "@timeline_posts_refreshing_drhoo_subtitle": { - "type": "text", - "placeholders": {} - }, - "timeline_posts_no_more_drhoo_title": "Your timeline is empty.", - "@timeline_posts_no_more_drhoo_title": { - "type": "text", - "placeholders": {} - }, "timeline_posts_no_more_drhoo_subtitle": "Follow users or join a community to get started!", "@timeline_posts_no_more_drhoo_subtitle": { "type": "text", @@ -118,6 +108,11 @@ "type": "text", "placeholders": {} }, + "profile_retry_loading_posts": "Tap to retry", + "@profile_retry_loading_posts": { + "type": "text", + "placeholders": {} + }, "action_comment": "Comment", "@action_comment": { "type": "text", @@ -216,6 +211,21 @@ "type": "text", "placeholders": {} }, + "create_new_post_label": "Create new post", + "@create_new_post_label": { + "type": "text", + "placeholders": {} + }, + "create_new_community_post_label": "Create new communtiy post", + "@create_new_community_post_label": { + "type": "text", + "placeholders": {} + }, + "close_create_post_label": "Close create new post", + "@close_create_post_label": { + "type": "text", + "placeholders": {} + }, "create_next": "Next", "@create_next": { "type": "text", @@ -226,6 +236,11 @@ "type": "text", "placeholders": {} }, + "create_video": "Video", + "@create_video": { + "type": "text", + "placeholders": {} + }, "commenter_post_text": "Post", "@commenter_post_text": { "type": "text", diff --git a/assets/i18n/en/post_body_link_preview.arb b/assets/i18n/en/post_body_link_preview.arb new file mode 100644 index 000000000..8fc00e9bc --- /dev/null +++ b/assets/i18n/en/post_body_link_preview.arb @@ -0,0 +1,14 @@ +{ + "empty": "This link could not be previewed", + "@empty": { + "type": "text", + "placeholders": {} + }, + "error_with_description": "Failed to preview link with website error: {description}", + "@error_with_description": { + "type": "text", + "placeholders": { + "description": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/en/post_body_media.arb b/assets/i18n/en/post_body_media.arb new file mode 100644 index 000000000..fc41df1e9 --- /dev/null +++ b/assets/i18n/en/post_body_media.arb @@ -0,0 +1,7 @@ +{ + "unsupported": "Unsupported media type", + "@unsupported": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/en/post_uploader.arb b/assets/i18n/en/post_uploader.arb new file mode 100644 index 000000000..06319e578 --- /dev/null +++ b/assets/i18n/en/post_uploader.arb @@ -0,0 +1,47 @@ +{ + "generic_upload_failed": "Upload failed", + "@generic_upload_failed": { + "type": "text", + "placeholders": {} + }, + "creating_post": "Creating post...", + "@creating_post": { + "type": "text", + "placeholders": {} + }, + "compressing_media": "Compressing media...", + "@compressing_media": { + "type": "text", + "placeholders": {} + }, + "uploading_media": "Uploading media...", + "@uploading_media": { + "type": "text", + "placeholders": {} + }, + "publishing": "Publishing post...", + "@publishing": { + "type": "text", + "placeholders": {} + }, + "processing": "Processing post...", + "@processing": { + "type": "text", + "placeholders": {} + }, + "success": "Success!", + "@success": { + "type": "text", + "placeholders": {} + }, + "cancelling": "Cancelling", + "@cancelling": { + "type": "text", + "placeholders": {} + }, + "cancelled": "Cancelled!", + "@cancelled": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/en/posts_stream.arb b/assets/i18n/en/posts_stream.arb new file mode 100644 index 000000000..68de3e898 --- /dev/null +++ b/assets/i18n/en/posts_stream.arb @@ -0,0 +1,47 @@ +{ + "all_loaded": "🎉 All posts loaded", + "@all_loaded": { + "type": "text", + "placeholders": {} + }, + "refreshing_drhoo_title": "Hang in there!", + "@refreshing_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "refreshing_drhoo_subtitle": "Refreshing the stream.", + "@refreshing_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "empty_drhoo_title": "This stream is empty.", + "@empty_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "empty_drhoo_subtitle": "Try refreshing in a couple of seconds.", + "@empty_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "failed_drhoo_title": "Could not load the stream.", + "@failed_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "failed_drhoo_subtitle": "Try again in a couple seconds", + "@failed_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "status_tile_empty": "No posts found", + "@status_tile_empty": { + "type": "text", + "placeholders": {} + }, + "status_tile_no_more_to_load": "🎉 All posts loaded", + "@status_tile_no_more_to_load": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/en/user.arb b/assets/i18n/en/user.arb index 89babb342..be929465d 100644 --- a/assets/i18n/en/user.arb +++ b/assets/i18n/en/user.arb @@ -271,6 +271,11 @@ "type": "text", "placeholders": {} }, + "edit_profile_community_posts": "Community posts", + "@edit_profile_community_posts": { + "type": "text", + "placeholders": {} + }, "edit_profile_title": "Edit profile", "@edit_profile_title": { "type": "text", diff --git a/assets/i18n/en/video_picker.arb b/assets/i18n/en/video_picker.arb new file mode 100644 index 000000000..91e586153 --- /dev/null +++ b/assets/i18n/en/video_picker.arb @@ -0,0 +1,12 @@ +{ + "from_gallery": "From gallery", + "@from_gallery": { + "type": "text", + "placeholders": {} + }, + "from_camera": "From camera", + "@from_camera": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/es-ES/application_settings.arb b/assets/i18n/es-ES/application_settings.arb new file mode 100644 index 000000000..93c82fb1d --- /dev/null +++ b/assets/i18n/es-ES/application_settings.arb @@ -0,0 +1,82 @@ +{ + "videos": "Videos", + "@videos": { + "type": "text", + "placeholders": {} + }, + "link_previews": "Vista previa del enlace", + "@link_previews": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay": "Reproducción automática", + "@videos_autoplay": { + "type": "text", + "placeholders": {} + }, + "link_previews_show": "Mostrar", + "@link_previews_show": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_always": "Siempre", + "@videos_autoplay_always": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_wifi_only": "Solo Wi-Fi", + "@videos_autoplay_wifi_only": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_never": "Nunca", + "@videos_autoplay_never": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_always": "Siempre", + "@link_previews_autoplay_always": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_wifi_only": "Solo Wi-Fi", + "@link_previews_autoplay_wifi_only": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_never": "Nunca", + "@link_previews_autoplay_never": { + "type": "text", + "placeholders": {} + }, + "videos_sound": "Sonido", + "@videos_sound": { + "type": "text", + "placeholders": {} + }, + "tap_to_change": "(Toca para cambiar)", + "@tap_to_change": { + "type": "text", + "placeholders": {} + }, + "videos_sound_enabled": "Activado", + "@videos_sound_enabled": { + "type": "text", + "placeholders": {} + }, + "videos_sound_disabled": "Desactivado", + "@videos_sound_disabled": { + "type": "text", + "placeholders": {} + }, + "comment_sort_newest_first": "Más reciente primero", + "@comment_sort_newest_first": { + "type": "text", + "placeholders": {} + }, + "comment_sort_oldest_first": "Más antiguo primero", + "@comment_sort_oldest_first": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/es-ES/auth.arb b/assets/i18n/es-ES/auth.arb index fe0a2c123..769228d18 100644 --- a/assets/i18n/es-ES/auth.arb +++ b/assets/i18n/es-ES/auth.arb @@ -2,744 +2,530 @@ "headline": "🕊 Una red social mejor.", "@headline": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login": "Entrar", "@login": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "email_empty_error": "Correo electrónico no puede estar vacío.", "@email_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "email_invalid_error": "Ingresa un email válido.", "@email_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "username_empty_error": "El nombre de usuario no puede estar vacío.", "@username_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "username_characters_error": "Un nombre de usuario sólo puede contener caracteres alfanuméricos y guiones bajos.", "@username_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "username_maxlength_error": "El nombre de usuario no puede tener más de {maxLength} caracteres.", "@username_maxlength_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "create_account": "Registro", "@create_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__lets_get_started": "¡Empecemos!", "@create_acc__lets_get_started": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__welcome_to_beta": "¡Bienvenido a la Beta!", "@create_acc__welcome_to_beta": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__previous": "Atrás", "@create_acc__previous": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__next": "Siguiente", "@create_acc__next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__create_account": "Crear cuenta", "@create_acc__create_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__paste_link": "Pega el enlace de registro a continuación", "@create_acc__paste_link": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__paste_password_reset_link": "Pega el enlace de restablecimiento de contraseña a continuación", "@create_acc__paste_password_reset_link": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__paste_link_help_text": "Utiliza el link en tu correo de invitación a Okuna.", "@create_acc__paste_link_help_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__link_empty_error": "La dirección no puede estar vacía.", "@create_acc__link_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__link_invalid_error": "Este enlace parece ser inválido.", "@create_acc__link_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "password_empty_error": "La contraseña no puede estar vacía.", "@password_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "password_range_error": "La contraseña debe tener entre {minLength} y {maxLength} caracteres.", "@password_range_error": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, "name_empty_error": "El nombre no puede estar vacío.", "@name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "name_range_error": "El nombre debe tener entre {minLength} y {maxLength} caracteres.", "@name_range_error": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, "description_empty_error": "La descripción no puede estar vacía.", "@description_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "description_range_error": "La descripción debe tener entre {minLength} y {maxLength} caracteres.", "@description_range_error": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, "reset_password_success_title": "¡Todo Listo!", "@reset_password_success_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reset_password_success_info": "Su contraseña ha sido actualizada correctamente", "@reset_password_success_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__request_invite": "¿No tienes invitación? Solicita una aquí.", "@create_acc__request_invite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__subscribe": "Solicitar", "@create_acc__subscribe": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__subscribe_to_waitlist_text": "¡Solicitar una invitación!", "@create_acc__subscribe_to_waitlist_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__congratulations": "¡Felicidades!", "@create_acc__congratulations": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__your_subscribed": "Eres el número {0} en la lista de espera.", "@create_acc__your_subscribed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__almost_there": "¡Ya casi!", "@create_acc__almost_there": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_name": "Como te llamas?", "@create_acc__what_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__name_placeholder": "Luis Miguel", "@create_acc__name_placeholder": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__name_empty_error": "😱 Tu nombre no puede estar vacío.", "@create_acc__name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__name_length_error": "😱 Tu nombre no puede tener más de 50 caracteres. (Si es así, lo sentimos)", "@create_acc__name_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__name_characters_error": "😅 Un nombre sólo puede contener caracteres alfanuméricos (por ahora).", "@create_acc__name_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_username": "Que usuario te gustaria tener?", "@create_acc__what_username": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_placeholder": "juanga", "@create_acc__username_placeholder": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_empty_error": "😱 El nombre de usuario no puede estar vacío.", "@create_acc__username_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_length_error": "😅 Un nombre de usuario no puede tener más de 30 caracteres.", "@create_acc__username_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_characters_error": "😅 Un nombre de usuario sólo puede contener caracteres alfanuméricos y guiones bajos.", "@create_acc__username_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_taken_error": "😩 El nombre de usuario @%s ya está tomado.", "@create_acc__username_taken_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_server_error": "😭 Estamos experimentando problemas con nuestros servidores, por favor inténtalo de nuevo en un par de minutos.", "@create_acc__username_server_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_email": "¿Cuál es tu correo electrónico?", "@create_acc__what_email": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_placeholder": "marc_anthony@salsa.com", "@create_acc__email_placeholder": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_empty_error": "😱 Tu correo electrónico no puede estar vacío", "@create_acc__email_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_invalid_error": "😅 Por favor, proporcione una dirección de correo electrónico válida.", "@create_acc__email_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_taken_error": "🤔 Una cuenta ya existe para ese correo electrónico.", "@create_acc__email_taken_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_server_error": "😭 Estamos experimentando problemas con nuestros servidores, por favor inténtalo de nuevo en un par de minutos.", "@create_acc__email_server_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_password": "Elige una contraseña", "@create_acc__what_password": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc_password_hint_text": "({minLength}-{maxLength} caracteres)", "@create_acc_password_hint_text": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, "create_acc__what_password_subtext": "(min 10 caracteres)", "@create_acc__what_password_subtext": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__password_empty_error": "😱 La contraseña no puede estar vacía", "@create_acc__password_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__password_length_error": "😅 La contraseña debe tener entre 8 y 64 caracteres.", "@create_acc__password_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_avatar": "Sube una foto de perfil", "@create_acc__what_avatar": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_tap_to_change": "Tocar para cambiar", "@create_acc__avatar_tap_to_change": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_choose_camera": "Toma una foto", "@create_acc__avatar_choose_camera": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_choose_gallery": "Usar una foto existente", "@create_acc__avatar_choose_gallery": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_remove_photo": "Eliminar foto", "@create_acc__avatar_remove_photo": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done": "Crear cuenta", "@create_acc__done": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_subtext": "Puedes cambiar esto en cualquier momento en la configuración de tu perfil.", "@create_acc__done_subtext": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_created": "Tu cuenta ha sido creada con el nombre de usuario ", "@create_acc__done_created": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_loading_title": "¡Ya casi!", "@create_acc__submit_loading_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_loading_desc": "Estamos creando tu cuenta.", "@create_acc__submit_loading_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_error_title": "Oh no...", "@create_acc__submit_error_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_error_desc_server": "😭 Estamos experimentando problemas con nuestros servidores, por favor inténtalo de nuevo en un par de minutos.", "@create_acc__submit_error_desc_server": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_error_desc_validation": "😅 Parece que algunos de los datos no son correctos, por favor comprueba e intenta de nuevo.", "@create_acc__submit_error_desc_validation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_title": "¡Wohoo!", "@create_acc__done_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_description": "Tu cuenta ha sido creada.", "@create_acc__done_description": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__your_username_is": "Tu nombre de usuario es ", "@create_acc__your_username_is": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__can_change_username": "Puedes cambiarlo en cualquier momento en la configuración de tu perfil.", "@create_acc__can_change_username": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_continue": "Entrar", "@create_acc__done_continue": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__one_last_thing": "Una última cosa...", "@create_acc__one_last_thing": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__register": "Registro", "@create_acc__register": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__are_you_legal_age": "¿Tienes más de 16 años?", "@create_acc__are_you_legal_age": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__login": "Continuar", "@login__login": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__previous": "Anterior", "@login__previous": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__title": "¡Bienvenido de nuevo!", "@login__title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__subtitle": "Introduce tus credenciales para continuar.", "@login__subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__forgot_password": "Olvidé mi contraseña", "@login__forgot_password": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__forgot_password_subtitle": "Introduce tu nombre de usuario o email", "@login__forgot_password_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_label": "Usuario", "@login__username_label": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__password_label": "Contraseña", "@login__password_label": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__email_label": "Correo electrónico", "@login__email_label": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__or_text": "O", "@login__or_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__password_empty_error": "La contraseña es requerida.", "@login__password_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__password_length_error": "La contraseña debe tener entre 8 y 64 caracteres.", "@login__password_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_empty_error": "El nombre de usuario es requerido.", "@login__username_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_length_error": "El nombre de usuario no puede tener más de 30 caracteres.", "@login__username_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_characters_error": "El nombre de usuario sólo puede contener caracteres alfanuméricos y guiones bajos.", "@login__username_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__credentials_mismatch_error": "Las credenciales proporcionadas no coinciden.", "@login__credentials_mismatch_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__server_error": "Uh oh.. Estamos experimentando problemas del servidor. Por favor, inténtalo de nuevo en unos minutos.", "@login__server_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__connection_error": "No podemos llegar a nuestros servidores. ¿Estás conectado a Internet?", "@login__connection_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_title": "Cambiar contraseña", "@change_password_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_current_pwd": "Contraseña actual", "@change_password_current_pwd": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_current_pwd_hint": "Introduce tu contraseña actual", "@change_password_current_pwd_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_current_pwd_incorrect": "La contraseña introducida fue incorrecta", "@change_password_current_pwd_incorrect": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_new_pwd": "Nueva contraseña", "@change_password_new_pwd": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_new_pwd_hint": "Introduzca su nueva contraseña", "@change_password_new_pwd_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_new_pwd_error": "Por favor, asegúrate de que la contraseña tenga entre 10 y 100 caracteres", "@change_password_new_pwd_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_save_text": "Guardar", "@change_password_save_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_save_success": "¡Todo bien! Tu contraseña ha sido actualizada", "@change_password_save_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/es-ES/community.arb b/assets/i18n/es-ES/community.arb index 637a29d0c..3a3dc1eea 100644 --- a/assets/i18n/es-ES/community.arb +++ b/assets/i18n/es-ES/community.arb @@ -2,475 +2,348 @@ "no": "No", "@no": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "yes": "Si", "@yes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "button_staff": "Equipo", "@button_staff": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "button_rules": "Reglas", "@button_rules": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community": "comunidad", "@community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities": "comunidades", "@communities": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "type_public": "Pública", "@type_public": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "type_private": "Privada", "@type_private": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "member_capitalized": "Miembro", "@member_capitalized": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "members_capitalized": "Miembros", "@members_capitalized": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "admin_desc": "Esto permitirá al miembro editar los detalles de la comunidad, administradores, moderadores y usuarios baneados.", "@admin_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirmation_title": "Confirmación", "@confirmation_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "retry_loading_posts": "Toca para reintentar", + "@retry_loading_posts": { + "type": "text", + "placeholders": {} }, "admin_add_confirmation": "¿Seguro que quieres añadir @{username} como administrador de la comunidad?", "@admin_add_confirmation": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "ban_confirmation": "¿Seguro que quieres banear a @{username}?", "@ban_confirmation": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "ban_desc": "Esto removera al usuario de la comunidad y no le permitirá volver a unirse.", "@ban_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderator_add_confirmation": "¿Seguro que quieres añadir a @{username} como administrador de la comunidad?", "@moderator_add_confirmation": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "moderator_desc": "Esto permitirá al miembro editar los detalles de la comunidad, administradores, moderadores y usuarios baneados.", "@moderator_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderators_you": "Tú", "@moderators_you": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderators_title": "Moderadores", "@moderators_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "leave_desc": "No verás sus posts en tus líneas de tiempo ni podrás publicar a la comunidad.", "@leave_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "leave_confirmation": "¿Está seguro de que deseas abandonar la comunidad?", "@leave_confirmation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderator_resource_name": "moderador", "@moderator_resource_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderators_resource_name": "moderadores", "@moderators_resource_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_moderator_title": "Añadir moderador", "@add_moderator_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_confirmation": "¿Estás seguro de que deseas eliminar la comunidad?", "@delete_confirmation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_desc": "No verás sus posts en tus líneas de tiempo ni podrás publicar a la comunidad.", "@delete_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_manage_text": "Gestionar", "@actions_manage_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_title": "Gestionar comunidad", "@manage_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_details_title": "Detalles", "@manage_details_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_details_desc": "Cambia el título, nombre, avatar, foto de portada y más.", "@manage_details_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_admins_title": "Administradores", "@manage_admins_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_admins_desc": "Ver, añadir y eliminar administradores.", "@manage_admins_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_mods_title": "Moderadores", "@manage_mods_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_mods_desc": "Ver, añadir y eliminar administradores.", "@manage_mods_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_banned_title": "Usuarios baneados", "@manage_banned_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_banned_desc": "Ver, añadir y eliminar usuarios baneados.", "@manage_banned_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_mod_reports_title": "Reportes de moderación", "@manage_mod_reports_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_mod_reports_desc": "Revisa los reportes de moderación de la comunidad.", "@manage_mod_reports_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_closed_posts_title": "Posts cerrados", "@manage_closed_posts_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_closed_posts_desc": "Ver y administrar posts cerrados", "@manage_closed_posts_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_invite_title": "Invitar a personas", "@manage_invite_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_invite_desc": "Invita a tus conexiones y seguidores a unirse a la comunidad.", "@manage_invite_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_delete_title": "Eliminar comunidad", "@manage_delete_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_delete_desc": "Eliminar la comunidad, para siempre.", "@manage_delete_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_leave_title": "Dejar comunidad", "@manage_leave_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_leave_desc": "Dejar la comunidad.", "@manage_leave_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_add_favourite": "Añadir la comunidad a tus favoritos", "@manage_add_favourite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_remove_favourite": "Remover la comunidad a tus favoritos", "@manage_remove_favourite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "is_private": "Esta comunidad es privada.", "@is_private": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invited_by_member": "Debes ser invitado por un miembro.", "@invited_by_member": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invited_by_moderator": "Debes ser invitado por un moderador.", "@invited_by_moderator": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "refreshing": "Refrescando comunidad", "@refreshing": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "posts": "Posts", "@posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "about": "Acerca de", "@about": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "category": "categoría.", "@category": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "categories": "categorías.", "@categories": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_administrators_title": "Añadir administrador.", "@add_administrators_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_members": "Miembros de la comunidad", "@community_members": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "member": "miembro", "@member": { "description": "Currently not used in app, reserved for potential use. Could be used as: Showing 1 member", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "member_plural": "miembros", "@member_plural": { "description": "See all members ,Search all members", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrators_title": "Administradores", "@administrators_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrator_text": "administrador", "@administrator_text": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 administrator", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrator_plural": "administradores", "@administrator_plural": { "description": "Egs. Search administrators, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrator_you": "Tú", "@administrator_you": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "user_you_text": "Tú", "@user_you_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "pick_upto_max": "Escoge hasta {max} categorías", "@pick_upto_max": { "type": "text", "placeholders": { - "max": { - - } + "max": {} } }, "pick_atleast_min_category": "Debes elegir al menos {min} categoría.", @@ -478,9 +351,7 @@ "description": "You must pick at least 1 category", "type": "text", "placeholders": { - "min": { - - } + "min": {} } }, "pick_atleast_min_categories": "Debes elegir al menos {min} categorías.", @@ -488,530 +359,386 @@ "description": "Eg. Variable min will be 3-5. You must pick at least (3-5) categories", "type": "text", "placeholders": { - "min": { - - } + "min": {} } }, "ban_user_title": "Banear usuario", "@ban_user_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "banned_users_title": "Usuarios baneados", "@banned_users_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "banned_user_text": "usuario baneado", "@banned_user_text": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 banned user", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "banned_users_text": "usuarios baneados", "@banned_users_text": { "description": "Egs. Search banned users, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorites_title": "Favoritas", "@favorites_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorite_community": "favorizar comunidad", "@favorite_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 favorite community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorite_communities": "comunidades favoritas", "@favorite_communities": { "description": "Egs. Search favorite communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrated_title": "Administradas", "@administrated_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrated_community": "comunidad administrada", "@administrated_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 administrated community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrated_communities": "comunidades administradas", "@administrated_communities": { "description": "Egs. Search administrated communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_title": "Moderadas", "@moderated_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_community": "comunidad moderada", "@moderated_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 moderated community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_communities": "comunidades moderadas", "@moderated_communities": { "description": "Egs. Search moderated communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "joined_title": "Parte de", "@joined_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "joined_community": "comunidad parte de", "@joined_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 joined community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "joined_communities": "comunidades parte de", "@joined_communities": { "description": "Egs. Search joined communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "join_communities_desc": "¡Únete a comunidades para llenar esta pestaña!", "@join_communities_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "refresh_text": "Refrescar", "@refresh_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_none_found": "No se encontraron comunidades trending. Inténtalo de nuevo en unos minutos.", "@trending_none_found": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_refresh": "Refrescar", "@trending_refresh": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_in_all": "Trending en todas las categorías", "@trending_in_all": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_in_category": "Trending en {categoryName}", "@trending_in_category": { "type": "text", "placeholders": { - "categoryName": { - - } + "categoryName": {} } }, "communities_title": "Comunidades", "@communities_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities_no_category_found": "No se encontraron categorías. Por favor, inténtalo de nuevo en unos minutos.", "@communities_no_category_found": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities_refresh_text": "Refrescar", "@communities_refresh_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities_all_text": "Todo", "@communities_all_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_to_community_title": "Invitar a la comunidad", "@invite_to_community_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_to_community_resource_singular": "conexión o seguidor", "@invite_to_community_resource_singular": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 connection or follower", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_to_community_resource_plural": "conexiones y seguidores", "@invite_to_community_resource_plural": { "description": "Egs. Search connections and followers, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorite_action": "Favorizar comunidad", "@favorite_action": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "unfavorite_action": "Desfavorizar comunidad", "@unfavorite_action": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_label_title": "Título", "@save_community_label_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_label_title_hint_text": "por ejemplo, Viajes, Fotografía, Gaming.", "@save_community_label_title_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_title": "Nombre", "@save_community_name_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_title_hint_text": " por ejemplo, viajes, fotografía, juegos.", "@save_community_name_title_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_taken": "El nombre '{takenName}' esta tomado", "@save_community_name_taken": { "type": "text", "placeholders": { - "takenName": { - - } + "takenName": {} } }, "save_community_name_label_color": "Color", "@save_community_name_label_color": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_color_hint_text": "(Tocar para cambiar)", "@save_community_name_label_color_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_type": "Tipo", "@save_community_name_label_type": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_type_hint_text": "(Tocar para cambiar)", "@save_community_name_label_type_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_member_invites": "Invitaciones de miembros", "@save_community_name_member_invites": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_member_invites_subtitle": "Los miembros pueden invitar a gente a la comunidad", "@save_community_name_member_invites_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_category": "Categoría", "@save_community_name_category": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_desc_optional": "Descripción · Opcional", "@save_community_name_label_desc_optional": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_desc_optional_hint_text": "¿De qué trata tu comunidad?", "@save_community_name_label_desc_optional_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_rules_optional": "Reglas · Opcional", "@save_community_name_label_rules_optional": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_rules_optional_hint_text": "¿Hay algo que te gustaría que tus miembros sepan?", "@save_community_name_label_rules_optional_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_member_adjective": "Adjetivo de miembro · Opcional", "@save_community_name_label_member_adjective": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_member_adjective_hint_text": "por ejemplo, viajero, fotógrafo, jugador.", "@save_community_name_label_member_adjective_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_members_adjective": "Adjetivo de miembros · Opcional", "@save_community_name_label_members_adjective": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_members_adjective_hint_text": "por ejemplo, viajeros, fotógrafos, jugadores.", "@save_community_name_label_members_adjective_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_edit_community": "Editar comunidad", "@save_community_edit_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_create_community": "Crear comunidad", "@save_community_create_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_save_text": "Guardar", "@save_community_save_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_create_text": "Crear", "@save_community_create_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_invite_people_title": "Invitar a la comunidad", "@actions_invite_people_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "join_community": "Unirse", "@join_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "leave_community": "Dejar", "@leave_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_staff": "Equipo de la comunidad", "@community_staff": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_singular": "post", "@post_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_plural": "posts", "@post_plural": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "rules_title": "Reglas de la comunidad", "@rules_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "rules_text": "Reglas", "@rules_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "name_characters_error": "El nombre sólo puede contener caracteres alfanuméricos y guiones bajos.", "@name_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "name_range_error": "El nombre no puede tener más de {maxLength} caracteres.", "@name_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "name_empty_error": "El nombre no puede estar vacío.", "@name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "title_range_error": "El título no puede ser más largo que {maxLength} caracteres.", "@title_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "title_empty_error": "El título no puede estar vacío.", "@title_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "rules_range_error": "Las reglas no pueden tener más de {maxLength} caracteres.", "@rules_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "rules_empty_error": "Las reglas no pueden estar vacías.", "@rules_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "description_range_error": "La descripción no puede ser más larga que {maxLength} caracteres.", "@description_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "adjectives_range_error": "Los adjetivos no pueden ser más largos que {maxLength} caracteres.", @@ -1019,9 +746,7 @@ "description": "This refers to the customisable adjectives assigned to community members,eg. 1k travellers,5k photographers", "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } } } \ No newline at end of file diff --git a/assets/i18n/es-ES/contextual_account_search_box.arb b/assets/i18n/es-ES/contextual_account_search_box.arb index 038d18744..24fad11ee 100644 --- a/assets/i18n/es-ES/contextual_account_search_box.arb +++ b/assets/i18n/es-ES/contextual_account_search_box.arb @@ -3,8 +3,6 @@ "@suggestions": { "description": "The title to display on the suggestions when searching for accounts when trying to mention someone.", "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/es-ES/drawer.arb b/assets/i18n/es-ES/drawer.arb index d0820efb0..c61110b7c 100644 --- a/assets/i18n/es-ES/drawer.arb +++ b/assets/i18n/es-ES/drawer.arb @@ -2,304 +2,223 @@ "menu_title": "Menú", "@menu_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "main_title": "Mi Okuna", "@main_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_circles": "Mis círculos", "@my_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_lists": "Mis listas", "@my_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_followers": "Mis seguidores", "@my_followers": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_following": "Mis seguidos", "@my_following": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_invites": "Mis invitaciones", "@my_invites": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_pending_mod_tasks": "Mis tareas de moderación pendientes", "@my_pending_mod_tasks": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_mod_penalties": "Mis penalizaciones de moderación", "@my_mod_penalties": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "app_account_text": "App & cuenta", "@app_account_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "themes": "Temas", "@themes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_moderation": "Moderación global", "@global_moderation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile": "Perfil", "@profile": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connections": "Mis conexiones", "@connections": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "lists": "Mis listas", "@lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "settings": "Configuración", "@settings": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "application_settings": "Configuración de la aplicación", "@application_settings": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings": "Configuración de cuenta", "@account_settings": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "developer_settings": "Configuración de desarrollador", + "@developer_settings": { + "type": "text", + "placeholders": {} }, "account_settings_change_email": "Cambiar email", "@account_settings_change_email": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_change_password": "Cambiar contraseña", "@account_settings_change_password": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_notifications": "Notificaciones", "@account_settings_notifications": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_language_text": "Idioma", "@account_settings_language_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_language": "Idioma ({currentUserLanguage})", "@account_settings_language": { "type": "text", "placeholders": { - "currentUserLanguage": { - - } + "currentUserLanguage": {} } }, "account_settings_blocked_users": "Usuarios bloqueados", "@account_settings_blocked_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_delete_account": "Eliminar cuenta", "@account_settings_delete_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "help": "Asistencia y comentarios", "@help": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "customize": "Personalizar", "@customize": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "logout": "Cerrar sesión", "@logout": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_title": "Enlaces útiles", "@useful_links_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines": "Reglas de Okuna", "@useful_links_guidelines": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_desc": "Las reglas que todos esperamos sigan para una coexistencia sana y amistosa.", "@useful_links_guidelines_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_github": "Tabla de proyectos Github", "@useful_links_guidelines_github": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_github_desc": "Echa un vistazo a lo que estamos trabajando actualmente", "@useful_links_guidelines_github_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_feature_requests": "Solicitudes de funcionalidad", "@useful_links_guidelines_feature_requests": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_feature_requests_desc": "Solicitar una función o votar peticiones existentes", "@useful_links_guidelines_feature_requests_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_bug_tracker": "Rastreador de errores", "@useful_links_guidelines_bug_tracker": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_bug_tracker_desc": "Reportar un error o votar errores existentes", "@useful_links_guidelines_bug_tracker_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_handbook": "Manual de usuario", "@useful_links_guidelines_handbook": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_handbook_desc": "Un libro con todo lo que hay que saber sobre el uso de la plataforma", "@useful_links_guidelines_handbook_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "useful_links_support": "Soporte Okuna", + "useful_links_support": "Contribuir a Okuna", "@useful_links_support": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_support_desc": "Encuentra una forma de ayudarnos en nuestro viaje!", "@useful_links_support_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_slack_channel": "Slack de la comunidad", "@useful_links_slack_channel": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_slack_channel_desc": "Un lugar para discutir todo sobre Okuna", "@useful_links_slack_channel_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/es-ES/error.arb b/assets/i18n/es-ES/error.arb index f9e99190c..5997a4e8e 100644 --- a/assets/i18n/es-ES/error.arb +++ b/assets/i18n/es-ES/error.arb @@ -2,15 +2,11 @@ "unknown_error": "Error desconocido", "@unknown_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "no_internet_connection": "Sin conexión al internet", "@no_internet_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/es-ES/image_picker.arb b/assets/i18n/es-ES/image_picker.arb new file mode 100644 index 000000000..c95fc2dc6 --- /dev/null +++ b/assets/i18n/es-ES/image_picker.arb @@ -0,0 +1,19 @@ +{ + "from_gallery": "De la galería", + "@from_gallery": { + "type": "text", + "placeholders": {} + }, + "from_camera": "De la cámara", + "@from_camera": { + "type": "text", + "placeholders": {} + }, + "error_too_large": "Archivo demasiado grande (límite: {limit} MB)", + "@error_too_large": { + "type": "text", + "placeholders": { + "limit": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/es-ES/moderation.arb b/assets/i18n/es-ES/moderation.arb index 00440b542..a80ea59f8 100644 --- a/assets/i18n/es-ES/moderation.arb +++ b/assets/i18n/es-ES/moderation.arb @@ -2,502 +2,360 @@ "filters_title": "Filtros de moderación", "@filters_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_reset": "Resetear", "@filters_reset": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_verified": "Verificado", "@filters_verified": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_apply": "Aplicar los filtros", "@filters_apply": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_type": "Tipo", "@filters_type": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_status": "Estado", "@filters_status": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_other": "Otro", "@filters_other": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_review": "Revisar", "@actions_review": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_chat_with_team": "Chatear con el equipo", "@actions_chat_with_team": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_category_title": "Actualizar categoría", "@update_category_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_category_save": "Guardar", "@update_category_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_save": "Guardar", "@update_description_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_title": "Editar descripción", "@update_description_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_report_desc": "Descripción del reporte", "@update_description_report_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_report_hint_text": "por ejemplo, el contenido fue encontrado que...", "@update_description_report_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_status_save": "Guardar", "@update_status_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_status_title": "Actualizar el estado", "@update_status_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_title": "Revisar objeto moderado", "@community_review_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_title": "Objeto", "@moderated_object_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_status": "Estado", "@moderated_object_status": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_reports_count": "Cantidad de denuncias", "@moderated_object_reports_count": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_verified_by_staff": "Verificado por el equipo de Okuna", "@moderated_object_verified_by_staff": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_verified": "Verificado", "@moderated_object_verified": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_true_text": "Cierto", "@moderated_object_true_text": { - "description": "Eg. Moderated object verified by staff? true \/ false", + "description": "Eg. Moderated object verified by staff? true / false", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_false_text": "Falso", "@moderated_object_false_text": { - "description": "Eg. Moderated object verified by staff? true \/ false", + "description": "Eg. Moderated object verified by staff? true / false", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_object": "Objeto", "@community_review_object": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_approve": "Aprobar", "@community_review_approve": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_reject": "rechazar", "@community_review_reject": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_item_verified": "Este elemento ha sido verificado", "@community_review_item_verified": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_review_title": "Revisar objeto moderado", "@global_review_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_review_object_text": "Objeto", "@global_review_object_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_review_verify_text": "Verificar", "@global_review_verify_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_review_unverify_text": "Desverificar", "@global_review_unverify_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_title": "Enviar reporte", "@confirm_report_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_details": "¿Puedes proporcionar detalles adicionales que puedan ser relevantes para el reporte?", "@confirm_report_provide_details": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_optional_info": "(Opcional)", "@confirm_report_provide_optional_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_optional_hint_text": "Escribe aquí...", "@confirm_report_provide_optional_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_happen_next": "Esto es lo que sucederá a continuación:", "@confirm_report_provide_happen_next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_happen_next_desc": "- El reporte se enviará de forma anónima. \n- Si estas reportando un post o comentario, el reporte se enviará al staff de Okuna y si aplicable, los moderadores de la comunidad donde el contenido se encuentra y se removerá de tu linea de tiempo.\n- Si estas reportando una cuenta, se enviará al staff de Okuna.\n- Lo revisaremos, si es aprobado, el contenido será eliminado y las penalidades serán entregadas a las personas involucradas, desde una suspensión temporal hasta la eliminación de la cuenta, dependiendo de la gravedad de la transgresión. \n- Si se descubre que el informe se ha realizado en un intento de dañar a otro miembro o comunidad de la plataforma sin infringir el motivo indicado, se te aplicarán sanciones.\n", "@confirm_report_provide_happen_next_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_submit": "Entiendo, enviar.", "@confirm_report_submit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_user_reported": "Usuario reportado", "@confirm_report_user_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_community_reported": "Comunidad reportada", "@confirm_report_community_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_post_reported": "Post reportado", "@confirm_report_post_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_post_comment_reported": "Comentario reportado", "@confirm_report_post_comment_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_item_reported": "Objeto reportado", "@confirm_report_item_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_moderated_objects": "Objectos moderados de la comunidad", "@community_moderated_objects": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "globally_moderated_objects": "Objetos moderados globalmente", "@globally_moderated_objects": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "tap_to_retry": "Toca para reintentar la carga de elementos", "@tap_to_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_post_text": "Reportar post", "@report_post_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_post_text": "Has reportado a este usuario", "@you_have_reported_post_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_account_text": "Reportar cuenta", "@report_account_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_account_text": "Has reportado esta cuenta", "@you_have_reported_account_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_community_text": "Reportar comunidad", "@report_community_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_community_text": "Has reportado esta comunidad", "@you_have_reported_community_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_comment_text": "Reportar comentario", "@report_comment_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_comment_text": "Has reportado este comentario", "@you_have_reported_comment_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "description_text": "Descripción", "@description_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "no_description_text": "Sin descripción", "@no_description_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "category_text": "Categoria", + "category_text": "Categoría", "@category_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "reporter_text": "Reportero", + "reporter_text": "Reportador", "@reporter_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reports_preview_title": "Reportes", "@reports_preview_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reports_preview_resource_reports": "reportes", "@reports_preview_resource_reports": { "description": "Usage: See all reports..", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reports_see_all": "Ver todos los {resourceCount} {resourceName}", "@reports_see_all": { "description": "Usage: See all 4 reports.", "type": "text", "placeholders": { - "resourceCount": { - - }, - "resourceName": { - - } + "resourceCount": {}, + "resourceName": {} } }, "object_status_title": "Estado", "@object_status_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_tasks_title": "Tareas de moderación pendientes", "@my_moderation_tasks_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "pending_moderation_tasks_singular": "tarea de moderación pendiente", "@pending_moderation_tasks_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "pending_moderation_tasks_plural": "tareas de moderación pendientes", "@pending_moderation_tasks_plural": { "description": "Eg. No pending moderation tasks found", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_penalties_title": "Penalizaciones de moderación", "@my_moderation_penalties_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_penalties_resouce_singular": "penalizacion de moderación", "@my_moderation_penalties_resouce_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_penalties_resource_plural": "penalizaciones de moderación", "@my_moderation_penalties_resource_plural": { "description": "See all moderation penalties, No moderation penalties found etc..", "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/es-ES/notifications.arb b/assets/i18n/es-ES/notifications.arb index 548b53f90..a1e0fa709 100644 --- a/assets/i18n/es-ES/notifications.arb +++ b/assets/i18n/es-ES/notifications.arb @@ -1,4 +1,14 @@ { + "tab_general": "General", + "@tab_general": { + "type": "text", + "placeholders": {} + }, + "tab_requests": "Solicitudes", + "@tab_requests": { + "type": "text", + "placeholders": {} + }, "settings_title": "Configuración de notificaciones", "@settings_title": { "type": "text", @@ -154,9 +164,9 @@ "type": "text", "placeholders": {} }, - "user_community_invite_tile": "[name] [username] te ha invitado a unirte a la comunidad \/c\/{communityName}.", + "user_community_invite_tile": "[name] [username] te ha invitado a unirte a la comunidad /c/{communityName}.", "@user_community_invite_tile": { - "description": "Eg.: James @jamest has invited you to join community \/c\/okuna.", + "description": "Eg.: James @jamest has invited you to join community /c/okuna.", "type": "text", "placeholders": { "communityName": {} diff --git a/assets/i18n/es-ES/post.arb b/assets/i18n/es-ES/post.arb index a1189fc8a..725630973 100644 --- a/assets/i18n/es-ES/post.arb +++ b/assets/i18n/es-ES/post.arb @@ -2,809 +2,600 @@ "open_post": "Abrir post", "@open_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "close_post": "Cerrar post", "@close_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_opened": "Post abierto", "@post_opened": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_closed": "Post cerrado ", "@post_closed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_required_error": "El comentario no puede estar vacío.", "@comment_required_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_maxlength_error": "Un comentario no puede ser más largo que {maxLength} caracteres.", "@comment_maxlength_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "timeline_posts_all_loaded": "🎉 Todos los posts cargados", "@timeline_posts_all_loaded": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_refreshing_drhoo_title": "¡Ya casi!", "@timeline_posts_refreshing_drhoo_title": { "type": "text", - "placeholders": { - - } - }, - "timeline_posts_refreshing_drhoo_subtitle": "Cargando tu línea de tiempo.", - "@timeline_posts_refreshing_drhoo_subtitle": { - "type": "text", - "placeholders": { - - } - }, - "timeline_posts_no_more_drhoo_title": "Tu línea de tiempo está vacía.", - "@timeline_posts_no_more_drhoo_title": { - "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_no_more_drhoo_subtitle": "¡Sigue a usuarios o únete a una comunidad para empezar!", "@timeline_posts_no_more_drhoo_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_failed_drhoo_title": "No se pudo cargar tu línea de tiempo.", "@timeline_posts_failed_drhoo_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_failed_drhoo_subtitle": "Inténtalo de nuevo en un par de segundos", "@timeline_posts_failed_drhoo_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_default_drhoo_title": "Algo no está bien.", "@timeline_posts_default_drhoo_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_default_drhoo_subtitle": "Intenta refrescar la linea de tiempo.", "@timeline_posts_default_drhoo_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_refresh_posts": "Refrescar posts", "@timeline_posts_refresh_posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "no_circles_for": "'No se han encontrado círculos que coincidan con '{circlesSearchQuery}'.", "@no_circles_for": { "type": "text", "placeholders": { - "circlesSearchQuery": { - - } + "circlesSearchQuery": {} } }, "share_to_circles": "Compartir en círculos", "@share_to_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_post": " Publicar", "@profile_counts_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_posts": " Posts", "@profile_counts_posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_followers": " Seguidores", "@profile_counts_followers": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_following": " Siguiendo", "@profile_counts_following": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_follower": " Seguidor", "@profile_counts_follower": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "profile_retry_loading_posts": "Toca para reintentar", + "@profile_retry_loading_posts": { + "type": "text", + "placeholders": {} }, "action_comment": "Comentar", "@action_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "action_react": "Reaccionar", "@action_react": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "action_reply": "Responder", "@action_reply": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share": "Compartir", "@share": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_to": "Compartir con", "@share_to": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "sharing_post_to": "Compartiendo post a", "@sharing_post_to": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_shared_with": "Has compartido con", "@you_shared_with": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "shared_privately_on": "Compartido en privado en", "@shared_privately_on": { "description": "Eg. Shared privately on @shantanu's circles. See following string, usernames_circles . Will combine this in future, needs refactoring.", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "usernames_circles": "los círculos de @{postCreatorUsername}'s", "@usernames_circles": { "type": "text", "placeholders": { - "postCreatorUsername": { - - } + "postCreatorUsername": {} } }, "share_community": "Compartir", "@share_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_to_community": "Compartir con comunidad", "@share_to_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_community_title": "A una comunidad", "@share_community_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_community_desc": "Compartir con una comunidad de la que eres parte.", "@share_community_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_circles": "Mis círculos", "@my_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_circles_desc": "Compartir con uno o varios de tus círculos.", "@my_circles_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "world_circle_name": "Mundo", "@world_circle_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "search_circles": "Buscar círculos...", "@search_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reaction_list_tap_retry": "Toca para reintentar cargar las reacciones.", "@reaction_list_tap_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_new": "Nuevo post", "@create_new": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "create_new_post_label": "Crear nuevo post", + "@create_new_post_label": { + "type": "text", + "placeholders": {} + }, + "create_new_community_post_label": "Crear nuevo post en comunidad", + "@create_new_community_post_label": { + "type": "text", + "placeholders": {} + }, + "close_create_post_label": "Cerrar crear nuevo post", + "@close_create_post_label": { + "type": "text", + "placeholders": {} }, "create_next": "Siguiente", "@create_next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_photo": "Foto", "@create_photo": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "create_video": "Video", + "@create_video": { + "type": "text", + "placeholders": {} }, "commenter_post_text": "Publicar", "@commenter_post_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_write_something": "Escribe algo...", "@commenter_write_something": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_title": "Editar post", "@edit_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_save": "Guardar", "@edit_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_expanded_save": "Guardar", "@commenter_expanded_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_expanded_join_conversation": "Únete a la conversación..", "@commenter_expanded_join_conversation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_expanded_start_conversation": "Inicia la conversación..", "@commenter_expanded_start_conversation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_expanded_edit_comment": "Editar comentario", "@commenter_expanded_edit_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "is_closed": "Post cerrado", "@is_closed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_reply_expanded_reply_comment": "Responder a comentario", "@comment_reply_expanded_reply_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_reply_expanded_post": "Post", "@comment_reply_expanded_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_reply_expanded_reply_hint_text": "Tu respuesta...", "@comment_reply_expanded_reply_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_posts_title": "Posts trending", "@trending_posts_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_posts_no_trending_posts": "No hay posts trending. Intenta refrescar en un par de segundos.", "@trending_posts_no_trending_posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_posts_refresh": "Refrescar", "@trending_posts_refresh": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_view_all_comments": "Ver los {commentsCount} comentarios", "@comments_view_all_comments": { "type": "text", "placeholders": { - "commentsCount": { - - } + "commentsCount": {} } }, "comments_closed_post": "Post cerrado", "@comments_closed_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_disabled": "Comentarios deshabilitados", "@comments_disabled": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "text_copied": "Texto copiado!", "@text_copied": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_reactions_title": "Reacciones del post", "@post_reactions_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "have_not_shared_anything": "Todavía no has compartido nada.", "@have_not_shared_anything": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "user_has_not_shared_anything": "{name} aún no ha compartido nada.", "@user_has_not_shared_anything": { "type": "text", "placeholders": { - "name": { - - } + "name": {} } }, "comments_header_newest_replies": "Respuestas más recientes", "@comments_header_newest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_newer": "Más reciente", "@comments_header_newer": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_view_newest_replies": "Ver respuestas más recientes", "@comments_header_view_newest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_see_newest_replies": "Ver respuestas más recientes", "@comments_header_see_newest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_oldest_replies": "Respuestas más antiguas", "@comments_header_oldest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_older": "Más antiguo", "@comments_header_older": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_view_oldest_replies": "Ver respuestas más antiguas", "@comments_header_view_oldest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_see_oldest_replies": "Ver respuestas más antiguas", "@comments_header_see_oldest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_be_the_first_replies": "Sé el primero en responder", "@comments_header_be_the_first_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_newest_comments": "Más recientes", "@comments_header_newest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_view_newest_comments": "Ver comentarios más recientes", "@comments_header_view_newest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_see_newest_comments": "Ver comentarios más recientes", "@comments_header_see_newest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_oldest_comments": "Más antiguos", "@comments_header_oldest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_view_oldest_comments": "Ver comentarios más antiguos", "@comments_header_view_oldest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_see_oldest_comments": "Ver comentarios más antiguos", "@comments_header_see_oldest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_be_the_first_comments": "Ser el primero en comentar", "@comments_header_be_the_first_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_title": "Comentarios", "@comments_page_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_no_more_to_load": "No hay más comentarios que cargar", "@comments_page_no_more_to_load": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_tap_to_retry": "Toca para reintentar cargar comentarios.", "@comments_page_tap_to_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_tap_to_retry_replies": "Toca para reintentar cargar las respuestas.", "@comments_page_tap_to_retry_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_no_more_replies_to_load": "No hay más comentarios que cargar", "@comments_page_no_more_replies_to_load": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_replies_title": "Respuestas", "@comments_page_replies_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "disable_post_comments": "Deshabilitar comentarios", "@disable_post_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "enable_post_comments": "Habilitar comentarios", "@enable_post_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_enabled_message": "Comentarios habilitados", "@comments_enabled_message": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_disabled_message": "Comentarios deshabilitados", "@comments_disabled_message": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_delete": "Eliminar post", "@actions_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_deleted": "Post eliminado", "@actions_deleted": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_delete_comment": "Eliminar comentario", "@actions_delete_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_edit_comment": "Editar comentario", "@actions_edit_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_comment_deleted": "Comentario eliminado", "@actions_comment_deleted": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_report_text": "Reportar", "@actions_report_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_reported_text": "Reportado", "@actions_reported_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_show_more_text": "Ver más", "@actions_show_more_text": { "description": "Shown for posts with long text to expand the entire text.", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_years": "a", "@time_short_years": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 3y. Keep it as short as possible", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3y. Keep it as short as possible", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_year": "1a", "@time_short_one_year": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_weeks": "s", "@time_short_weeks": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 5w.Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 5w.Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_week": "1s", "@time_short_one_week": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_days": "d", "@time_short_days": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 3d. Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3d. Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_day": "1d", "@time_short_one_day": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_hours": "h", "@time_short_hours": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 3h.Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3h.Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_hour": "1h", "@time_short_one_hour": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_minutes": "m", "@time_short_minutes": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 13m.Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 13m.Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_seconds": "s", "@time_short_seconds": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 13s Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 13s Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_minute": "1m", "@time_short_one_minute": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_now_text": "ahora", "@time_short_now_text": { "description": "Shown when a post was immediately posted, as in time posted is 'now'.Should be as few characters as possible.", "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/es-ES/post_body_link_preview.arb b/assets/i18n/es-ES/post_body_link_preview.arb new file mode 100644 index 000000000..1377403c5 --- /dev/null +++ b/assets/i18n/es-ES/post_body_link_preview.arb @@ -0,0 +1,14 @@ +{ + "empty": "Este enlace no se pudo previsualizar", + "@empty": { + "type": "text", + "placeholders": {} + }, + "error_with_description": "Error al previsualizar el enlace con error del sitio web: {description}", + "@error_with_description": { + "type": "text", + "placeholders": { + "description": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/es-ES/post_body_media.arb b/assets/i18n/es-ES/post_body_media.arb new file mode 100644 index 000000000..246f4dc6d --- /dev/null +++ b/assets/i18n/es-ES/post_body_media.arb @@ -0,0 +1,7 @@ +{ + "unsupported": "Tipo de medio no soportado", + "@unsupported": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/es-ES/post_uploader.arb b/assets/i18n/es-ES/post_uploader.arb new file mode 100644 index 000000000..49d398c1e --- /dev/null +++ b/assets/i18n/es-ES/post_uploader.arb @@ -0,0 +1,47 @@ +{ + "generic_upload_failed": "Error al subir", + "@generic_upload_failed": { + "type": "text", + "placeholders": {} + }, + "creating_post": "Creando post...", + "@creating_post": { + "type": "text", + "placeholders": {} + }, + "compressing_media": "Comprimiendo media...", + "@compressing_media": { + "type": "text", + "placeholders": {} + }, + "uploading_media": "Subiendo media...", + "@uploading_media": { + "type": "text", + "placeholders": {} + }, + "publishing": "Publicando post...", + "@publishing": { + "type": "text", + "placeholders": {} + }, + "processing": "Procesando post...", + "@processing": { + "type": "text", + "placeholders": {} + }, + "success": "¡Éxito!", + "@success": { + "type": "text", + "placeholders": {} + }, + "cancelling": "Cancelando", + "@cancelling": { + "type": "text", + "placeholders": {} + }, + "cancelled": "¡Cancelado!", + "@cancelled": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/es-ES/posts_stream.arb b/assets/i18n/es-ES/posts_stream.arb new file mode 100644 index 000000000..2ca021239 --- /dev/null +++ b/assets/i18n/es-ES/posts_stream.arb @@ -0,0 +1,47 @@ +{ + "all_loaded": "🎉 Todos los posts cargados", + "@all_loaded": { + "type": "text", + "placeholders": {} + }, + "refreshing_drhoo_title": "¡Ya casi!", + "@refreshing_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "refreshing_drhoo_subtitle": "Refrescando el stream.", + "@refreshing_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "empty_drhoo_title": "Este stream está vacío.", + "@empty_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "empty_drhoo_subtitle": "Intenta refrescar en un par de segundos.", + "@empty_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "failed_drhoo_title": "No se pudo cargar el stream.", + "@failed_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "failed_drhoo_subtitle": "Inténtalo de nuevo en un par de segundos", + "@failed_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "status_tile_empty": "No se encontraron posts", + "@status_tile_empty": { + "type": "text", + "placeholders": {} + }, + "status_tile_no_more_to_load": "🎉 Todos los posts cargados", + "@status_tile_no_more_to_load": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/es-ES/user.arb b/assets/i18n/es-ES/user.arb index cb41c519a..84b164df0 100644 --- a/assets/i18n/es-ES/user.arb +++ b/assets/i18n/es-ES/user.arb @@ -3,1345 +3,978 @@ "@thousand_postfix": { "description": "For eg. communty has 3k members", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "million_postfix": "m", "@million_postfix": { "description": "For eg. user has 3m followers", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "billion_postfix": "b", "@billion_postfix": { "description": "For eg. World circle has 7.5b people", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "translate_see_translation": "Ver traducción", "@translate_see_translation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "translate_show_original": "Mostrar original", "@translate_show_original": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_lists_account": "1 Cuenta", "@follows_lists_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_lists_accounts": "{prettyUsersCount} Cuentas", "@follows_lists_accounts": { "description": "prettyUsersCount will be 3m, 50k etc.. so we endup with final string 3k Accounts", "type": "text", "placeholders": { - "prettyUsersCount": { - - } + "prettyUsersCount": {} } }, "edit_profile_user_name_taken": "El nombre de usuario @{username} ya existe", "@edit_profile_user_name_taken": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "profile_action_deny_connection": "Rechazar solicitud de conexión", "@profile_action_deny_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_action_user_blocked": "Usuario bloqueado", "@profile_action_user_blocked": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_action_user_unblocked": "Usuario desbloqueado", "@profile_action_user_unblocked": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_action_cancel_connection": "Cancelar solicitud de conexión", "@profile_action_cancel_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_url_invalid_error": "Por favor ingresa una url válida.", "@profile_url_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_location_length_error": "La ubicación no puede contener más de {maxLength} caracteres.", "@profile_location_length_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "profile_bio_length_error": "La biografía no puede contener más de {maxLength} caracteres.", "@profile_bio_length_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "follow_button_follow_text": "Seguir", "@follow_button_follow_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_button_unfollow_text": "Siguiendo", "@follow_button_unfollow_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_username": "Nombre de usuario", "@edit_profile_username": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_update_account_lists": "Actualizar listas de cuentas", "@add_account_update_account_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_to_lists": "Agregar cuenta a lista", "@add_account_to_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_update_lists": "Actualizar listas", "@add_account_update_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_save": "Guardar", "@add_account_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_done": "Listo", "@add_account_done": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_success": "Listo", "@add_account_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "emoji_field_none_selected": "No hay emoji seleccionado", "@emoji_field_none_selected": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "emoji_search_none_found": "No se encontró un Emoji similar a '{searchQuery}'.", "@emoji_search_none_found": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "follow_lists_title": "Mis listas", "@follow_lists_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_lists_search_for": "Buscar una lista...", "@follow_lists_search_for": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_lists_no_list_found": "No se encontraron listas.", "@follow_lists_no_list_found": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_lists_no_list_found_for": "No se encontró lista con '{searchQuery}'", "@follow_lists_no_list_found_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "list_name_empty_error": "El nombre de la lista no puede estar vacío.", "@list_name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "list_name_range_error": "El nombre de la lista no debe tener más de {maxLength} caracteres.", "@list_name_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "circle_name_empty_error": "El nombre del círculo no puede estar vacío.", "@circle_name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "circle_name_range_error": "El nombre del círculo no debe tener más de {maxLength} caracteres.", "@circle_name_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "save_follows_list_name": "Nombre", "@save_follows_list_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_hint_text": "por ejemplo, Viajes, Fotografía, Gaming", "@save_follows_list_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_name_taken": "El nombre de lista '{listName}' esta tomado", "@save_follows_list_name_taken": { "type": "text", "placeholders": { - "listName": { - - } + "listName": {} } }, "save_follows_list_emoji": "Emoji", "@save_follows_list_emoji": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_users": "Usuarios", "@save_follows_list_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_edit": "Editar lista", "@save_follows_list_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_create": "Crear lista", "@save_follows_list_create": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_save": "Guardar", "@save_follows_list_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_emoji_required_error": "Emoji es requerido", "@save_follows_list_emoji_required_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_list_edit": "Editar", "@follows_list_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_list_header_title": "Usuarios", "@follows_list_header_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_name": "Nombre", "@edit_profile_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_url": "Enlace", "@edit_profile_url": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_location": "Ubicación", "@edit_profile_location": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_bio": "Bio", "@edit_profile_bio": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_followers_count": "Número de seguidores", "@edit_profile_followers_count": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "edit_profile_community_posts": "Posts de comunidades", + "@edit_profile_community_posts": { + "type": "text", + "placeholders": {} }, "edit_profile_title": "Editar perfil", "@edit_profile_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_save_text": "Guardar", "@edit_profile_save_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_pick_image": "Elegir imagen", "@edit_profile_pick_image": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_delete": "Eliminar", "@edit_profile_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_pick_image_error_too_large": "Imagen demasiado grande (límite: {limit} MB)", "@edit_profile_pick_image_error_too_large": { "type": "text", "placeholders": { - "limit": { - - } + "limit": {} } }, "tile_following": " · Siguiendo", "@tile_following": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "following_text": "Siguiendo", "@following_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "following_resource_name": "usuarios seguidos", "@following_resource_name": { "description": "Eg: Search followed users.., No followed users found. etc ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "tile_delete": "Eliminar", "@tile_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite": "Invitar", "@invite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "uninvite": "Invitado", "@uninvite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_member": "Miembro", "@invite_member": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_someone_message": "Hola, me gustaría invitarte a Okuna. Primero, descarga la aplicación en iTunes ({iosLink}) on la PlayStore ({androidLink}). En segundo lugar, pega este enlace de invitación personalizado en el formulario 'Registrarse' en la aplicación Okuna: {inviteLink}", "@invite_someone_message": { "type": "text", "placeholders": { - "iosLink": { - - }, - "androidLink": { - - }, - "inviteLink": { - - } + "iosLink": {}, + "androidLink": {}, + "inviteLink": {} } }, "connections_header_circle_desc": "El círculo al que se agregan todas tus conexiones.", "@connections_header_circle_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connections_header_users": "Usuarios", "@connections_header_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connection_pending": "Pendiente", "@connection_pending": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connection_circle_edit": "Editar", "@connection_circle_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connections_circle_delete": "Eliminar", "@connections_circle_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_name": "Nombre", "@save_connection_circle_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_hint": "por ejemplo, Amigos, Familia, Trabajo.", "@save_connection_circle_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_color_name": "Color", "@save_connection_circle_color_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_color_hint": "(Toca para cambiar)", "@save_connection_circle_color_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_users": "Usuarios", "@save_connection_circle_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_edit": "Editar círculo", "@save_connection_circle_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_create": "Crear círculo", "@save_connection_circle_create": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_save": "Guardar", "@save_connection_circle_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_connection_circle_save": "Guardar", "@update_connection_circle_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_connection_circle_updated": "Conexión actualizada", "@update_connection_circle_updated": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_connection_circles_title": "Actualizar círculos de conexión", "@update_connection_circles_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_connection_with": "Confirmar conexión con {userName}", "@confirm_connection_with": { "type": "text", "placeholders": { - "userName": { - - } + "userName": {} } }, "confirm_connection_add_connection": "Añadir conexión al círculo", "@confirm_connection_add_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_connection_connection_confirmed": "Conexión confirmada", "@confirm_connection_connection_confirmed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_connection_confirm_text": "Confirmar", "@confirm_connection_confirm_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connect_to_user_connect_with_username": "Conectar con {userName}", "@connect_to_user_connect_with_username": { "type": "text", "placeholders": { - "userName": { - - } + "userName": {} } }, "connect_to_user_add_connection": "Añadir conexión al círculo", "@connect_to_user_add_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connect_to_user_done": "Listo", "@connect_to_user_done": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connect_to_user_request_sent": "Solicitud de conexión enviada", "@connect_to_user_request_sent": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "remove_account_from_list": "Eliminar cuenta de listas", "@remove_account_from_list": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "remove_account_from_list_success": "Éxito", "@remove_account_from_list_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_title": "Confirmación", "@confirm_block_user_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_info": "No verán las publicaciones del otro ni podrán interactuar de ninguna manera.", "@confirm_block_user_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_yes": "Sí", "@confirm_block_user_yes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_no": "No", "@confirm_block_user_no": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_blocked": "Usuario bloqueado.", "@confirm_block_user_blocked": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_question": "¿Seguro que quieres banear a @{username}?", "@confirm_block_user_question": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "save_connection_circle_name_taken": "El nombre de lista '{takenConnectionsCircleName}' esta tomado", "@save_connection_circle_name_taken": { "type": "text", "placeholders": { - "takenConnectionsCircleName": { - - } + "takenConnectionsCircleName": {} } }, "timeline_filters_title": "Filtros de línea de tiempo", "@timeline_filters_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_search_desc": "Buscar círculos y listas...", "@timeline_filters_search_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_clear_all": "Borrar todo", "@timeline_filters_clear_all": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_apply_all": "Aplicar filtros", "@timeline_filters_apply_all": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_circles": "Círculos", "@timeline_filters_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_lists": "Listas", "@timeline_filters_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "followers_title": "Seguidores", "@followers_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follower_singular": "seguidor", "@follower_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follower_plural": "seguidores", "@follower_plural": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_title": "Eliminar cuenta", "@delete_account_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_current_pwd": "Contraseña actual", "@delete_account_current_pwd": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_current_pwd_hint": "Ingresa tu contraseña actual", "@delete_account_current_pwd_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_next": "Siguiente", "@delete_account_next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_title": "Confirmación", "@delete_account_confirmation_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_desc": "¿Seguro que deseas eliminar tu cuenta?", "@delete_account_confirmation_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_desc_info": "Ésta acción es permanente y no se puede deshacer.", "@delete_account_confirmation_desc_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_no": "No", "@delete_account_confirmation_no": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_yes": "Sí", "@delete_account_confirmation_yes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_goodbye": "Adiós 😢", "@delete_account_confirmation_goodbye": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_create_title": "Crear invitación", "@invites_create_create_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_edit_title": "Editar invitación", "@invites_create_edit_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_save": "Guardar", "@invites_create_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_create": "Crear", "@invites_create_create": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_name_title": "Nickname", "@invites_create_name_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_name_hint": "por ejemplo Juan Gabriel", "@invites_create_name_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_pending": "Pendiente", "@invites_pending": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_delete": "Eliminar", "@invites_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_invite_text": "Invitar", "@invites_invite_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_yourself": "Compartir invitación", "@invites_share_yourself": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_yourself_desc": "Ecoger de apps de mensajería, etc.", "@invites_share_yourself_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_email": "Compartir invitación por correo", "@invites_share_email": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_text": "Email", "@invites_email_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_hint": "por ejemplo juanga@email.com", "@invites_email_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_invite_text": "Invitación por email", "@invites_email_invite_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_send_text": "Enviar", "@invites_email_send_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_sent_text": "Email de invitación enviado", "@invites_email_sent_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_email_desc": "Enviaremos un correo electrónico de invitación con instrucciones en tu nombre", "@invites_share_email_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_edit_text": "Editar", "@invites_edit_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_title": "Mis invitaciones", "@invites_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_accepted_title": "Aceptada", "@invites_accepted_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_accepted_group_name": "invitaciones aceptadas", "@invites_accepted_group_name": { "description": "Egs where this will end up: Accepted invites (capitalised title), Search accepted invites, See all accepted invites ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_accepted_group_item_name": "invitación aceptada", "@invites_accepted_group_item_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_pending_group_name": "invitaciones pendientes", "@invites_pending_group_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_pending_group_item_name": "invitación pendiente", "@invites_pending_group_item_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_none_used": "Parece que no has usado ninguna invitación.", "@invites_none_used": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_none_left": "No tienes invitaciones disponibles.", "@invites_none_left": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_invite_a_friend": "Invitar a un amigo", "@invites_invite_a_friend": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_refresh": "Refrescar", "@invites_refresh": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "language_settings_title": "Configuración de idioma", "@language_settings_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "language_settings_save": "Guardar", "@language_settings_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "language_settings_saved_success": "Idioma cambiado con éxito", "@language_settings_saved_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "groups_see_all": "Ver {groupName}", "@groups_see_all": { "description": "Can be, See all joined communities, See all pending invites, See all moderated communities etc. ", "type": "text", "placeholders": { - "groupName": { - - } + "groupName": {} } }, "invites_joined_with": "Se unió con el nombre de usuario @{username}", "@invites_joined_with": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "invites_pending_email": "Pendiente, email de invitación enviado a {email}", "@invites_pending_email": { "type": "text", "placeholders": { - "email": { - - } + "email": {} } }, "timeline_filters_no_match": "Sin resultados para '{searchQuery}'.", "@timeline_filters_no_match": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "clear_application_cache_text": "Limpiar caché", "@clear_application_cache_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_application_cache_desc": "Limpiar posts, cuentas, imágenes & más del caché.", "@clear_application_cache_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_application_cache_success": "Caché limpiada con éxito", "@clear_application_cache_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_application_cache_failure": "No se ha podido limpiar el caché", "@clear_application_cache_failure": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_title": "Rechazo de reglas", "@confirm_guidelines_reject_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_info": "No puedes usar Okuna hasta que aceptes las reglas.", "@confirm_guidelines_reject_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_chat_with_team": "Chatear con el equipo.", "@confirm_guidelines_reject_chat_with_team": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_chat_immediately": "Iniciar un chat inmediatamente.", "@confirm_guidelines_reject_chat_immediately": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_chat_community": "Chatear con la comunidad.", "@confirm_guidelines_reject_chat_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_join_slack": "Únete al canal Slack.", "@confirm_guidelines_reject_join_slack": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_go_back": "Volver", "@confirm_guidelines_reject_go_back": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_delete_account": "Eliminar cuenta", "@confirm_guidelines_reject_delete_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "guidelines_desc": "Por favor, tómate un momento para leer y aceptar nuestras reglas.", "@guidelines_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "guidelines_accept": "Aceptar", "@guidelines_accept": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "guidelines_reject": "Rechazar", "@guidelines_reject": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_title": "Cambiar email", "@change_email_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_email_text": "Email", "@change_email_email_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_hint_text": "Ingresa tu email nuevo", "@change_email_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_error": "Email ya está registrado", "@change_email_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_save": "Guardar", "@change_email_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_success_info": "Hemos enviado un enlace de confirmación a su nueva dirección de email, haz clic para verificar tu nuevo email", "@change_email_success_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_title": "Borrar preferencias", "@clear_app_preferences_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_desc": "Borrar las preferencias de la aplicación. Actualmente, este es sólo el orden preferido de comentarios.", "@clear_app_preferences_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_cleared_successfully": "Preferencias borradas con éxito", "@clear_app_preferences_cleared_successfully": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "email_verification_successful": "¡Genial! Tu email ya está verificado", "@email_verification_successful": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "email_verification_error": "¡Uy! Tu token no fue válido o ha expirado, por favor intentar de nuevo", "@email_verification_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_error": "No se pudieron borrar las preferencias", "@clear_app_preferences_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "disconnect_from_user_success": "Desconectado exitosamente", "@disconnect_from_user_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "block_user": "Bloquear usuario", "@block_user": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "unblock_user": "Desbloquear usuario", "@unblock_user": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "disconnect_from_user": "Desconectarse de {userName}", "@disconnect_from_user": { "type": "text", "placeholders": { - "userName": { - - } + "userName": {} } }, "circle_peoples_count": "{prettyUsersCount} gente", "@circle_peoples_count": { "type": "text", "placeholders": { - "prettyUsersCount": { - - } + "prettyUsersCount": {} } }, "follows_list_accounts_count": "{prettyUsersCount} cuentas", "@follows_list_accounts_count": { "type": "text", "placeholders": { - "prettyUsersCount": { - - } + "prettyUsersCount": {} } } } \ No newline at end of file diff --git a/assets/i18n/es-ES/user_search.arb b/assets/i18n/es-ES/user_search.arb index 4890eeb3a..ed4737cd5 100644 --- a/assets/i18n/es-ES/user_search.arb +++ b/assets/i18n/es-ES/user_search.arb @@ -2,32 +2,24 @@ "search_text": "Buscar...", "@search_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities": "Comunidades", "@communities": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "users": "Usuarios", "@users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "list_search_text": "Buscar {resourcePluralName}...", "@list_search_text": { "description": "resourcePluralName can take many forms foreg. Search members... , Search accepted invites, Search communities.. etc.", "type": "text", "placeholders": { - "resourcePluralName": { - - } + "resourcePluralName": {} } }, "list_no_results_found": "No se encontró ningun {resourcePluralName}.", @@ -35,66 +27,50 @@ "description": "Used in a generic list widget. Can be No users found. No communities found. No pending invites found. Its always a plural. ", "type": "text", "placeholders": { - "resourcePluralName": { - - } + "resourcePluralName": {} } }, "list_refresh_text": "Refrescar", "@list_refresh_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "list_retry": "Toca para reintentar.", "@list_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "cancel": "Cancelar", "@cancel": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "searching_for": "Buscando '{searchQuery}'", "@searching_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "no_results_for": "Sin resultados para \"{searchQuery}\".", "@no_results_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "no_communities_for": "No se encontraron comunidades para '{searchQuery}'.", "@no_communities_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "no_users_for": "No se encontraron usuarios para '{searchQuery}'.", "@no_users_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } } } \ No newline at end of file diff --git a/assets/i18n/es-ES/video_picker.arb b/assets/i18n/es-ES/video_picker.arb new file mode 100644 index 000000000..026270658 --- /dev/null +++ b/assets/i18n/es-ES/video_picker.arb @@ -0,0 +1,12 @@ +{ + "from_gallery": "De la galería", + "@from_gallery": { + "type": "text", + "placeholders": {} + }, + "from_camera": "De la cámara", + "@from_camera": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/fr/application_settings.arb b/assets/i18n/fr/application_settings.arb new file mode 100644 index 000000000..7e03d02a7 --- /dev/null +++ b/assets/i18n/fr/application_settings.arb @@ -0,0 +1,82 @@ +{ + "videos": "Vidéos", + "@videos": { + "type": "text", + "placeholders": {} + }, + "link_previews": "Link previews", + "@link_previews": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay": "Lecture automatique", + "@videos_autoplay": { + "type": "text", + "placeholders": {} + }, + "link_previews_show": "Show", + "@link_previews_show": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_always": "Toujours", + "@videos_autoplay_always": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_wifi_only": "Wifi uniquement", + "@videos_autoplay_wifi_only": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_never": "Jamais", + "@videos_autoplay_never": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_always": "Always", + "@link_previews_autoplay_always": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_wifi_only": "Wifi only", + "@link_previews_autoplay_wifi_only": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_never": "Never", + "@link_previews_autoplay_never": { + "type": "text", + "placeholders": {} + }, + "videos_sound": "Son", + "@videos_sound": { + "type": "text", + "placeholders": {} + }, + "tap_to_change": "(Appuyez pour changer)", + "@tap_to_change": { + "type": "text", + "placeholders": {} + }, + "videos_sound_enabled": "Activé", + "@videos_sound_enabled": { + "type": "text", + "placeholders": {} + }, + "videos_sound_disabled": "Désactivé", + "@videos_sound_disabled": { + "type": "text", + "placeholders": {} + }, + "comment_sort_newest_first": "Du plus récent au plus ancien", + "@comment_sort_newest_first": { + "type": "text", + "placeholders": {} + }, + "comment_sort_oldest_first": "Du plus ancien au plus récent", + "@comment_sort_oldest_first": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/fr/auth.arb b/assets/i18n/fr/auth.arb index 787613572..2ce978f57 100644 --- a/assets/i18n/fr/auth.arb +++ b/assets/i18n/fr/auth.arb @@ -2,744 +2,530 @@ "headline": "Un meilleur réseau social.", "@headline": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login": "Ouvrir une session", "@login": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "email_empty_error": "Le courriel ne peut pas être vide.", + "email_empty_error": "L'email ne peut pas être vide.", "@email_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "email_invalid_error": "Veuillez fournir une adresse courriel valide.", + "email_invalid_error": "Veuillez fournir un email valide.", "@email_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "username_empty_error": "Le nom d'utilisateur.trice ne peut pas être vide.", "@username_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "username_characters_error": "Un nom d'utilisateur.trice ne peut contenir que des caractères alphanumériques et des soulignements.", + "username_characters_error": "Un nom d'utilisateur.trice ne peut contenir que des caractères alphanumériques et des underscores.", "@username_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "username_maxlength_error": "Un nom d'utilisateur.trice ne peut pas être plus long que {maxLength} caractères.", "@username_maxlength_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, - "create_account": "Inscription", + "create_account": "S'inscrire", "@create_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__lets_get_started": "Commençons", "@create_acc__lets_get_started": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__welcome_to_beta": "Bienvenue sur la version bêta !", "@create_acc__welcome_to_beta": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__previous": "Précédent", "@create_acc__previous": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__next": "Suivant", "@create_acc__next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__create_account": "Créer un compte", "@create_acc__create_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__paste_link": "Collez votre lien d'inscription ci-dessous", "@create_acc__paste_link": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__paste_password_reset_link": "Coller votre lien de réinitialisation de mot de passe ci-dessous", + "create_acc__paste_password_reset_link": "Collez votre lien de réinitialisation de mot de passe ci-dessous", "@create_acc__paste_password_reset_link": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__paste_link_help_text": "Utilisez le lien du bouton « Rejoignez Okuna » dans votre courriel d'invitation.", + "create_acc__paste_link_help_text": "Utilisez le lien du bouton « Rejoignez Okuna » dans votre email d'invitation.", "@create_acc__paste_link_help_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__link_empty_error": "Le lien ne peut pas être vide.", "@create_acc__link_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__link_invalid_error": "Ce lien semble invalide.", "@create_acc__link_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "password_empty_error": "Le mot de passe ne peut pas être vide.", "@password_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "password_range_error": "Le mot de passe doit comporter entre {minLength} et {maxLength} caractères.", "@password_range_error": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, "name_empty_error": "Le nom ne peut pas être vide.", "@name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "name_range_error": "Le nom doit comporter entre {minLength} et {maxLength} caractères.", "@name_range_error": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, "description_empty_error": "La description ne peut pas être vide.", "@description_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "description_range_error": "Le description doit comporter entre {minLength} et {maxLength} caractères.", "@description_range_error": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, "reset_password_success_title": "Tout est prêt !", "@reset_password_success_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reset_password_success_info": "Votre mot de passe a été mis à jour avec succès", "@reset_password_success_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__request_invite": "Pas d'invitation ? Demandez-en une ici.", "@create_acc__request_invite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__subscribe": "Demander", "@create_acc__subscribe": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__subscribe_to_waitlist_text": "Demandez une invitation !", "@create_acc__subscribe_to_waitlist_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__congratulations": "Félicitations !", "@create_acc__congratulations": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__your_subscribed": "Vous êtes à la position {0} sur la liste d'attente.", "@create_acc__your_subscribed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__almost_there": "Presque fini...", "@create_acc__almost_there": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_name": "Quel est votre nom ?", "@create_acc__what_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__name_placeholder": "Céline Dion", "@create_acc__name_placeholder": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__name_empty_error": "😱 Votre nom ne peut pas être vide.", "@create_acc__name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__name_length_error": "😱 Votre nom ne peut pas dépasser 50 caractères. (Si c'est le cas, nous sommes sincèrement désolé.e.s.)", "@create_acc__name_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__name_characters_error": "😅 Un nom ne peut contenir que des caractères alphanumériques (pour l'instant).", "@create_acc__name_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__what_username": "Choisissez un nom d'utilisateur.trice", + "create_acc__what_username": "Choisissez un pseudo", "@create_acc__what_username": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__username_placeholder": "armandvaillancourt", + "create_acc__username_placeholder": "claudemonnet", "@create_acc__username_placeholder": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__username_empty_error": "😱 Le nom d'utilisateur.trice ne peut pas être vide.", + "create_acc__username_empty_error": "😱 Le pseudo ne peut pas être vide.", "@create_acc__username_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__username_length_error": "😅 Un nom d'utilisateur.trice ne peut pas être plus long que 30 caractères.", + "create_acc__username_length_error": "😅 Un pseudo ne peut pas être plus long que 30 caractères.", "@create_acc__username_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__username_characters_error": "😅 Un nom d'utilisateur.trice ne peut contenir que des caractères alphanumériques et des soulignements.", + "create_acc__username_characters_error": "😅 Un pseudo ne peut contenir que des caractères alphanumériques et des underscores.", "@create_acc__username_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__username_taken_error": "😩 Le nom d'utilisateur.trice @%s est pris.", + "create_acc__username_taken_error": "😩 Le pseudo @%s est déjà pris.", "@create_acc__username_taken_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__username_server_error": "😭 Nous éprouvons des problèmes avec nos serveurs, veuillez s.v.p. réessayer dans quelques minutes.", + "create_acc__username_server_error": "😭 Nous avons des problèmes avec nos serveurs, veuillez réessayer dans quelques minutes.", "@create_acc__username_server_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__what_email": "Quelle est votre adresse courriel?", + "create_acc__what_email": "Quelle est votre email?", "@create_acc__what_email": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__email_placeholder": "karine_vanasse@courriel.com", + "create_acc__email_placeholder": "louis_de_funes@mail.com", "@create_acc__email_placeholder": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__email_empty_error": "😱 Votre adresse courriel ne peut pas être vide", + "create_acc__email_empty_error": "😱 Votre email ne peut pas être vide", "@create_acc__email_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__email_invalid_error": "😅 Veuillez fournir une adresse courriel valide.", + "create_acc__email_invalid_error": "😅 Veuillez fournir un email valide.", "@create_acc__email_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__email_taken_error": "🤔 Un compte existe déjà pour cette adresse courriel.", + "create_acc__email_taken_error": "🤔 Un compte existe déjà avec cet email.", "@create_acc__email_taken_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__email_server_error": "😭 Nous éprouvons des problèmes avec nos serveurs, veuillez s.v.p. réessayer dans quelques minutes.", + "create_acc__email_server_error": "😭 Nous avons des problèmes avec nos serveurs, veuillez réessayer dans quelques minutes.", "@create_acc__email_server_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_password": "Choisissez un mot de passe", "@create_acc__what_password": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc_password_hint_text": "({minLength}-{maxLength} caractères)", "@create_acc_password_hint_text": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, "create_acc__what_password_subtext": "(minimum 8 caractères.)", "@create_acc__what_password_subtext": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__password_empty_error": "😱 Votre mot de passe ne peut pas être vide", "@create_acc__password_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__password_length_error": "😅 Un mot de passe doit comporter entre 8 et 64 caractères.", "@create_acc__password_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_avatar": "Choisissez une photo de profil", "@create_acc__what_avatar": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_tap_to_change": "Appuyer pour changer", "@create_acc__avatar_tap_to_change": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_choose_camera": "Prendre une photo", "@create_acc__avatar_choose_camera": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_choose_gallery": "Utiliser une photo existante", "@create_acc__avatar_choose_gallery": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_remove_photo": "Supprimer la photo", "@create_acc__avatar_remove_photo": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done": "Créer un compte", "@create_acc__done": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_subtext": "Vous pouvez le changer plus tard dans vos praramètres de profil.", "@create_acc__done_subtext": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_created": "Votre compte a été créé avec le nom d'utilisateur.trice suivant :", "@create_acc__done_created": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_loading_title": "Tenez bon !", "@create_acc__submit_loading_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_loading_desc": "Nous sommes en train de créer votre compte.", "@create_acc__submit_loading_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_error_title": "Ah non...", "@create_acc__submit_error_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_error_desc_server": "😭 Nous éprouvons des difficultés avec nos serveurs, veuillez s.v.p. réessayer dans quelques minutes.", "@create_acc__submit_error_desc_server": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_error_desc_validation": "😭 Il semble que certaines informations n'étaient pas correctes, veuillez s.v.p. vérifier et réessayer.", "@create_acc__submit_error_desc_validation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_title": "Hourra !", "@create_acc__done_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_description": "Votre compte a été créé.", "@create_acc__done_description": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__your_username_is": "Votre nom d'utilisateur.trice est :", "@create_acc__your_username_is": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__can_change_username": "Si vous le souhaitez, vous pouvez le changer à tout moment via votre page de profil.", "@create_acc__can_change_username": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_continue": "Ouverture de session", "@create_acc__done_continue": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__one_last_thing": "Une dernière chose...", "@create_acc__one_last_thing": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__register": "Inscription", "@create_acc__register": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__are_you_legal_age": "Êtes-vous agé.e de plus 16 ans ?", "@create_acc__are_you_legal_age": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__login": "Continuer", "@login__login": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__previous": "Précédent", "@login__previous": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__title": "Bon retour !", "@login__title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__subtitle": "Entrez vos informations d'identification afin de continuer.", "@login__subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__forgot_password": "Mot de passe oublié ", "@login__forgot_password": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__forgot_password_subtitle": "Entrez votre nom d'utilisateur.trice ou votre adresse courriel", "@login__forgot_password_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_label": "Nom d'utilisateur.trice", "@login__username_label": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__password_label": "Mot de passe", "@login__password_label": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__email_label": "Adresse courriel", "@login__email_label": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__or_text": "Ou", "@login__or_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__password_empty_error": "Le mot de passe est requis.", "@login__password_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__password_length_error": "Le mot de passe doit comporter entre 8 et 64 caractères.", "@login__password_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_empty_error": "Le nom d’utilisateur.trice est requis.", "@login__username_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_length_error": "Le nom d'utilisateur.trice ne peut pas être plus long que 30 caractères.", "@login__username_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_characters_error": "Le nom d'utilisateur.trice ne peut contenir que des caractères alphanumériques et des soulignements.", "@login__username_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__credentials_mismatch_error": "Les informations d'identification fournies ne correspondent pas.", "@login__credentials_mismatch_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__server_error": "Oh oh... Nous éprouvons des problèmes de serveur. Veuillez s.v.p. réessayer dans quelques minutes.", "@login__server_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__connection_error": "Nous ne pouvons pas établir de connexion avec nos serveurs. Êtes-vous connecté.e à Internet ?", "@login__connection_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_title": "Changer le mot de passe", "@change_password_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_current_pwd": "Mot de passe actuel", "@change_password_current_pwd": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_current_pwd_hint": "Entrez votre mot de passe actuel", "@change_password_current_pwd_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_current_pwd_incorrect": "Le mot de passe entré est incorrect", "@change_password_current_pwd_incorrect": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_new_pwd": "Nouveau mot de passe", "@change_password_new_pwd": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_new_pwd_hint": "Entrez votre nouveau mot de passe", "@change_password_new_pwd_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_new_pwd_error": "Veuillez vous assurer que le mot de passe comporte entre 10 et 100 caractères", "@change_password_new_pwd_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_save_text": "Enregistrer", "@change_password_save_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_save_success": "C'est fait ! Votre mot de passe a été mis à jour", "@change_password_save_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/fr/community.arb b/assets/i18n/fr/community.arb index 3b777acc6..b10f2ca8e 100644 --- a/assets/i18n/fr/community.arb +++ b/assets/i18n/fr/community.arb @@ -2,475 +2,348 @@ "no": "Non", "@no": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "yes": "Oui", "@yes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "button_staff": "Personnel", + "button_staff": "L'équipe", "@button_staff": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "button_rules": "Règles", "@button_rules": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community": "communauté", "@community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities": "communautés", "@communities": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "type_public": "Publique", "@type_public": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "type_private": "Privée", "@type_private": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "member_capitalized": "Membre", "@member_capitalized": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "members_capitalized": "Membres", "@members_capitalized": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "admin_desc": "Ceci permettra au membre de modifier les détails de cette communauté, ainsi que ses administrateurs.trices, modérateurs.trices et utilisateurs.trices banni.e.s.", "@admin_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirmation_title": "Confirmation", "@confirmation_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "retry_loading_posts": "Appuyez pour réessayer", + "@retry_loading_posts": { + "type": "text", + "placeholders": {} }, "admin_add_confirmation": "Êtes-vous sûr.e de vouloir ajouter @{username} en tant qu'administrateur.trice de cette communauté ?", "@admin_add_confirmation": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "ban_confirmation": "Êtes-vous sûr.e de vouloir bannir @{username} ?", "@ban_confirmation": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, - "ban_desc": "Ceci supprimera l'utilisateur.trice de cette communauté et lui interdira de la rejoindre à nouveau.", + "ban_desc": "Ceci supprimera l'utilisateur.trice de cette communauté et lui interdira de revenir.", "@ban_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderator_add_confirmation": "Êtes-vous sûr.e de vouloir ajouter @{username} en tant que modérateur.trice de cette communauté ?", "@moderator_add_confirmation": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "moderator_desc": "Ceci permettra au membre de modifier les détails de cette communauté, ainsi que ses modérateurs.trices et utilisateurs.trices banni.e.s.", "@moderator_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderators_you": "Vous", "@moderators_you": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderators_title": "Modérateurs.trices", "@moderators_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "leave_desc": "Vous ne verrez plus ses publications dans votre fil d'actualités et ne pourrez plus y publier.", "@leave_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "leave_confirmation": "Êtes-vous sûr.e de vouloir quitter cette communauté ?", "@leave_confirmation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderator_resource_name": "modérateur.trice", "@moderator_resource_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderators_resource_name": "modérateurs.trices", "@moderators_resource_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_moderator_title": "Ajouter un.e modérateur.trice", "@add_moderator_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_confirmation": "Êtes-vous sûr.e de vouloir supprimer cette communauté ?", "@delete_confirmation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_desc": "Vous ne verrez plus ses publications dans votre fil d'actualités et ne pourrez plus y publier.", "@delete_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_manage_text": "Gérer", "@actions_manage_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_title": "Gérer la communauté", "@manage_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_details_title": "Détails", "@manage_details_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_details_desc": "Changer le titre, le nom, l'avatar, la photo de couverture et plus.", "@manage_details_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_admins_title": "Administrateurs.trices", "@manage_admins_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_admins_desc": "Voir, ajouter et supprimer des administrateurs.trices.", "@manage_admins_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_mods_title": "Modérateurs.trices", "@manage_mods_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_mods_desc": "Voir, ajouter et supprimer des modérateurs.trices.", "@manage_mods_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_banned_title": "Utilisateurs.trices banni.e.s", "@manage_banned_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_banned_desc": "Voir, ajouter et supprimer des utilisateurs.trices banni.e.s.", "@manage_banned_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "manage_mod_reports_title": "Signalements pour modération", + "manage_mod_reports_title": "Signalements", "@manage_mod_reports_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "manage_mod_reports_desc": "Vérifiez les signalements pour modération communautaire.", + "manage_mod_reports_desc": "Examiner les signalements.", "@manage_mod_reports_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "manage_closed_posts_title": "Publications fermées", + "manage_closed_posts_title": "Publications désactivées", "@manage_closed_posts_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "manage_closed_posts_desc": "Voir et gérer les publications fermées", + "manage_closed_posts_desc": "Voir et gérer les publications désactivées", "@manage_closed_posts_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_invite_title": "Inviter des gens", "@manage_invite_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_invite_desc": "Invitez vos connexions et vos abonné.e.s à rejoindre la communauté.", "@manage_invite_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_delete_title": "Supprimer la communauté", "@manage_delete_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "manage_delete_desc": "Supprimer la communauté, pour toujours.", + "manage_delete_desc": "Supprime définitivement la communauté.", "@manage_delete_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_leave_title": "Quitter la communauté", "@manage_leave_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_leave_desc": "Quitter la communauté.", "@manage_leave_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_add_favourite": "Ajouter la communauté à vos favorites", "@manage_add_favourite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_remove_favourite": "Supprimer la communauté de vos favorites", "@manage_remove_favourite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "is_private": "Cette communauté est privée.", "@is_private": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invited_by_member": "Vous devez être invité.e par un.e membre.", "@invited_by_member": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invited_by_moderator": "Vous devez être invité.e par un.e modérateur.trice.", "@invited_by_moderator": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "refreshing": "Actualisation de la communauté", "@refreshing": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "posts": "Publications", "@posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "about": "À propos", "@about": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "category": "catégorie.", "@category": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "categories": "catégories.", "@categories": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_administrators_title": "Ajouter un.e administrateur.trice", "@add_administrators_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_members": "Membres de la communauté", "@community_members": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "member": "membre", "@member": { "description": "Currently not used in app, reserved for potential use. Could be used as: Showing 1 member", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "member_plural": "membres", "@member_plural": { "description": "See all members ,Search all members", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrators_title": "Administrateurs.trices", "@administrators_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrator_text": "administrateur.trice", "@administrator_text": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 administrator", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrator_plural": "administrateurs.trices", "@administrator_plural": { "description": "Egs. Search administrators, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrator_you": "Vous", "@administrator_you": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "user_you_text": "Vous", "@user_you_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "pick_upto_max": "Choisir jusqu'à {max} catégories", "@pick_upto_max": { "type": "text", "placeholders": { - "max": { - - } + "max": {} } }, "pick_atleast_min_category": "Vous devez choisir au moins {min} catégorie.", @@ -478,9 +351,7 @@ "description": "You must pick at least 1 category", "type": "text", "placeholders": { - "min": { - - } + "min": {} } }, "pick_atleast_min_categories": "Vous devez choisir au moins {min} catégories.", @@ -488,530 +359,386 @@ "description": "Eg. Variable min will be 3-5. You must pick at least (3-5) categories", "type": "text", "placeholders": { - "min": { - - } + "min": {} } }, "ban_user_title": "Bannir l'utilisateur.trice", "@ban_user_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "banned_users_title": "Utilisateurs.trices banni.e.s", "@banned_users_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "banned_user_text": "utilisateur.trice banni.e", "@banned_user_text": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 banned user", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "banned_users_text": "utilisateurs.trices banni.e.s", "@banned_users_text": { "description": "Egs. Search banned users, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorites_title": "Favorites", "@favorites_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorite_community": "communauté préférée", "@favorite_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 favorite community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorite_communities": "communautés préférées", "@favorite_communities": { "description": "Egs. Search favorite communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrated_title": "Administrée", "@administrated_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrated_community": "communauté administrée", "@administrated_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 administrated community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrated_communities": "communautés administrées", "@administrated_communities": { "description": "Egs. Search administrated communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_title": "Modérée(s)", "@moderated_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_community": "communauté modérée", "@moderated_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 moderated community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_communities": "communautés modérées", "@moderated_communities": { "description": "Egs. Search moderated communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "joined_title": "Rejointe(s)", "@joined_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "joined_community": "communauté rejointe", "@joined_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 joined community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "joined_communities": "communautés rejointes", "@joined_communities": { "description": "Egs. Search joined communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "join_communities_desc": "Rejoignez des communautés pour voir cet onglet prendre vie!", "@join_communities_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "refresh_text": "Actualiser", "@refresh_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_none_found": "Aucune communauté tendance trouvée. Réessayez dans quelques minutes.", "@trending_none_found": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_refresh": "Actualiser", "@trending_refresh": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_in_all": "Communauté(s) tendance dans toutes les catégories", "@trending_in_all": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_in_category": "Communauté(s) tendance dans {categoryName}", "@trending_in_category": { "type": "text", "placeholders": { - "categoryName": { - - } + "categoryName": {} } }, "communities_title": "Communautés", "@communities_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities_no_category_found": "Aucune catégorie trouvée. Réessayez s.v.p. dans quelques minutes.", "@communities_no_category_found": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities_refresh_text": "Actualiser", "@communities_refresh_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities_all_text": "Toutes", "@communities_all_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_to_community_title": "Inviter à la communauté", "@invite_to_community_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_to_community_resource_singular": "connexion ou abonné.e", "@invite_to_community_resource_singular": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 connection or follower", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_to_community_resource_plural": "connexions et abonné.e.s", "@invite_to_community_resource_plural": { "description": "Egs. Search connections and followers, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorite_action": "Ajouter la communauté à vos favorites", "@favorite_action": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "unfavorite_action": "Retirer la communauté de vos favorites", "@unfavorite_action": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_label_title": "Titre", "@save_community_label_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_label_title_hint_text": "par exemple : Voyage, Photographie, Jeux.", "@save_community_label_title_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_title": "Nom", "@save_community_name_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_title_hint_text": " par exemple: voyage, photographie, jeux.", "@save_community_name_title_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_taken": "Le nom de communauté '{takenName}' est pris", "@save_community_name_taken": { "type": "text", "placeholders": { - "takenName": { - - } + "takenName": {} } }, "save_community_name_label_color": "Couleur ", "@save_community_name_label_color": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_color_hint_text": "(Appuyez pour changer)", "@save_community_name_label_color_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_type": "Type", "@save_community_name_label_type": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_type_hint_text": "(Appuyez pour changer)", "@save_community_name_label_type_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_member_invites": "Invitations de membres", "@save_community_name_member_invites": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_member_invites_subtitle": "Les membres peuvent inviter des gens à la communauté", "@save_community_name_member_invites_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_category": "Catégorie", "@save_community_name_category": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_desc_optional": "Description · Facultative", "@save_community_name_label_desc_optional": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_desc_optional_hint_text": "Votre communauté est à propos de quoi?", "@save_community_name_label_desc_optional_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_rules_optional": "Règles · Facultatives", "@save_community_name_label_rules_optional": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_rules_optional_hint_text": "Y a-t-il quelque chose que vous aimeriez que les membres de votre communauté sachent?", "@save_community_name_label_rules_optional_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_member_adjective": "Adjectif de membre · Facultatif", "@save_community_name_label_member_adjective": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_member_adjective_hint_text": "par exemple: voyageur.e, photographe, joueur.se.", "@save_community_name_label_member_adjective_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_members_adjective": "Adjectif de membres · Facultatif", "@save_community_name_label_members_adjective": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_members_adjective_hint_text": "par exemple: voyageur.e.s, photographes, joueur.se.s.", "@save_community_name_label_members_adjective_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_edit_community": "Modifier la communauté", "@save_community_edit_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_create_community": "Créer une communauté", "@save_community_create_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_save_text": "Enregistrer", "@save_community_save_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_create_text": "Créer", "@save_community_create_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_invite_people_title": "Inviter des gens à la communauté", "@actions_invite_people_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "join_community": "Rejoindre", "@join_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "leave_community": "Quitter", "@leave_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_staff": "Personnel de la communauté", "@community_staff": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_singular": "publication", "@post_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_plural": "publications", "@post_plural": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "rules_title": "Règles de la communauté", "@rules_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "rules_text": "Règles", "@rules_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "name_characters_error": "Le nom ne peut contenir que des caractères alphanumériques et des soulignements.", "@name_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "name_range_error": "Le nom ne peut pas être plus long que {maxLength} caractères.", "@name_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "name_empty_error": "Le nom ne peut pas être vide.", "@name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "title_range_error": "Le titre ne peut pas être plus long que {maxLength} caractères.", "@title_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "title_empty_error": "Le titre ne peut pas être vide.", "@title_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "rules_range_error": "Les règles ne peuvent pas être plus longues que {maxLength} caractères.", "@rules_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "rules_empty_error": "Les règles ne peuvent pas être vides.", "@rules_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "description_range_error": "La description ne peut pas être plus longue que {maxLength} caractères.", "@description_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "adjectives_range_error": "Les adjectifs ne peuvent pas être plus longs que {maxLength} caractères.", @@ -1019,9 +746,7 @@ "description": "This refers to the customisable adjectives assigned to community members,eg. 1k travellers,5k photographers", "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } } } \ No newline at end of file diff --git a/assets/i18n/fr/contextual_account_search_box.arb b/assets/i18n/fr/contextual_account_search_box.arb index 3788bd9b7..bf0fed7e8 100644 --- a/assets/i18n/fr/contextual_account_search_box.arb +++ b/assets/i18n/fr/contextual_account_search_box.arb @@ -3,8 +3,6 @@ "@suggestions": { "description": "The title to display on the suggestions when searching for accounts when trying to mention someone.", "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/fr/drawer.arb b/assets/i18n/fr/drawer.arb index 1a61aaa58..b43aac041 100644 --- a/assets/i18n/fr/drawer.arb +++ b/assets/i18n/fr/drawer.arb @@ -2,304 +2,223 @@ "menu_title": "Menu", "@menu_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "main_title": "Mon Okuna", "@main_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_circles": "Mes cercles", "@my_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_lists": "Mes listes", "@my_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_followers": "Mes abonné.e.s", "@my_followers": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_following": "Abonnements", "@my_following": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_invites": "Mes invitations", "@my_invites": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_pending_mod_tasks": "Mes tâches de modération en attente", "@my_pending_mod_tasks": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_mod_penalties": "Mes pénalités de modération", "@my_mod_penalties": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "app_account_text": "Application et Compte", + "app_account_text": "Application & Compte", "@app_account_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "themes": "Thèmes", "@themes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_moderation": "Modération globale", "@global_moderation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile": "Profil", "@profile": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connections": "Mes connexions", "@connections": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "lists": "Mes listes", "@lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "settings": "Paramètres", "@settings": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "application_settings": "Paramètres de l'application", "@application_settings": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings": "Paramètres du compte", "@account_settings": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "developer_settings": "Paramètres développeur", + "@developer_settings": { + "type": "text", + "placeholders": {} }, - "account_settings_change_email": "Changer l'adresse courriel", + "account_settings_change_email": "Changer l'email", "@account_settings_change_email": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_change_password": "Changer le mot de passe", "@account_settings_change_password": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_notifications": "Notifications", "@account_settings_notifications": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_language_text": "Langue", "@account_settings_language_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_language": "Langue ({currentUserLanguage})", "@account_settings_language": { "type": "text", "placeholders": { - "currentUserLanguage": { - - } + "currentUserLanguage": {} } }, "account_settings_blocked_users": "Utilisateurs.trices bloqué.e.s", "@account_settings_blocked_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_delete_account": "Supprimer mon compte", "@account_settings_delete_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "help": "Assistance et commentaires", "@help": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "customize": "Personnaliser", "@customize": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "logout": "Fermer la session", + "logout": "Se déconnecter", "@logout": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_title": "Liens utiles", "@useful_links_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "useful_links_guidelines": "Lignes directrices d'Okuna", + "useful_links_guidelines": "Directives générales d'Okuna", "@useful_links_guidelines": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "useful_links_guidelines_desc": "Les lignes directrices dont on s'attend que nous suivions tous.tes pour une coexistence saine et amicale.", + "useful_links_guidelines_desc": "Les directives générales que nous devons tous.tes suivre pour une coexistence saine et amicale.", "@useful_links_guidelines_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_github": "Tableau de projet Github", "@useful_links_guidelines_github": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_github_desc": "Regardez ce sur quoi nous travaillons actuellement", "@useful_links_guidelines_github_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_feature_requests": "Demandes de fonctionnalités", "@useful_links_guidelines_feature_requests": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "useful_links_guidelines_feature_requests_desc": "Demander une fonctionnalité ou voter sur les demandes existantes", + "useful_links_guidelines_feature_requests_desc": "Demander une fonctionnalité ou voter pour les demandes existantes", "@useful_links_guidelines_feature_requests_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "useful_links_guidelines_bug_tracker": "Outil de suivi des bogues", + "useful_links_guidelines_bug_tracker": "Outil de suivi des bug", "@useful_links_guidelines_bug_tracker": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "useful_links_guidelines_bug_tracker_desc": "Signaler un bogue ou voter sur les bogues existants", + "useful_links_guidelines_bug_tracker_desc": "Signaler un bug", "@useful_links_guidelines_bug_tracker_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_handbook": "Manuel d'Okuna", "@useful_links_guidelines_handbook": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_handbook_desc": "Un manuel avec tout ce qu'il y a à savoir sur l'utilisation de la plateforme", "@useful_links_guidelines_handbook_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_support": "Supporter Okuna", "@useful_links_support": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_support_desc": "Trouvez un moyen de nous aider dans notre voyage !", "@useful_links_support_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_slack_channel": "Chaîne communautaire sur Slack", "@useful_links_slack_channel": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_slack_channel_desc": "Un endroit pour discuter de tout à propos d'Okuna", "@useful_links_slack_channel_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/fr/error.arb b/assets/i18n/fr/error.arb index 35b7b182e..174bc78f0 100644 --- a/assets/i18n/fr/error.arb +++ b/assets/i18n/fr/error.arb @@ -2,15 +2,11 @@ "unknown_error": "Erreur inconnue", "@unknown_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "no_internet_connection": "Aucune connexion Internet", "@no_internet_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/fr/image_picker.arb b/assets/i18n/fr/image_picker.arb new file mode 100644 index 000000000..b89211c21 --- /dev/null +++ b/assets/i18n/fr/image_picker.arb @@ -0,0 +1,19 @@ +{ + "from_gallery": "Depuis la galerie", + "@from_gallery": { + "type": "text", + "placeholders": {} + }, + "from_camera": "Depuis l'appareil photo", + "@from_camera": { + "type": "text", + "placeholders": {} + }, + "error_too_large": "Fichier trop lourd (limite : {limit} Mo)", + "@error_too_large": { + "type": "text", + "placeholders": { + "limit": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/fr/moderation.arb b/assets/i18n/fr/moderation.arb index 7d5b166ff..7a5682799 100644 --- a/assets/i18n/fr/moderation.arb +++ b/assets/i18n/fr/moderation.arb @@ -2,502 +2,360 @@ "filters_title": "Filtres de modération", "@filters_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_reset": "Réinitialiser", "@filters_reset": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_verified": "Vérifié", "@filters_verified": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_apply": "Appliquer les filtres", "@filters_apply": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_type": "Type", "@filters_type": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_status": "Statut", "@filters_status": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_other": "Autres", "@filters_other": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_review": "Vérifier", "@actions_review": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_chat_with_team": "Discutez avec l'équipe", "@actions_chat_with_team": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_category_title": "Mettre à jour une catégorie", "@update_category_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_category_save": "Enregistrer", "@update_category_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_save": "Enregistrer", "@update_description_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_title": "Modifier la description", "@update_description_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_report_desc": "Signaler la description", "@update_description_report_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "update_description_report_hint_text": "par exemple: l'élément du signalement indique que...", + "update_description_report_hint_text": "Exemple: L'élément a été signalé parce que...", "@update_description_report_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_status_save": "Enregistrer", "@update_status_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_status_title": "Mettre à jour le statut", "@update_status_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "community_review_title": "Vérifier l'objet modéré", + "community_review_title": "Examiner l'objet modéré", "@community_review_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_title": "Objet", "@moderated_object_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_status": "Statut", "@moderated_object_status": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_reports_count": "Nombre de signalements", "@moderated_object_reports_count": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_verified_by_staff": "Vérifié par le personnel d'Okuna", "@moderated_object_verified_by_staff": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_verified": "Vérifié", "@moderated_object_verified": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_true_text": "Vrai", "@moderated_object_true_text": { - "description": "Eg. Moderated object verified by staff? true \/ false", + "description": "Eg. Moderated object verified by staff? true / false", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_false_text": "Faux", "@moderated_object_false_text": { - "description": "Eg. Moderated object verified by staff? true \/ false", + "description": "Eg. Moderated object verified by staff? true / false", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_object": "Objet", "@community_review_object": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_approve": "Approuver", "@community_review_approve": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_reject": "rejeter", "@community_review_reject": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "community_review_item_verified": "Ce signalement a été vérifié", + "community_review_item_verified": "Ce signalement a été examiné", "@community_review_item_verified": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "global_review_title": "Vérifier l'objet modéré", + "global_review_title": "Examiner l'objet modéré", "@global_review_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_review_object_text": "Objet", "@global_review_object_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_review_verify_text": "Vérifier ", "@global_review_verify_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "global_review_unverify_text": "Ne pas vérifier", + "global_review_unverify_text": "Révoquer la vérification", "@global_review_unverify_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_title": "Envoyer le signalement", "@confirm_report_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_details": "Pouvez-vous fournir des détails supplémentaires qui pourraient être pertinents au signalement?", "@confirm_report_provide_details": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_optional_info": "(Facultatif)", "@confirm_report_provide_optional_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_optional_hint_text": "Tapez ici...", "@confirm_report_provide_optional_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_happen_next": "Voici ce qui va se passer ensuite :", "@confirm_report_provide_happen_next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "confirm_report_provide_happen_next_desc": "- Votre signalement sera envoyé de façon anonyme.\n- Si vous signalez une publication ou un commentaire, le signalement sera envoyé au personel d'Okuna et si cela s'applique, les modérateurs.trices de la communauté, puis la publication sera retirée de votre fil d'actualités.\n- Si vous signalez un compte ou une communauté, le signalement sera envoyé au personel d'Okuna.\n- Nous allons vérifier le signalement et si nous l'approuvons, le contenu fautif sera supprimé et des pénalités seront décernées aux personnes visées, allant d'une suspension temporaire jusqu'à la suppression du compte, dépendant de la sévérité de la transgression.\n- S'il est établi que le signalement a été fait dans une tentative d'endommager la réputation d'un.e autre membre ou communauté dans la plateforme, sans qu'il y ait une offense de la dite raison du signalement, les pénalités s'appliqueront à vous.\n", + "confirm_report_provide_happen_next_desc": "- Votre signalement sera envoyé de façon anonyme.\n- Si vous signalez une publication ou un commentaire, le signalement sera envoyé au personnel d'Okuna et aux modérateurs.trices de la communauté si cela s'applique ; la publication sera ensuite retirée de votre fil d'actualités.\n- Si vous signalez un compte ou une communauté, le signalement sera envoyé au personnel d'Okuna.\n- Nous allons vérifier le signalement et si nous l'approuvons, le contenu fautif sera supprimé et des pénalités seront infligées aux personnes visées, allant d'une suspension temporaire jusqu'à la suppression du compte, dépendant de la sévérité de la transgression.\n- S'il est établi que le signalement a été fait dans une tentative d'endommager la réputation d'un.e autre membre ou communauté dans la plateforme, sans qu'il y ait une transgression avérée, les pénalités s'appliqueront à vous.\n", "@confirm_report_provide_happen_next_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_submit": "Je comprends, envoyer.", "@confirm_report_submit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_user_reported": "Utilisateur.trice signalé.e", "@confirm_report_user_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_community_reported": "Communauté signalée", "@confirm_report_community_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_post_reported": "Publication signalée", "@confirm_report_post_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "confirm_report_post_comment_reported": "Commentaire sur une publication signalé", + "confirm_report_post_comment_reported": "Commentaire signalé", "@confirm_report_post_comment_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_item_reported": "Objet signalé", "@confirm_report_item_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_moderated_objects": "Objets modérés de la communauté", "@community_moderated_objects": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "globally_moderated_objects": "Objets modérés globalement", "@globally_moderated_objects": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "tap_to_retry": "Appuyer pour réessayer de charger les éléments", "@tap_to_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_post_text": "Signaler la publication", "@report_post_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_post_text": "Vous avez signalé cette publication", "@you_have_reported_post_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_account_text": "Signaler le compte", "@report_account_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_account_text": "Vous avez signalé ce compte", "@you_have_reported_account_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_community_text": "Signaler la communauté", "@report_community_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_community_text": "Vous avez signalé cette communauté", "@you_have_reported_community_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_comment_text": "Signaler le commentaire", "@report_comment_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_comment_text": "Vous avez signalé ce commentaire", "@you_have_reported_comment_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "description_text": "Description", "@description_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "no_description_text": "Aucune description", "@no_description_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "category_text": "Catégorie", "@category_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reporter_text": "Signaleur.euse", "@reporter_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reports_preview_title": "Signalements", "@reports_preview_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reports_preview_resource_reports": "signalements", "@reports_preview_resource_reports": { "description": "Usage: See all reports..", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reports_see_all": "Voir tous les {resourceCount} {resourceName}", "@reports_see_all": { "description": "Usage: See all 4 reports.", "type": "text", "placeholders": { - "resourceCount": { - - }, - "resourceName": { - - } + "resourceCount": {}, + "resourceName": {} } }, "object_status_title": "Statut", "@object_status_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_tasks_title": "Tâches de modération en attente", "@my_moderation_tasks_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "pending_moderation_tasks_singular": "tâche de modération en attente", "@pending_moderation_tasks_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "pending_moderation_tasks_plural": "tâches de modération en attente", "@pending_moderation_tasks_plural": { "description": "Eg. No pending moderation tasks found", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_penalties_title": "Pénalités de modération", "@my_moderation_penalties_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_penalties_resouce_singular": "pénalité de modération", "@my_moderation_penalties_resouce_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_penalties_resource_plural": "pénalités de modération", "@my_moderation_penalties_resource_plural": { "description": "See all moderation penalties, No moderation penalties found etc..", "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/fr/notifications.arb b/assets/i18n/fr/notifications.arb index 1c1876e51..02018901b 100644 --- a/assets/i18n/fr/notifications.arb +++ b/assets/i18n/fr/notifications.arb @@ -1,4 +1,14 @@ { + "tab_general": "Général", + "@tab_general": { + "type": "text", + "placeholders": {} + }, + "tab_requests": "Requêtes", + "@tab_requests": { + "type": "text", + "placeholders": {} + }, "settings_title": "Paramètres de notifications", "@settings_title": { "type": "text", @@ -44,7 +54,7 @@ "type": "text", "placeholders": {} }, - "comment_reply_title": "Réponse à l'un de vos commentaires sur une publication", + "comment_reply_title": "Réponse à l'un de vos commentaires", "@comment_reply_title": { "type": "text", "placeholders": {} @@ -54,12 +64,12 @@ "type": "text", "placeholders": {} }, - "comment_user_mention_title": "Mention sur un commentaire d'une publication", + "comment_user_mention_title": "Mention dans un commentaire", "@comment_user_mention_title": { "type": "text", "placeholders": {} }, - "comment_user_mention_desc": "Soyez averti.e lorsque quelqu'un vous mentionne sur l'un de leurs commentaires", + "comment_user_mention_desc": "Soyez averti.e lorsque quelqu'un vous mentionne dans l'un de leurs commentaires", "@comment_user_mention_desc": { "type": "text", "placeholders": {} @@ -69,17 +79,17 @@ "type": "text", "placeholders": {} }, - "post_user_mention_desc": "Soyez averti.e lorsque quelqu'un vous mentionne sur l'une de leurs publications", + "post_user_mention_desc": "Soyez averti.e lorsque quelqu'un vous mentionne dans l'une de leurs publications", "@post_user_mention_desc": { "type": "text", "placeholders": {} }, - "comment_reaction_title": "Réaction à l'un de vos commentaires sur une publication", + "comment_reaction_title": "Réaction à l'un de vos commentaires", "@comment_reaction_title": { "type": "text", "placeholders": {} }, - "comment_reaction_desc": "Soyez averti.e lorsque quelqu'un réagit à l'un de vos commentaires sur une publication", + "comment_reaction_desc": "Soyez averti.e lorsque quelqu'un réagit à l'un de vos commentaires", "@comment_reaction_desc": { "type": "text", "placeholders": {} @@ -142,7 +152,7 @@ "type": "text", "placeholders": {} }, - "reacted_to_post_comment_tile": "[name] · [username] a réagi à votre commentaire sur une publication.", + "reacted_to_post_comment_tile": "[name] · [username] a réagi à votre commentaire.", "@reacted_to_post_comment_tile": { "description": "Eg.: James @jamest reacted to your post comment.", "type": "text", @@ -154,9 +164,9 @@ "type": "text", "placeholders": {} }, - "user_community_invite_tile": "[name] · [username] vous a invité.e à rejoindre la communauté \/c\/{communityName}.", + "user_community_invite_tile": "[name] · [username] vous a invité.e à rejoindre la communauté /c/{communityName}.", "@user_community_invite_tile": { - "description": "Eg.: James @jamest has invited you to join community \/c\/okuna.", + "description": "Eg.: James @jamest has invited you to join community /c/okuna.", "type": "text", "placeholders": { "communityName": {} @@ -191,7 +201,7 @@ "postCommentText": {} } }, - "mentioned_in_post_comment_tile": "[name] [username] vous a mentionné.e sur un commentaire: {postCommentText}", + "mentioned_in_post_comment_tile": "[name] [username] vous a mentionné.e sur un commentaire : {postCommentText}", "@mentioned_in_post_comment_tile": { "description": "Eg.: James @jamest mentioned you on a comment: hello @jamest", "type": "text", diff --git a/assets/i18n/fr/post.arb b/assets/i18n/fr/post.arb index 63c9cc6aa..72e59d33f 100644 --- a/assets/i18n/fr/post.arb +++ b/assets/i18n/fr/post.arb @@ -2,809 +2,600 @@ "open_post": "Ouvrir la publication", "@open_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "close_post": "Fermer la publication", "@close_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_opened": "Publication ouverte", "@post_opened": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_closed": "Publication fermée", "@post_closed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_required_error": "Le commentaire ne peut pas être vide.", "@comment_required_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_maxlength_error": "Un commentaire ne peut pas être plus long que {maxLength} caractères.", "@comment_maxlength_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "timeline_posts_all_loaded": "🎉 Toutes les publications chargées", "@timeline_posts_all_loaded": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_refreshing_drhoo_title": "Tenez bon !", "@timeline_posts_refreshing_drhoo_title": { "type": "text", - "placeholders": { - - } - }, - "timeline_posts_refreshing_drhoo_subtitle": "Chargement de votre fil d'actualités.", - "@timeline_posts_refreshing_drhoo_subtitle": { - "type": "text", - "placeholders": { - - } - }, - "timeline_posts_no_more_drhoo_title": "Votre fil d'actualités est vide.", - "@timeline_posts_no_more_drhoo_title": { - "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_no_more_drhoo_subtitle": "Suivez des utilisateurs.trices ou rejoignez une communauté pour commencer !", "@timeline_posts_no_more_drhoo_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_failed_drhoo_title": "Impossible de charger votre fil d'actualités.", "@timeline_posts_failed_drhoo_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_failed_drhoo_subtitle": "Réessayez dans quelques secondes", "@timeline_posts_failed_drhoo_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_default_drhoo_title": "Quelque chose ne va pas.", "@timeline_posts_default_drhoo_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_default_drhoo_subtitle": "Essayez de rafraîchir le fil d'actualités.", "@timeline_posts_default_drhoo_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_refresh_posts": "Actualiser les publications", "@timeline_posts_refresh_posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "no_circles_for": "Aucun cercle trouvé correspondant à '{circlesSearchQuery}'.", "@no_circles_for": { "type": "text", "placeholders": { - "circlesSearchQuery": { - - } + "circlesSearchQuery": {} } }, "share_to_circles": "Partager vers les cercles", "@share_to_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_post": " Publication", "@profile_counts_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_posts": "Publications", "@profile_counts_posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_followers": " Abonné.e.s", "@profile_counts_followers": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "profile_counts_following": " Abonnements", + "profile_counts_following": "Suivis", "@profile_counts_following": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_follower": " Abonné.e", "@profile_counts_follower": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "profile_retry_loading_posts": "Appuyez pour réessayer", + "@profile_retry_loading_posts": { + "type": "text", + "placeholders": {} }, "action_comment": "Commenter", "@action_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "action_react": "Réagir", "@action_react": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "action_reply": "Répondre", "@action_reply": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share": "Partager", "@share": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_to": "Partager vers", "@share_to": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "sharing_post_to": "Partager la publication vers", "@sharing_post_to": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_shared_with": "Vous avez partagé avec", "@you_shared_with": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "shared_privately_on": "Partagé.e en privé sur", "@shared_privately_on": { "description": "Eg. Shared privately on @shantanu's circles. See following string, usernames_circles . Will combine this in future, needs refactoring.", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "usernames_circles": "cercles de {postCreatorUsername}", "@usernames_circles": { "type": "text", "placeholders": { - "postCreatorUsername": { - - } + "postCreatorUsername": {} } }, "share_community": "Partager", "@share_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_to_community": "Partagez vers la communauté", "@share_to_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_community_title": "Une communauté", "@share_community_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_community_desc": "Partagez la publication vers une communauté dont vous faites partie.", "@share_community_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_circles": "Mes cercles", "@my_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_circles_desc": "Partagez la publication vers un ou plusieurs de vos cercles.", "@my_circles_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "world_circle_name": "Monde entier", + "world_circle_name": "Monde", "@world_circle_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "search_circles": "Rechercher dans les cercles...", "@search_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reaction_list_tap_retry": "Appuyez pour réessayer de charger les réactions.", "@reaction_list_tap_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_new": "Nouvelle publication", "@create_new": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "create_new_post_label": "Create new post", + "@create_new_post_label": { + "type": "text", + "placeholders": {} + }, + "create_new_community_post_label": "Create new communtiy post", + "@create_new_community_post_label": { + "type": "text", + "placeholders": {} + }, + "close_create_post_label": "Close create new post", + "@close_create_post_label": { + "type": "text", + "placeholders": {} }, "create_next": "Suivant", "@create_next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_photo": "Photo", "@create_photo": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "create_video": "Vidéo", + "@create_video": { + "type": "text", + "placeholders": {} }, "commenter_post_text": "Publication", "@commenter_post_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_write_something": "Écrivez quelque chose...", "@commenter_write_something": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_title": "Modifier la publication", "@edit_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_save": "Enregistrer", "@edit_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_expanded_save": "Enregistrer", "@commenter_expanded_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "commenter_expanded_join_conversation": "Participez à la conversation...", + "commenter_expanded_join_conversation": "Rejoindre la conversation...", "@commenter_expanded_join_conversation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_expanded_start_conversation": "Commencer une conversation...", "@commenter_expanded_start_conversation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_expanded_edit_comment": "Modifier le commentaire", "@commenter_expanded_edit_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "is_closed": "Publication fermée", "@is_closed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_reply_expanded_reply_comment": "Répondre au commentaire", "@comment_reply_expanded_reply_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_reply_expanded_post": "Publication", "@comment_reply_expanded_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_reply_expanded_reply_hint_text": "Votre réponse...", "@comment_reply_expanded_reply_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_posts_title": "Publications tendance", "@trending_posts_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_posts_no_trending_posts": "Il n'y a pas de publications tendance. Essayez d'actualiser la page dans quelques secondes.", "@trending_posts_no_trending_posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_posts_refresh": "Actualiser", "@trending_posts_refresh": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_view_all_comments": "Afficher tous les {commentsCount} commentaires", "@comments_view_all_comments": { "type": "text", "placeholders": { - "commentsCount": { - - } + "commentsCount": {} } }, "comments_closed_post": "Publication fermée", "@comments_closed_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_disabled": "Commentaires désactivés", "@comments_disabled": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "text_copied": "Texte copié !", "@text_copied": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_reactions_title": "Réactions à la publication", "@post_reactions_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "have_not_shared_anything": "Vous n'avez encore rien partagé.", "@have_not_shared_anything": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "user_has_not_shared_anything": "{name} n'a encore rien partagé.", "@user_has_not_shared_anything": { "type": "text", "placeholders": { - "name": { - - } + "name": {} } }, "comments_header_newest_replies": "Réponses les plus récentes", "@comments_header_newest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_newer": "Plus récents", "@comments_header_newer": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_view_newest_replies": "Voir les réponses les plus récentes", "@comments_header_view_newest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_see_newest_replies": "Voir les réponses les plus récentes", "@comments_header_see_newest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_oldest_replies": "Réponses les plus anciennes", "@comments_header_oldest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_older": "Plus anciens", "@comments_header_older": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_view_oldest_replies": "Voir les réponses les plus anciennes", "@comments_header_view_oldest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_see_oldest_replies": "Voir les réponses les plus anciennes", "@comments_header_see_oldest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "comments_header_be_the_first_replies": "Soyez le \/ la premier.ère à répondre", + "comments_header_be_the_first_replies": "Soyez le / la premier.ère à répondre", "@comments_header_be_the_first_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_newest_comments": "Commentaires les plus récents", "@comments_header_newest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_view_newest_comments": "Voir les commentaires les plus récents", "@comments_header_view_newest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_see_newest_comments": "Voir les commentaires les plus récents", "@comments_header_see_newest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_oldest_comments": "Commentaires les plus anciens", "@comments_header_oldest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_view_oldest_comments": "Voir les commentaires les plus anciens", "@comments_header_view_oldest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_see_oldest_comments": "Voir les commentaires les plus anciens", "@comments_header_see_oldest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "comments_header_be_the_first_comments": "Soyez le \/ la premier.ère à commenter", + "comments_header_be_the_first_comments": "Soyez le / la premier.ère à commenter", "@comments_header_be_the_first_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_title": "Commentaires sur la publication", "@comments_page_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_no_more_to_load": "Pas d'autres commentaires à charger", "@comments_page_no_more_to_load": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_tap_to_retry": "Appuyer pour réessayer de charger les commentaires.", "@comments_page_tap_to_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_tap_to_retry_replies": "Appuyer pour réessayer de charger les réponses.", "@comments_page_tap_to_retry_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_no_more_replies_to_load": "Pas d'autres réponses à charger", "@comments_page_no_more_replies_to_load": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_replies_title": "Réponses à la publication", "@comments_page_replies_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "disable_post_comments": "Désactiver les commentaires sur la publication", "@disable_post_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "enable_post_comments": "Activer les commentaires sur la publication", "@enable_post_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_enabled_message": "Commentaires activés pour la publication", "@comments_enabled_message": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_disabled_message": "Commentaires désactivés pour la publication", "@comments_disabled_message": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_delete": "Supprimer la publication", "@actions_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_deleted": "Publication supprimée", "@actions_deleted": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_delete_comment": "Supprimer le commentaire", "@actions_delete_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_edit_comment": "Modifier le commentaire", "@actions_edit_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_comment_deleted": "Commentaire supprimé", "@actions_comment_deleted": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_report_text": "Signaler", "@actions_report_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_reported_text": "Signalé.e", "@actions_reported_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_show_more_text": "Afficher plus", "@actions_show_more_text": { "description": "Shown for posts with long text to expand the entire text.", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_years": "an", "@time_short_years": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 3y. Keep it as short as possible", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3y. Keep it as short as possible", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_year": "1an", "@time_short_one_year": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_weeks": "sem", "@time_short_weeks": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 5w.Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 5w.Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_week": "1sem", "@time_short_one_week": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_days": "j", "@time_short_days": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 3d. Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3d. Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_day": "1j", "@time_short_one_day": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_hours": "h", "@time_short_hours": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 3h.Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3h.Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_hour": "1h", "@time_short_one_hour": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_minutes": "m", "@time_short_minutes": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 13m.Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 13m.Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_seconds": "s", "@time_short_seconds": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 13s Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 13s Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_minute": "1m", "@time_short_one_minute": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_now_text": "maintenant", "@time_short_now_text": { "description": "Shown when a post was immediately posted, as in time posted is 'now'.Should be as few characters as possible.", "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/fr/post_body_link_preview.arb b/assets/i18n/fr/post_body_link_preview.arb new file mode 100644 index 000000000..fc41d5e67 --- /dev/null +++ b/assets/i18n/fr/post_body_link_preview.arb @@ -0,0 +1,14 @@ +{ + "empty": "This link could not be previewed", + "@empty": { + "type": "text", + "placeholders": {} + }, + "error_with_description": "Failed to preview link with website error: {description}", + "@error_with_description": { + "type": "text", + "placeholders": { + "description": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/fr/post_body_media.arb b/assets/i18n/fr/post_body_media.arb new file mode 100644 index 000000000..08ae7ef87 --- /dev/null +++ b/assets/i18n/fr/post_body_media.arb @@ -0,0 +1,7 @@ +{ + "unsupported": "Type de media non pris en charge", + "@unsupported": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/fr/post_uploader.arb b/assets/i18n/fr/post_uploader.arb new file mode 100644 index 000000000..6b81afca8 --- /dev/null +++ b/assets/i18n/fr/post_uploader.arb @@ -0,0 +1,47 @@ +{ + "generic_upload_failed": "Échec du chargement", + "@generic_upload_failed": { + "type": "text", + "placeholders": {} + }, + "creating_post": "Création du post...", + "@creating_post": { + "type": "text", + "placeholders": {} + }, + "compressing_media": "Compression du média...", + "@compressing_media": { + "type": "text", + "placeholders": {} + }, + "uploading_media": "Envoi du fichier...", + "@uploading_media": { + "type": "text", + "placeholders": {} + }, + "publishing": "Publication en cours ...", + "@publishing": { + "type": "text", + "placeholders": {} + }, + "processing": "Traitement ...", + "@processing": { + "type": "text", + "placeholders": {} + }, + "success": "Succès !", + "@success": { + "type": "text", + "placeholders": {} + }, + "cancelling": "Annulation", + "@cancelling": { + "type": "text", + "placeholders": {} + }, + "cancelled": "Annulé !", + "@cancelled": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/fr/posts_stream.arb b/assets/i18n/fr/posts_stream.arb new file mode 100644 index 000000000..fe18dc0e0 --- /dev/null +++ b/assets/i18n/fr/posts_stream.arb @@ -0,0 +1,47 @@ +{ + "all_loaded": "🎉 Toutes les publications ont été chargées", + "@all_loaded": { + "type": "text", + "placeholders": {} + }, + "refreshing_drhoo_title": "Tenez bon !", + "@refreshing_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "refreshing_drhoo_subtitle": "Actualisation des posts.", + "@refreshing_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "empty_drhoo_title": "Ce forum est vide.", + "@empty_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "empty_drhoo_subtitle": "Réessayez dans quelques secondes.", + "@empty_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "failed_drhoo_title": "Impossible de charger les posts.", + "@failed_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "failed_drhoo_subtitle": "Réessayez dans quelques secondes", + "@failed_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "status_tile_empty": "Aucun post trouvé", + "@status_tile_empty": { + "type": "text", + "placeholders": {} + }, + "status_tile_no_more_to_load": "🎉 Toutes les publications ont été chargées", + "@status_tile_no_more_to_load": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/fr/user.arb b/assets/i18n/fr/user.arb index 6f5684fb5..e9b273924 100644 --- a/assets/i18n/fr/user.arb +++ b/assets/i18n/fr/user.arb @@ -3,1345 +3,978 @@ "@thousand_postfix": { "description": "For eg. communty has 3k members", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "million_postfix": "million", "@million_postfix": { "description": "For eg. user has 3m followers", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "billion_postfix": "milliard", "@billion_postfix": { "description": "For eg. World circle has 7.5b people", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "translate_see_translation": "Voir la traduction", "@translate_see_translation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "translate_show_original": "Afficher l'original", "@translate_show_original": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_lists_account": "1 Compte", "@follows_lists_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_lists_accounts": "{prettyUsersCount} Comptes", "@follows_lists_accounts": { "description": "prettyUsersCount will be 3m, 50k etc.. so we endup with final string 3k Accounts", "type": "text", "placeholders": { - "prettyUsersCount": { - - } + "prettyUsersCount": {} } }, - "edit_profile_user_name_taken": "Le nom d'utilisateur.trice @{username} est pris", + "edit_profile_user_name_taken": "Le pseudo @{username} est déjà pris", "@edit_profile_user_name_taken": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, - "profile_action_deny_connection": "Refuser la demande de connexion", + "profile_action_deny_connection": "Décliner la demande de connexion", "@profile_action_deny_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_action_user_blocked": "Utilisateur.trice bloqué.e", "@profile_action_user_blocked": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_action_user_unblocked": "Utilisateur.trice débloqué.e", "@profile_action_user_unblocked": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_action_cancel_connection": "Annuler la demande de connexion", "@profile_action_cancel_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "profile_url_invalid_error": "Veuillez fournir une adresse web valide.", + "profile_url_invalid_error": "Veuillez fournir un url valide.", "@profile_url_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "profile_location_length_error": "La nom de localité ne peut pas être plus long que {maxLength} caractères.", + "profile_location_length_error": "La nom de l'emplacement ne peut pas être plus long que {maxLength} caractères.", "@profile_location_length_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "profile_bio_length_error": "La bio ne peut pas être plus longue que {maxLength} caractères.", "@profile_bio_length_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "follow_button_follow_text": "Suivre", "@follow_button_follow_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_button_unfollow_text": "Ne plus suivre", "@follow_button_unfollow_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "edit_profile_username": "Nom d'utilisateur.trice", + "edit_profile_username": "Pseudo", "@edit_profile_username": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_update_account_lists": "Mettre à jour les listes de comptes", "@add_account_update_account_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_to_lists": "Ajouter le compte à la liste", "@add_account_to_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_update_lists": "Mettre à jour les listes", "@add_account_update_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_save": "Enregistrer", "@add_account_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_done": "Terminé", "@add_account_done": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_success": "Opération réussie", "@add_account_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "emoji_field_none_selected": "Aucune émoticône sélectionnée", "@emoji_field_none_selected": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "emoji_search_none_found": "Aucune émoticône trouvée correspondant à '{searchQuery}'.", "@emoji_search_none_found": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "follow_lists_title": "Mes listes", "@follow_lists_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_lists_search_for": "Rechercher une liste...", "@follow_lists_search_for": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_lists_no_list_found": "Aucune liste trouvée.", "@follow_lists_no_list_found": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_lists_no_list_found_for": "Aucune liste trouvée pour '{searchQuery}'", "@follow_lists_no_list_found_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "list_name_empty_error": "Le nom de liste ne peut pas être vide.", "@list_name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "list_name_range_error": "Le nom de liste ne peut pas être plus long que {maxLength} caractères.", "@list_name_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "circle_name_empty_error": "Le nom de cercle ne peut pas être vide.", "@circle_name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "circle_name_range_error": "Le nom de cercle ne peut pas être plus long que {maxLength} caractères.", "@circle_name_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "save_follows_list_name": "Nom", "@save_follows_list_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "save_follows_list_hint_text": "par exemple : Voyage, Photographie", + "save_follows_list_hint_text": "Exemple : Voyage, Photographie", "@save_follows_list_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_name_taken": "Le nom de liste '{listName}' est pris", "@save_follows_list_name_taken": { "type": "text", "placeholders": { - "listName": { - - } + "listName": {} } }, "save_follows_list_emoji": "Émoticône", "@save_follows_list_emoji": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_users": "Utilisateurs.trices", "@save_follows_list_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_edit": "Modifier la liste", "@save_follows_list_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_create": "Créer une liste", "@save_follows_list_create": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_save": "Enregistrer", "@save_follows_list_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "save_follows_list_emoji_required_error": "Émoticône est requise", + "save_follows_list_emoji_required_error": "Une émoticône est requise", "@save_follows_list_emoji_required_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_list_edit": "Modifier", "@follows_list_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_list_header_title": "Utilisateurs.trices", "@follows_list_header_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_name": "Nom", "@edit_profile_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "edit_profile_url": "Site web", + "edit_profile_url": "Url", "@edit_profile_url": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "edit_profile_location": "Localité", + "edit_profile_location": "Emplacement", "@edit_profile_location": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_bio": "Bio", "@edit_profile_bio": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_followers_count": "Nombre d'abonné.e.s", "@edit_profile_followers_count": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "edit_profile_community_posts": "Posts de la communauté", + "@edit_profile_community_posts": { + "type": "text", + "placeholders": {} }, "edit_profile_title": "Modifier le profil", "@edit_profile_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_save_text": "Enregistrer", "@edit_profile_save_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_pick_image": "Choisir une image", "@edit_profile_pick_image": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_delete": "Supprimer", "@edit_profile_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_pick_image_error_too_large": "Image trop grande (limite : {limit} Mo)", "@edit_profile_pick_image_error_too_large": { "type": "text", "placeholders": { - "limit": { - - } + "limit": {} } }, "tile_following": " · Abonné.e à", "@tile_following": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "following_text": "Abonné.e à", "@following_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "following_resource_name": "utilisateurs.trices auxquels.elles vous êtes abonné.e", "@following_resource_name": { "description": "Eg: Search followed users.., No followed users found. etc ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "tile_delete": "Supprimer", "@tile_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite": "Inviter", "@invite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "uninvite": "Annuler l'invitation", "@uninvite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_member": "Membre", "@invite_member": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_someone_message": "Bonjour, je voudrais vous inviter à Okuna! Premièrement, téléchargez l'application sur iTunes ({iosLink}) ou le Play Store ({androidLink}). Deuxièmement, collez ce lien d'invitation personnalisé dans le formulaire \"Inscription\" dans l'application Okuna : {inviteLink}", "@invite_someone_message": { "type": "text", "placeholders": { - "iosLink": { - - }, - "androidLink": { - - }, - "inviteLink": { - - } + "iosLink": {}, + "androidLink": {}, + "inviteLink": {} } }, "connections_header_circle_desc": "Le cercle où toutes vos connexions sont ajoutées.", "@connections_header_circle_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connections_header_users": "Utilisateurs.trices", "@connections_header_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connection_pending": "En attente", "@connection_pending": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connection_circle_edit": "Modifier", "@connection_circle_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connections_circle_delete": "Supprimer", "@connections_circle_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_name": "Nom", "@save_connection_circle_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_hint": "par exemple: amis, famille, travail.", "@save_connection_circle_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_color_name": "Couleur ", "@save_connection_circle_color_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_color_hint": "(Appuyez pour changer)", "@save_connection_circle_color_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_users": "Utilisateurs.trices", "@save_connection_circle_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_edit": "Modifier le cercle", "@save_connection_circle_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_create": "Créer un cercle", "@save_connection_circle_create": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_save": "Enregistrer", "@save_connection_circle_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_connection_circle_save": "Enregistrer", "@update_connection_circle_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_connection_circle_updated": "Connexion mise à jour", "@update_connection_circle_updated": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_connection_circles_title": "Mettre à jour les cercles de connexions", "@update_connection_circles_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_connection_with": "Confirmer la connexion avec {userName}", "@confirm_connection_with": { "type": "text", "placeholders": { - "userName": { - - } + "userName": {} } }, "confirm_connection_add_connection": "Ajouter la connexion au cercle", "@confirm_connection_add_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_connection_connection_confirmed": "Connexion confirmée", "@confirm_connection_connection_confirmed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_connection_confirm_text": "Confirmer", "@confirm_connection_confirm_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connect_to_user_connect_with_username": "Se connecter avec {userName}", "@connect_to_user_connect_with_username": { "type": "text", "placeholders": { - "userName": { - - } + "userName": {} } }, "connect_to_user_add_connection": "Ajouter la connexion au cercle", "@connect_to_user_add_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connect_to_user_done": "Terminé", "@connect_to_user_done": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connect_to_user_request_sent": "Demande de connexion envoyée", "@connect_to_user_request_sent": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "remove_account_from_list": "Supprimer le compte des listes", "@remove_account_from_list": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "remove_account_from_list_success": "Opération réussie", "@remove_account_from_list_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_title": "Confirmation", "@confirm_block_user_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_info": "Vous ne verrez pas vos publications respectives ni ne pourrez interagir de quelque manière que ce soit.", "@confirm_block_user_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_yes": "Oui", "@confirm_block_user_yes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_no": "Non", "@confirm_block_user_no": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_blocked": "Utilisateur.trice bloqué.e.", "@confirm_block_user_blocked": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_question": "Êtes-vous sûr.e de vouloir bloquer @{username}?", "@confirm_block_user_question": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "save_connection_circle_name_taken": "Le nom de cercle '{takenConnectionsCircleName}' est pris", "@save_connection_circle_name_taken": { "type": "text", "placeholders": { - "takenConnectionsCircleName": { - - } + "takenConnectionsCircleName": {} } }, "timeline_filters_title": "Filtres du fil d'actualités", "@timeline_filters_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_search_desc": "Recherche de cercles et de listes...", "@timeline_filters_search_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_clear_all": "Tout effacer", "@timeline_filters_clear_all": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_apply_all": "Appliquer les filtres", "@timeline_filters_apply_all": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_circles": "Cercles", "@timeline_filters_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_lists": "Listes", "@timeline_filters_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "followers_title": "Abonné.e.s", "@followers_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follower_singular": "abonné.e", "@follower_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follower_plural": "abonné.e.s", "@follower_plural": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_title": "Supprimer mon compte", "@delete_account_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_current_pwd": "Mot de passe actuel", "@delete_account_current_pwd": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_current_pwd_hint": "Entrez votre mot de passe actuel", "@delete_account_current_pwd_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_next": "Suivant", "@delete_account_next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_title": "Confirmation", "@delete_account_confirmation_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_desc": "Êtes-vous sûr.e de vouloir supprimer votre compte ?", "@delete_account_confirmation_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_desc_info": "Ceci est une action permanente et irréversible.", "@delete_account_confirmation_desc_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_no": "Non", "@delete_account_confirmation_no": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_yes": "Oui", "@delete_account_confirmation_yes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_goodbye": "Au revoir 😢", "@delete_account_confirmation_goodbye": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_create_title": "Créer une invitation", "@invites_create_create_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_edit_title": "Modifier l'invitation", "@invites_create_edit_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_save": "Enregistrer", "@invites_create_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_create": "Créer", "@invites_create_create": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_name_title": "Pseudonyme", "@invites_create_name_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_name_hint": "par exemple : Madame Une Telle", "@invites_create_name_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_pending": "En attente", "@invites_pending": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_delete": "Supprimer", "@invites_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_invite_text": "Inviter", "@invites_invite_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_yourself": "Partager l'invitation par vous-même", "@invites_share_yourself": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_yourself_desc": "Choisissez parmi les applications de messagerie, etc.", "@invites_share_yourself_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_email": "Partager l'invitation par courriel", "@invites_share_email": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_text": "Adresse courriel", "@invites_email_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_hint": "par exemple : madameunetelle@courriel.com", "@invites_email_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_invite_text": "Invitation par courriel", "@invites_email_invite_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_send_text": "Envoyer", "@invites_email_send_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_sent_text": "Courriel d'invitation envoyé", "@invites_email_sent_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_email_desc": "Nous enverrons en votre nom un courriel d'invitation avec des instructions", "@invites_share_email_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_edit_text": "Modifier", "@invites_edit_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_title": "Mes invitations", "@invites_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_accepted_title": "Acceptée(s)", "@invites_accepted_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_accepted_group_name": "invitation(s) acceptée(s)", "@invites_accepted_group_name": { "description": "Egs where this will end up: Accepted invites (capitalised title), Search accepted invites, See all accepted invites ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_accepted_group_item_name": "invitation acceptée", "@invites_accepted_group_item_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_pending_group_name": "invitation(s) en attente", "@invites_pending_group_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_pending_group_item_name": "invitation en attente", "@invites_pending_group_item_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_none_used": "Il semble que vous n'ayez utilisé aucune invitation.", "@invites_none_used": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_none_left": "Vous n'avez pas d'invitations disponibles.", "@invites_none_left": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_invite_a_friend": "Inviter un.e ami.e", "@invites_invite_a_friend": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_refresh": "Actualiser", "@invites_refresh": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "language_settings_title": "Paramètres de langue", "@language_settings_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "language_settings_save": "Enregistrer", "@language_settings_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "language_settings_saved_success": "Langue changée avec succès", "@language_settings_saved_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "groups_see_all": "Voir tous.tes les {groupName}", "@groups_see_all": { "description": "Can be, See all joined communities, See all pending invites, See all moderated communities etc. ", "type": "text", "placeholders": { - "groupName": { - - } + "groupName": {} } }, "invites_joined_with": "Inscrit.e avec le nom d'utilisateur.trice @{username}", "@invites_joined_with": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "invites_pending_email": "En attente, courriel d'invitation envoyé à {email}", "@invites_pending_email": { "type": "text", "placeholders": { - "email": { - - } + "email": {} } }, "timeline_filters_no_match": "Aucun résultat pour '{searchQuery}'.", "@timeline_filters_no_match": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "clear_application_cache_text": "Vider le cache", "@clear_application_cache_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_application_cache_desc": "Effacer les messages du cache, comptes, images et plus.", "@clear_application_cache_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_application_cache_success": "Cache vidé avec succès", "@clear_application_cache_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_application_cache_failure": "Le cache n'a pas pu être vidé", "@clear_application_cache_failure": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_title": "Rejet des lignes directrices", "@confirm_guidelines_reject_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_info": "Vous ne pouvez pas utiliser Okuna jusqu'à ce que vous acceptiez les lignes directrices.", "@confirm_guidelines_reject_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_chat_with_team": "Discutez avec l'équipe.", "@confirm_guidelines_reject_chat_with_team": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_chat_immediately": "Commencer une discussion immédiatement.", "@confirm_guidelines_reject_chat_immediately": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_chat_community": "Discutez avec la communauté.", "@confirm_guidelines_reject_chat_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_join_slack": "Rejoignez le canal Slack d'Okuna.", "@confirm_guidelines_reject_join_slack": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_go_back": "Revenir en arrière", "@confirm_guidelines_reject_go_back": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_delete_account": "Supprimer mon compte", "@confirm_guidelines_reject_delete_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "guidelines_desc": "Veuillez s.v.p. prendre un moment pour lire et accepter nos lignes directrices.", + "guidelines_desc": "Veuillez prendre un moment pour lire et accepter nos directives générales.", "@guidelines_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "guidelines_accept": "Accepter", "@guidelines_accept": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "guidelines_reject": "Rejeter", "@guidelines_reject": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_title": "Changer l'adresse courriel", "@change_email_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_email_text": "Adresse courriel", "@change_email_email_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_hint_text": "Entrez votre nouvelle adresse courriel", "@change_email_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_error": "Adresse courriel déjà inscrite", "@change_email_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_save": "Enregistrer", "@change_email_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_success_info": "Nous avons envoyé un lien de confirmation à votre nouvelle adresse courriel, cliquez-le pour vérifier votre nouvelle adresse courriel", "@change_email_success_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_title": "Réinitialiser les préférences", "@clear_app_preferences_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_desc": "Réinitialiser les préférences de l'application. Actuellement, ce n'est que l'ordre préféré d'affichage des commentaires.", "@clear_app_preferences_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_cleared_successfully": "Préférences réinitialisées avec succès", "@clear_app_preferences_cleared_successfully": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "email_verification_successful": "Super ! Votre adresse courriel est maintenant vérifiée", "@email_verification_successful": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "email_verification_error": "Oups ! Votre jeton n'était pas valide ou a expiré, veuillez s.v.p. réessayer", "@email_verification_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_error": "Impossible d'effacer les préférences", "@clear_app_preferences_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "disconnect_from_user_success": "Déconnecté.e avec succès", "@disconnect_from_user_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "block_user": "Bloquer l'utilisateur.trice", "@block_user": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "unblock_user": "Débloquer l'utilisateur.trice", "@unblock_user": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "disconnect_from_user": "Se déconnecter de {userName}", "@disconnect_from_user": { "type": "text", "placeholders": { - "userName": { - - } + "userName": {} } }, "circle_peoples_count": "{prettyUsersCount} personnes", "@circle_peoples_count": { "type": "text", "placeholders": { - "prettyUsersCount": { - - } + "prettyUsersCount": {} } }, "follows_list_accounts_count": "{prettyUsersCount} comptes", "@follows_list_accounts_count": { "type": "text", "placeholders": { - "prettyUsersCount": { - - } + "prettyUsersCount": {} } } } \ No newline at end of file diff --git a/assets/i18n/fr/user_search.arb b/assets/i18n/fr/user_search.arb index bcfcf66a7..66909c4e4 100644 --- a/assets/i18n/fr/user_search.arb +++ b/assets/i18n/fr/user_search.arb @@ -2,32 +2,24 @@ "search_text": "Rechercher...", "@search_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities": "Communautés", "@communities": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "users": "Utilisateurs.trices", "@users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "list_search_text": "Recherche {resourcePluralName} ...", "@list_search_text": { "description": "resourcePluralName can take many forms foreg. Search members... , Search accepted invites, Search communities.. etc.", "type": "text", "placeholders": { - "resourcePluralName": { - - } + "resourcePluralName": {} } }, "list_no_results_found": "Pas de {resourcePluralName} trouvé.e.s.", @@ -35,66 +27,50 @@ "description": "Used in a generic list widget. Can be No users found. No communities found. No pending invites found. Its always a plural. ", "type": "text", "placeholders": { - "resourcePluralName": { - - } + "resourcePluralName": {} } }, "list_refresh_text": "Actualiser", "@list_refresh_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "list_retry": "Appuyez pour réessayer.", "@list_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "cancel": "Annuler", "@cancel": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "searching_for": "Recherche de '{searchQuery}'", "@searching_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "no_results_for": "Aucun résultat pour '{searchQuery}'.", "@no_results_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "no_communities_for": "Aucune communauté trouvée pour '{searchQuery}'.", "@no_communities_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "no_users_for": "Aucun.e utilisateur.trice trouvé.e pour '{searchQuery}'.", "@no_users_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } } } \ No newline at end of file diff --git a/assets/i18n/fr/video_picker.arb b/assets/i18n/fr/video_picker.arb new file mode 100644 index 000000000..d36c54ccd --- /dev/null +++ b/assets/i18n/fr/video_picker.arb @@ -0,0 +1,12 @@ +{ + "from_gallery": "Depuis la galerie", + "@from_gallery": { + "type": "text", + "placeholders": {} + }, + "from_camera": "Depuis l'appareil photo", + "@from_camera": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/hu/application_settings.arb b/assets/i18n/hu/application_settings.arb new file mode 100644 index 000000000..d160fdf29 --- /dev/null +++ b/assets/i18n/hu/application_settings.arb @@ -0,0 +1,82 @@ +{ + "videos": "Videók", + "@videos": { + "type": "text", + "placeholders": {} + }, + "link_previews": "Link previews", + "@link_previews": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay": "Automatikus lejátszás", + "@videos_autoplay": { + "type": "text", + "placeholders": {} + }, + "link_previews_show": "Show", + "@link_previews_show": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_always": "Mindig", + "@videos_autoplay_always": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_wifi_only": "Csak Wi-Fi hálózaton", + "@videos_autoplay_wifi_only": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_never": "Soha", + "@videos_autoplay_never": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_always": "Always", + "@link_previews_autoplay_always": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_wifi_only": "Wifi only", + "@link_previews_autoplay_wifi_only": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_never": "Never", + "@link_previews_autoplay_never": { + "type": "text", + "placeholders": {} + }, + "videos_sound": "Hang", + "@videos_sound": { + "type": "text", + "placeholders": {} + }, + "tap_to_change": "(Koppints a módosításhoz)", + "@tap_to_change": { + "type": "text", + "placeholders": {} + }, + "videos_sound_enabled": "Engedélyezve", + "@videos_sound_enabled": { + "type": "text", + "placeholders": {} + }, + "videos_sound_disabled": "Letiltva", + "@videos_sound_disabled": { + "type": "text", + "placeholders": {} + }, + "comment_sort_newest_first": "Újak elől", + "@comment_sort_newest_first": { + "type": "text", + "placeholders": {} + }, + "comment_sort_oldest_first": "Régiek elől", + "@comment_sort_oldest_first": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/hu/auth.arb b/assets/i18n/hu/auth.arb new file mode 100644 index 000000000..12599d25c --- /dev/null +++ b/assets/i18n/hu/auth.arb @@ -0,0 +1,531 @@ +{ + "headline": "Egy jobb közösségi hálózat.", + "@headline": { + "type": "text", + "placeholders": {} + }, + "login": "Belépés", + "@login": { + "type": "text", + "placeholders": {} + }, + "email_empty_error": "Az email nem lehet üres.", + "@email_empty_error": { + "type": "text", + "placeholders": {} + }, + "email_invalid_error": "Kérünk, adj meg egy érvényes email címet.", + "@email_invalid_error": { + "type": "text", + "placeholders": {} + }, + "username_empty_error": "A felhasználónév nem lehet üres.", + "@username_empty_error": { + "type": "text", + "placeholders": {} + }, + "username_characters_error": "A felhasználónév csak alfanumerikus karaktereket és alulvonásokat tartalmazhat.", + "@username_characters_error": { + "type": "text", + "placeholders": {} + }, + "username_maxlength_error": "A felhasználónév nem lehet {maxLength} karakternél hosszabb.", + "@username_maxlength_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "create_account": "Regisztráció", + "@create_account": { + "type": "text", + "placeholders": {} + }, + "create_acc__lets_get_started": "Lássunk neki", + "@create_acc__lets_get_started": { + "type": "text", + "placeholders": {} + }, + "create_acc__welcome_to_beta": "Üdv a bétában!", + "@create_acc__welcome_to_beta": { + "type": "text", + "placeholders": {} + }, + "create_acc__previous": "Vissza", + "@create_acc__previous": { + "type": "text", + "placeholders": {} + }, + "create_acc__next": "Következő", + "@create_acc__next": { + "type": "text", + "placeholders": {} + }, + "create_acc__create_account": "Fiók létrehozása", + "@create_acc__create_account": { + "type": "text", + "placeholders": {} + }, + "create_acc__paste_link": "Illeszd be a regisztrációs linkedet", + "@create_acc__paste_link": { + "type": "text", + "placeholders": {} + }, + "create_acc__paste_password_reset_link": "Illeszd be a jelszó-visszaállítási linkedet", + "@create_acc__paste_password_reset_link": { + "type": "text", + "placeholders": {} + }, + "create_acc__paste_link_help_text": "Használd a \"Join Openbook\" gomb linkjét a meghívó e-mail-edből.", + "@create_acc__paste_link_help_text": { + "type": "text", + "placeholders": {} + }, + "create_acc__link_empty_error": "A link mező nem lehet üres.", + "@create_acc__link_empty_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__link_invalid_error": "A megadott link érvénytelen.", + "@create_acc__link_invalid_error": { + "type": "text", + "placeholders": {} + }, + "password_empty_error": "A jelszó mező nem lehet üres.", + "@password_empty_error": { + "type": "text", + "placeholders": {} + }, + "password_range_error": "A jelszó hosszúsága {minLength} és {maxLength} kell legyen.", + "@password_range_error": { + "type": "text", + "placeholders": { + "minLength": {}, + "maxLength": {} + } + }, + "name_empty_error": "A név mező nem lehet üres.", + "@name_empty_error": { + "type": "text", + "placeholders": {} + }, + "name_range_error": "A név hosszúsága {minLength} és {maxLength} kell legyen.", + "@name_range_error": { + "type": "text", + "placeholders": { + "minLength": {}, + "maxLength": {} + } + }, + "description_empty_error": "A leírás mező nem lehet üres.", + "@description_empty_error": { + "type": "text", + "placeholders": {} + }, + "description_range_error": "A leírás hosszúsága {minLength} és {maxLength} kell legyen.", + "@description_range_error": { + "type": "text", + "placeholders": { + "minLength": {}, + "maxLength": {} + } + }, + "reset_password_success_title": "Készen állunk!", + "@reset_password_success_title": { + "type": "text", + "placeholders": {} + }, + "reset_password_success_info": "A jelszavad sikeresen meg lett változtatva", + "@reset_password_success_info": { + "type": "text", + "placeholders": {} + }, + "create_acc__request_invite": "Nincs meghívód? Kérj egyet itt.", + "@create_acc__request_invite": { + "type": "text", + "placeholders": {} + }, + "create_acc__subscribe": "Kérés", + "@create_acc__subscribe": { + "type": "text", + "placeholders": {} + }, + "create_acc__subscribe_to_waitlist_text": "Kérj egy meghívót!", + "@create_acc__subscribe_to_waitlist_text": { + "type": "text", + "placeholders": {} + }, + "create_acc__congratulations": "Gratulálunk!", + "@create_acc__congratulations": { + "type": "text", + "placeholders": {} + }, + "create_acc__your_subscribed": "Te vagy a(z) {0}. a várólistán.", + "@create_acc__your_subscribed": { + "type": "text", + "placeholders": {} + }, + "create_acc__almost_there": "Mindjárt kész...", + "@create_acc__almost_there": { + "type": "text", + "placeholders": {} + }, + "create_acc__what_name": "Hogy hívnak?", + "@create_acc__what_name": { + "type": "text", + "placeholders": {} + }, + "create_acc__name_placeholder": "Kis Árpád", + "@create_acc__name_placeholder": { + "type": "text", + "placeholders": {} + }, + "create_acc__name_empty_error": "😱 A neved nem lehet üres.", + "@create_acc__name_empty_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__name_length_error": "😱 A neved nem lehet 50 karakternél hosszabb. (Ha az, akkor elnézést kérünk.)", + "@create_acc__name_length_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__name_characters_error": "😅 Egy név (jelenleg) csak alfanumerikus karakterekből állhat.", + "@create_acc__name_characters_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__what_username": "Válassz egy felhasználónevet", + "@create_acc__what_username": { + "type": "text", + "placeholders": {} + }, + "create_acc__username_placeholder": "szegenylegeny", + "@create_acc__username_placeholder": { + "type": "text", + "placeholders": {} + }, + "create_acc__username_empty_error": "😱 A felhasználónév nem lehet üres.", + "@create_acc__username_empty_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__username_length_error": "😅 A felhasználónév nem lehet 30 karakternél hosszabb.", + "@create_acc__username_length_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__username_characters_error": "😅 A felhasználónév csak alfanumerikus karaktereket és alulvonásokat tartalmazhat.", + "@create_acc__username_characters_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__username_taken_error": "😩 A(z) @%s felhasználónév foglalt.", + "@create_acc__username_taken_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__username_server_error": "😭 Problémákba ütköztek a szervereink! Kérünk, próbáld újra pár perc múlva.", + "@create_acc__username_server_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__what_email": "Mi az e-mail címed?", + "@create_acc__what_email": { + "type": "text", + "placeholders": {} + }, + "create_acc__email_placeholder": "kis_otto@mail.com", + "@create_acc__email_placeholder": { + "type": "text", + "placeholders": {} + }, + "create_acc__email_empty_error": "😱 Az e-mail címed nem lehet üres", + "@create_acc__email_empty_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__email_invalid_error": "😅 Kérünk, adj meg egy érvényes e-mail címet.", + "@create_acc__email_invalid_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__email_taken_error": "🤔 Már létezik egy fiók ezzel az e-mail címmel.", + "@create_acc__email_taken_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__email_server_error": "😭 Problémákba ütköztek a szervereink! Kérünk, próbáld újra pár perc múlva.", + "@create_acc__email_server_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__what_password": "Adj meg egy jelszót", + "@create_acc__what_password": { + "type": "text", + "placeholders": {} + }, + "create_acc_password_hint_text": "({minLength}-{maxLength} karakter)", + "@create_acc_password_hint_text": { + "type": "text", + "placeholders": { + "minLength": {}, + "maxLength": {} + } + }, + "create_acc__what_password_subtext": "(min. 10 karakter)", + "@create_acc__what_password_subtext": { + "type": "text", + "placeholders": {} + }, + "create_acc__password_empty_error": "😱 A jelszavad nem lehet üres", + "@create_acc__password_empty_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__password_length_error": "😅 A jelszónak min. 8 és max. 64 karakter hosszúnak kell lennie.", + "@create_acc__password_length_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__what_avatar": "Válassz ki egy profilképet", + "@create_acc__what_avatar": { + "type": "text", + "placeholders": {} + }, + "create_acc__avatar_tap_to_change": "Koppints a módosításhoz", + "@create_acc__avatar_tap_to_change": { + "type": "text", + "placeholders": {} + }, + "create_acc__avatar_choose_camera": "Készíts fotót", + "@create_acc__avatar_choose_camera": { + "type": "text", + "placeholders": {} + }, + "create_acc__avatar_choose_gallery": "Meglévő fotó használata", + "@create_acc__avatar_choose_gallery": { + "type": "text", + "placeholders": {} + }, + "create_acc__avatar_remove_photo": "Fotó törlése", + "@create_acc__avatar_remove_photo": { + "type": "text", + "placeholders": {} + }, + "create_acc__done": "Fiók létrehozása", + "@create_acc__done": { + "type": "text", + "placeholders": {} + }, + "create_acc__done_subtext": "Ezt a profilod beállításaiban módosíthatod.", + "@create_acc__done_subtext": { + "type": "text", + "placeholders": {} + }, + "create_acc__done_created": "A fiókod sikeresen létrejött! Íme a felhasználóneved: ", + "@create_acc__done_created": { + "type": "text", + "placeholders": {} + }, + "create_acc__submit_loading_title": "Csak egy pillanat!", + "@create_acc__submit_loading_title": { + "type": "text", + "placeholders": {} + }, + "create_acc__submit_loading_desc": "Létrehozzuk a fiókodat.", + "@create_acc__submit_loading_desc": { + "type": "text", + "placeholders": {} + }, + "create_acc__submit_error_title": "Óh ne...", + "@create_acc__submit_error_title": { + "type": "text", + "placeholders": {} + }, + "create_acc__submit_error_desc_server": "😭 Problémákba ütköztek a szervereink! Kérünk, próbáld újra pár perc múlva.", + "@create_acc__submit_error_desc_server": { + "type": "text", + "placeholders": {} + }, + "create_acc__submit_error_desc_validation": "😅 Úgy fest, valamelyik információ nem volt megfelelő. Kérünk, ellenőrizd és próbáld újra.", + "@create_acc__submit_error_desc_validation": { + "type": "text", + "placeholders": {} + }, + "create_acc__done_title": "Hurrá!", + "@create_acc__done_title": { + "type": "text", + "placeholders": {} + }, + "create_acc__done_description": "A fiókod sikeresen létrejött.", + "@create_acc__done_description": { + "type": "text", + "placeholders": {} + }, + "create_acc__your_username_is": "A felhasználóneved ", + "@create_acc__your_username_is": { + "type": "text", + "placeholders": {} + }, + "create_acc__can_change_username": "Ha akarod, bármikor megváltoztathatod azt a profiloldaladon keresztül.", + "@create_acc__can_change_username": { + "type": "text", + "placeholders": {} + }, + "create_acc__done_continue": "Belépés", + "@create_acc__done_continue": { + "type": "text", + "placeholders": {} + }, + "create_acc__one_last_thing": "Még egy apró dolog...", + "@create_acc__one_last_thing": { + "type": "text", + "placeholders": {} + }, + "create_acc__register": "Regisztráció", + "@create_acc__register": { + "type": "text", + "placeholders": {} + }, + "create_acc__are_you_legal_age": "Elmúltál már 16 éves?", + "@create_acc__are_you_legal_age": { + "type": "text", + "placeholders": {} + }, + "login__login": "Folytatás", + "@login__login": { + "type": "text", + "placeholders": {} + }, + "login__previous": "Előző", + "@login__previous": { + "type": "text", + "placeholders": {} + }, + "login__title": "Üdv újra!", + "@login__title": { + "type": "text", + "placeholders": {} + }, + "login__subtitle": "A folytatáshoz add meg a belépési adataidat.", + "@login__subtitle": { + "type": "text", + "placeholders": {} + }, + "login__forgot_password": "Elfelejtett jelszó", + "@login__forgot_password": { + "type": "text", + "placeholders": {} + }, + "login__forgot_password_subtitle": "Add meg a felhasználóneved vagy e-mail címed", + "@login__forgot_password_subtitle": { + "type": "text", + "placeholders": {} + }, + "login__username_label": "Felhasználónév", + "@login__username_label": { + "type": "text", + "placeholders": {} + }, + "login__password_label": "Jelszó", + "@login__password_label": { + "type": "text", + "placeholders": {} + }, + "login__email_label": "E-mail cím", + "@login__email_label": { + "type": "text", + "placeholders": {} + }, + "login__or_text": "vagy", + "@login__or_text": { + "type": "text", + "placeholders": {} + }, + "login__password_empty_error": "A jelszó szükséges.", + "@login__password_empty_error": { + "type": "text", + "placeholders": {} + }, + "login__password_length_error": "A jelszónak min. 8 és max. 64 karakter hosszúnak kell lennie.", + "@login__password_length_error": { + "type": "text", + "placeholders": {} + }, + "login__username_empty_error": "A felhasználónév szükséges.", + "@login__username_empty_error": { + "type": "text", + "placeholders": {} + }, + "login__username_length_error": "A felhasználónév nem lehet 30 karakternél hosszabb.", + "@login__username_length_error": { + "type": "text", + "placeholders": {} + }, + "login__username_characters_error": "A felhasználónév csak alfanumerikus karaktereket és alulvonásokat tartalmazhat.", + "@login__username_characters_error": { + "type": "text", + "placeholders": {} + }, + "login__credentials_mismatch_error": "A megadott belépési adatok nem megfelelőek.", + "@login__credentials_mismatch_error": { + "type": "text", + "placeholders": {} + }, + "login__server_error": "Hoppsz... Szerverproblémákba ütköztünk. Kérünk, próbáld újra pár perc múlva.", + "@login__server_error": { + "type": "text", + "placeholders": {} + }, + "login__connection_error": "Nem tudjuk elérni a szervereinket. Van működő internetkapcsolatod?", + "@login__connection_error": { + "type": "text", + "placeholders": {} + }, + "change_password_title": "Jelszó megváltoztatása", + "@change_password_title": { + "type": "text", + "placeholders": {} + }, + "change_password_current_pwd": "Jelenlegi jelszó", + "@change_password_current_pwd": { + "type": "text", + "placeholders": {} + }, + "change_password_current_pwd_hint": "Írd be a jelenlegi jelszavad", + "@change_password_current_pwd_hint": { + "type": "text", + "placeholders": {} + }, + "change_password_current_pwd_incorrect": "A megadott jelszó helytelen", + "@change_password_current_pwd_incorrect": { + "type": "text", + "placeholders": {} + }, + "change_password_new_pwd": "Új jelszó", + "@change_password_new_pwd": { + "type": "text", + "placeholders": {} + }, + "change_password_new_pwd_hint": "Add meg az új jelszavad", + "@change_password_new_pwd_hint": { + "type": "text", + "placeholders": {} + }, + "change_password_new_pwd_error": "Kérünk, bizonyosodj meg arról, hogy a jelszavad hosszúsága 10 és 100 karakter között van", + "@change_password_new_pwd_error": { + "type": "text", + "placeholders": {} + }, + "change_password_save_text": "Mentés", + "@change_password_save_text": { + "type": "text", + "placeholders": {} + }, + "change_password_save_success": "Remek! Jelszavad sikeresen módosításra került", + "@change_password_save_success": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/hu/community.arb b/assets/i18n/hu/community.arb new file mode 100644 index 000000000..77bbe51a6 --- /dev/null +++ b/assets/i18n/hu/community.arb @@ -0,0 +1,752 @@ +{ + "no": "Nem", + "@no": { + "type": "text", + "placeholders": {} + }, + "yes": "Igen", + "@yes": { + "type": "text", + "placeholders": {} + }, + "button_staff": "Staff", + "@button_staff": { + "type": "text", + "placeholders": {} + }, + "button_rules": "Szabályok", + "@button_rules": { + "type": "text", + "placeholders": {} + }, + "community": "közösség", + "@community": { + "type": "text", + "placeholders": {} + }, + "communities": "közösség", + "@communities": { + "type": "text", + "placeholders": {} + }, + "type_public": "Nyilvános", + "@type_public": { + "type": "text", + "placeholders": {} + }, + "type_private": "Zárt", + "@type_private": { + "type": "text", + "placeholders": {} + }, + "member_capitalized": "tag", + "@member_capitalized": { + "type": "text", + "placeholders": {} + }, + "members_capitalized": "tag", + "@members_capitalized": { + "type": "text", + "placeholders": {} + }, + "admin_desc": "Ezáltal a tag módosíthatja a közösség beállításait, adminisztrátorait, moderátorait és letiltott felhasználóit.", + "@admin_desc": { + "type": "text", + "placeholders": {} + }, + "confirmation_title": "Megerősítés", + "@confirmation_title": { + "type": "text", + "placeholders": {} + }, + "retry_loading_posts": "Koppints az újrapróbálkozáshoz", + "@retry_loading_posts": { + "type": "text", + "placeholders": {} + }, + "admin_add_confirmation": "Biztosan ki szeretnéd nevezni @{username}-t a közösség adminisztrátoraként?", + "@admin_add_confirmation": { + "type": "text", + "placeholders": { + "username": {} + } + }, + "ban_confirmation": "Biztosan le szeretnéd tiltani @{username}-t?", + "@ban_confirmation": { + "type": "text", + "placeholders": { + "username": {} + } + }, + "ban_desc": "Ezáltal a felhasználó közösségi tagsága törölve lesz és nem kérelmezhet újat.", + "@ban_desc": { + "type": "text", + "placeholders": {} + }, + "moderator_add_confirmation": "Biztosan ki szeretnéd nevezni @{username}-t a közösség moderátoraként?", + "@moderator_add_confirmation": { + "type": "text", + "placeholders": { + "username": {} + } + }, + "moderator_desc": "Ezáltal a tag módosíthatja a közösség beállításait, moderátorait és letiltott felhasználóit.", + "@moderator_desc": { + "type": "text", + "placeholders": {} + }, + "moderators_you": "Te", + "@moderators_you": { + "type": "text", + "placeholders": {} + }, + "moderators_title": "Moderátorok", + "@moderators_title": { + "type": "text", + "placeholders": {} + }, + "leave_desc": "Nem láthatod a bejegyzéseit többé a hírfolyamodban és nem hozhatsz létre több bejegyzést benne.", + "@leave_desc": { + "type": "text", + "placeholders": {} + }, + "leave_confirmation": "Biztosan ki szeretnél lépni a közösségből?", + "@leave_confirmation": { + "type": "text", + "placeholders": {} + }, + "moderator_resource_name": "moderátor", + "@moderator_resource_name": { + "type": "text", + "placeholders": {} + }, + "moderators_resource_name": "moderátor", + "@moderators_resource_name": { + "type": "text", + "placeholders": {} + }, + "add_moderator_title": "Moderátor hozzáadása", + "@add_moderator_title": { + "type": "text", + "placeholders": {} + }, + "delete_confirmation": "Biztosan törölni szeretnéd ezt a közösséget?", + "@delete_confirmation": { + "type": "text", + "placeholders": {} + }, + "delete_desc": "Nem láthatod a bejegyzéseit többé a hírfolyamodban és nem hozhatsz létre több bejegyzést benne.", + "@delete_desc": { + "type": "text", + "placeholders": {} + }, + "actions_manage_text": "Kezelés", + "@actions_manage_text": { + "type": "text", + "placeholders": {} + }, + "manage_title": "Közösség kezelése", + "@manage_title": { + "type": "text", + "placeholders": {} + }, + "manage_details_title": "Részletek", + "@manage_details_title": { + "type": "text", + "placeholders": {} + }, + "manage_details_desc": "Cím, név, ikonkép, borítókép, stb. módosítása.", + "@manage_details_desc": { + "type": "text", + "placeholders": {} + }, + "manage_admins_title": "Adminisztrátorok", + "@manage_admins_title": { + "type": "text", + "placeholders": {} + }, + "manage_admins_desc": "Adminisztrátorok megtekintése, hozzáadása és törlése.", + "@manage_admins_desc": { + "type": "text", + "placeholders": {} + }, + "manage_mods_title": "Moderátorok", + "@manage_mods_title": { + "type": "text", + "placeholders": {} + }, + "manage_mods_desc": "Moderátorok megtekintése, hozzáadása és törlése.", + "@manage_mods_desc": { + "type": "text", + "placeholders": {} + }, + "manage_banned_title": "Letiltott felhasználók", + "@manage_banned_title": { + "type": "text", + "placeholders": {} + }, + "manage_banned_desc": "Letiltott felhasználók megtekintése, hozzáadása és törlése.", + "@manage_banned_desc": { + "type": "text", + "placeholders": {} + }, + "manage_mod_reports_title": "Moderálási jelentések", + "@manage_mod_reports_title": { + "type": "text", + "placeholders": {} + }, + "manage_mod_reports_desc": "A közösségen belül létrehozott moderálási jelentések áttekintése.", + "@manage_mod_reports_desc": { + "type": "text", + "placeholders": {} + }, + "manage_closed_posts_title": "Zárt bejegyzések", + "@manage_closed_posts_title": { + "type": "text", + "placeholders": {} + }, + "manage_closed_posts_desc": "Zárt bejegyzések megtekintése és kezelése", + "@manage_closed_posts_desc": { + "type": "text", + "placeholders": {} + }, + "manage_invite_title": "Emberek meghívása", + "@manage_invite_title": { + "type": "text", + "placeholders": {} + }, + "manage_invite_desc": "Hívd meg kapcsolataidat és követőidet a közösséghez.", + "@manage_invite_desc": { + "type": "text", + "placeholders": {} + }, + "manage_delete_title": "Közösség törlése", + "@manage_delete_title": { + "type": "text", + "placeholders": {} + }, + "manage_delete_desc": "Közösség törlése örökre.", + "@manage_delete_desc": { + "type": "text", + "placeholders": {} + }, + "manage_leave_title": "Kilépés a közösségből", + "@manage_leave_title": { + "type": "text", + "placeholders": {} + }, + "manage_leave_desc": "Kilépés a közösségből.", + "@manage_leave_desc": { + "type": "text", + "placeholders": {} + }, + "manage_add_favourite": "Közösség hozzáadása a kedvencekhez", + "@manage_add_favourite": { + "type": "text", + "placeholders": {} + }, + "manage_remove_favourite": "Közösség törlése a kedvencek közül", + "@manage_remove_favourite": { + "type": "text", + "placeholders": {} + }, + "is_private": "Ez a közösség zárt.", + "@is_private": { + "type": "text", + "placeholders": {} + }, + "invited_by_member": "Egy közösségi tagnak meg kell hívnia.", + "@invited_by_member": { + "type": "text", + "placeholders": {} + }, + "invited_by_moderator": "Egy moderátornak meg kell hívnia.", + "@invited_by_moderator": { + "type": "text", + "placeholders": {} + }, + "refreshing": "Közösség frissítése", + "@refreshing": { + "type": "text", + "placeholders": {} + }, + "posts": "Bejegyzések", + "@posts": { + "type": "text", + "placeholders": {} + }, + "about": "A közösségről", + "@about": { + "type": "text", + "placeholders": {} + }, + "category": "kategória.", + "@category": { + "type": "text", + "placeholders": {} + }, + "categories": "kategória.", + "@categories": { + "type": "text", + "placeholders": {} + }, + "add_administrators_title": "Adminisztrátor hozzáadása", + "@add_administrators_title": { + "type": "text", + "placeholders": {} + }, + "community_members": "Közösség tagjai", + "@community_members": { + "type": "text", + "placeholders": {} + }, + "member": "tag", + "@member": { + "description": "Currently not used in app, reserved for potential use. Could be used as: Showing 1 member", + "type": "text", + "placeholders": {} + }, + "member_plural": "tag", + "@member_plural": { + "description": "See all members ,Search all members", + "type": "text", + "placeholders": {} + }, + "administrators_title": "Adminisztrátorok", + "@administrators_title": { + "type": "text", + "placeholders": {} + }, + "administrator_text": "adminisztrátor", + "@administrator_text": { + "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 administrator", + "type": "text", + "placeholders": {} + }, + "administrator_plural": "adminisztrátor", + "@administrator_plural": { + "description": "Egs. Search administrators, See list_search_text in user_search.arb ", + "type": "text", + "placeholders": {} + }, + "administrator_you": "Te", + "@administrator_you": { + "type": "text", + "placeholders": {} + }, + "user_you_text": "Te", + "@user_you_text": { + "type": "text", + "placeholders": {} + }, + "pick_upto_max": "Válassz ki legfeljebb {max} kategóriát", + "@pick_upto_max": { + "type": "text", + "placeholders": { + "max": {} + } + }, + "pick_atleast_min_category": "Legalább {min} kategóriát kell kiválasztanod.", + "@pick_atleast_min_category": { + "description": "You must pick at least 1 category", + "type": "text", + "placeholders": { + "min": {} + } + }, + "pick_atleast_min_categories": "Legalább {min} kategóriát kell kiválasztanod.", + "@pick_atleast_min_categories": { + "description": "Eg. Variable min will be 3-5. You must pick at least (3-5) categories", + "type": "text", + "placeholders": { + "min": {} + } + }, + "ban_user_title": "Felhasználó tiltása", + "@ban_user_title": { + "type": "text", + "placeholders": {} + }, + "banned_users_title": "Letiltott felhasználók", + "@banned_users_title": { + "type": "text", + "placeholders": {} + }, + "banned_user_text": "letiltott felhasználó", + "@banned_user_text": { + "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 banned user", + "type": "text", + "placeholders": {} + }, + "banned_users_text": "letiltott felhasználó", + "@banned_users_text": { + "description": "Egs. Search banned users, See list_search_text in user_search.arb ", + "type": "text", + "placeholders": {} + }, + "favorites_title": "Kedvencek", + "@favorites_title": { + "type": "text", + "placeholders": {} + }, + "favorite_community": "kedvenc közösség", + "@favorite_community": { + "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 favorite community", + "type": "text", + "placeholders": {} + }, + "favorite_communities": "kedvenc közösség", + "@favorite_communities": { + "description": "Egs. Search favorite communities, See list_search_text in user_search.arb ", + "type": "text", + "placeholders": {} + }, + "administrated_title": "Adminisztrált", + "@administrated_title": { + "type": "text", + "placeholders": {} + }, + "administrated_community": "adminisztrált közösség", + "@administrated_community": { + "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 administrated community", + "type": "text", + "placeholders": {} + }, + "administrated_communities": "adminisztrált közösség", + "@administrated_communities": { + "description": "Egs. Search administrated communities, See list_search_text in user_search.arb ", + "type": "text", + "placeholders": {} + }, + "moderated_title": "Moderált", + "@moderated_title": { + "type": "text", + "placeholders": {} + }, + "moderated_community": "moderált közösség", + "@moderated_community": { + "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 moderated community", + "type": "text", + "placeholders": {} + }, + "moderated_communities": "moderált közösség", + "@moderated_communities": { + "description": "Egs. Search moderated communities, See list_search_text in user_search.arb ", + "type": "text", + "placeholders": {} + }, + "joined_title": "Csatlakozott", + "@joined_title": { + "type": "text", + "placeholders": {} + }, + "joined_community": "csatlakozott közösség", + "@joined_community": { + "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 joined community", + "type": "text", + "placeholders": {} + }, + "joined_communities": "csatlakozott közösség", + "@joined_communities": { + "description": "Egs. Search joined communities, See list_search_text in user_search.arb ", + "type": "text", + "placeholders": {} + }, + "join_communities_desc": "Csatlakozz közösségekhez, hogy ne legyen üres ez a fül!", + "@join_communities_desc": { + "type": "text", + "placeholders": {} + }, + "refresh_text": "Frissítés", + "@refresh_text": { + "type": "text", + "placeholders": {} + }, + "trending_none_found": "Nem találhatóak felkapott közösségek. Próbáld újra pár perc múlva.", + "@trending_none_found": { + "type": "text", + "placeholders": {} + }, + "trending_refresh": "Frissítés", + "@trending_refresh": { + "type": "text", + "placeholders": {} + }, + "trending_in_all": "Felkapottak az összes kategóriában", + "@trending_in_all": { + "type": "text", + "placeholders": {} + }, + "trending_in_category": "Felkapottak a(z) {categoryName} kategóriában", + "@trending_in_category": { + "type": "text", + "placeholders": { + "categoryName": {} + } + }, + "communities_title": "Közösségek", + "@communities_title": { + "type": "text", + "placeholders": {} + }, + "communities_no_category_found": "Nem találhatóak kategóriák. Kérünk, próbáld újra pár perc múlva.", + "@communities_no_category_found": { + "type": "text", + "placeholders": {} + }, + "communities_refresh_text": "Frissítés", + "@communities_refresh_text": { + "type": "text", + "placeholders": {} + }, + "communities_all_text": "Összes", + "@communities_all_text": { + "type": "text", + "placeholders": {} + }, + "invite_to_community_title": "Meghívás közösséghez", + "@invite_to_community_title": { + "type": "text", + "placeholders": {} + }, + "invite_to_community_resource_singular": "kapcsolat vagy követő", + "@invite_to_community_resource_singular": { + "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 connection or follower", + "type": "text", + "placeholders": {} + }, + "invite_to_community_resource_plural": "kapcsolatok és követők", + "@invite_to_community_resource_plural": { + "description": "Egs. Search connections and followers, See list_search_text in user_search.arb ", + "type": "text", + "placeholders": {} + }, + "favorite_action": "Közösség kedvencnek jelölése", + "@favorite_action": { + "type": "text", + "placeholders": {} + }, + "unfavorite_action": "Törlés a kedvencek közül", + "@unfavorite_action": { + "type": "text", + "placeholders": {} + }, + "save_community_label_title": "Cím", + "@save_community_label_title": { + "type": "text", + "placeholders": {} + }, + "save_community_label_title_hint_text": "pl.: Utazás, Fényképészet, Videojátékok.", + "@save_community_label_title_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_community_name_title": "Név", + "@save_community_name_title": { + "type": "text", + "placeholders": {} + }, + "save_community_name_title_hint_text": " pl.: utazas, fenykepeszet, videojatekok.", + "@save_community_name_title_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_community_name_taken": "A(z) {takenName} név már foglalt", + "@save_community_name_taken": { + "type": "text", + "placeholders": { + "takenName": {} + } + }, + "save_community_name_label_color": "Szín", + "@save_community_name_label_color": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_color_hint_text": "(Koppints a módosításhoz)", + "@save_community_name_label_color_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_type": "Típus", + "@save_community_name_label_type": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_type_hint_text": "(Koppints a módosításhoz)", + "@save_community_name_label_type_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_community_name_member_invites": "Tagmeghívások", + "@save_community_name_member_invites": { + "type": "text", + "placeholders": {} + }, + "save_community_name_member_invites_subtitle": "A tagok meghívhatnak másokat a közösséghez", + "@save_community_name_member_invites_subtitle": { + "type": "text", + "placeholders": {} + }, + "save_community_name_category": "Kategória", + "@save_community_name_category": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_desc_optional": "Leírás (nem kötelező)", + "@save_community_name_label_desc_optional": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_desc_optional_hint_text": "Miről szól a közösséged?", + "@save_community_name_label_desc_optional_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_rules_optional": "Szabályzat (nem kötelező)", + "@save_community_name_label_rules_optional": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_rules_optional_hint_text": "Szeretnéd ha a tagjaid betartsanak bizonyos szabályokat?", + "@save_community_name_label_rules_optional_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_member_adjective": "Tag melléknév (nem kötelező)", + "@save_community_name_label_member_adjective": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_member_adjective_hint_text": "pl.: utazó, fényképész, gamer.", + "@save_community_name_label_member_adjective_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_members_adjective": "Tag melléknév - többesszám (nem kötelező)", + "@save_community_name_label_members_adjective": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_members_adjective_hint_text": "pl.: utazók, fényképészek, gamerek.", + "@save_community_name_label_members_adjective_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_community_edit_community": "Közösség szerkesztése", + "@save_community_edit_community": { + "type": "text", + "placeholders": {} + }, + "save_community_create_community": "Közösség létrehozása", + "@save_community_create_community": { + "type": "text", + "placeholders": {} + }, + "save_community_save_text": "Mentés", + "@save_community_save_text": { + "type": "text", + "placeholders": {} + }, + "save_community_create_text": "Létrehozás", + "@save_community_create_text": { + "type": "text", + "placeholders": {} + }, + "actions_invite_people_title": "Hívj meg embereket a közösséghez", + "@actions_invite_people_title": { + "type": "text", + "placeholders": {} + }, + "join_community": "Csatlakozás", + "@join_community": { + "type": "text", + "placeholders": {} + }, + "leave_community": "Kilépés", + "@leave_community": { + "type": "text", + "placeholders": {} + }, + "community_staff": "Közösség személyzete", + "@community_staff": { + "type": "text", + "placeholders": {} + }, + "post_singular": "bejegyzés", + "@post_singular": { + "type": "text", + "placeholders": {} + }, + "post_plural": "bejegyzés", + "@post_plural": { + "type": "text", + "placeholders": {} + }, + "rules_title": "Közösség szabályai", + "@rules_title": { + "type": "text", + "placeholders": {} + }, + "rules_text": "Szabályok", + "@rules_text": { + "type": "text", + "placeholders": {} + }, + "name_characters_error": "A név csak alfanumerikus karaktereket és alulvonásokat tartalmazhat.", + "@name_characters_error": { + "type": "text", + "placeholders": {} + }, + "name_range_error": "A név nem lehet {maxLength} karakternél hosszabb.", + "@name_range_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "name_empty_error": "A név mező nem lehet üres.", + "@name_empty_error": { + "type": "text", + "placeholders": {} + }, + "title_range_error": "A cím nem lehet {maxLength} karakternél hosszabb.", + "@title_range_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "title_empty_error": "A cím nem lehet üres.", + "@title_empty_error": { + "type": "text", + "placeholders": {} + }, + "rules_range_error": "A szabályzat nem lehet {maxLength} karakternél hosszabb.", + "@rules_range_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "rules_empty_error": "A szabályzat nem lehet üres.", + "@rules_empty_error": { + "type": "text", + "placeholders": {} + }, + "description_range_error": "A leírás nem lehet {maxLength} karakternél hosszabb.", + "@description_range_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "adjectives_range_error": "A melléknevek nem lehetnek {maxLength} karakternél hosszabbak.", + "@adjectives_range_error": { + "description": "This refers to the customisable adjectives assigned to community members,eg. 1k travellers,5k photographers", + "type": "text", + "placeholders": { + "maxLength": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/hu/contextual_account_search_box.arb b/assets/i18n/hu/contextual_account_search_box.arb new file mode 100644 index 000000000..c77142ea4 --- /dev/null +++ b/assets/i18n/hu/contextual_account_search_box.arb @@ -0,0 +1,8 @@ +{ + "suggestions": "Javaslatok", + "@suggestions": { + "description": "The title to display on the suggestions when searching for accounts when trying to mention someone.", + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/hu/drawer.arb b/assets/i18n/hu/drawer.arb new file mode 100644 index 000000000..f688da71f --- /dev/null +++ b/assets/i18n/hu/drawer.arb @@ -0,0 +1,224 @@ +{ + "menu_title": "Menü", + "@menu_title": { + "type": "text", + "placeholders": {} + }, + "main_title": "Saját Okuna", + "@main_title": { + "type": "text", + "placeholders": {} + }, + "my_circles": "Köreim", + "@my_circles": { + "type": "text", + "placeholders": {} + }, + "my_lists": "Listáim", + "@my_lists": { + "type": "text", + "placeholders": {} + }, + "my_followers": "Követőim", + "@my_followers": { + "type": "text", + "placeholders": {} + }, + "my_following": "Követéseim", + "@my_following": { + "type": "text", + "placeholders": {} + }, + "my_invites": "Meghívóim", + "@my_invites": { + "type": "text", + "placeholders": {} + }, + "my_pending_mod_tasks": "Függő moderációs feladataim", + "@my_pending_mod_tasks": { + "type": "text", + "placeholders": {} + }, + "my_mod_penalties": "Moderációs büntetéseim", + "@my_mod_penalties": { + "type": "text", + "placeholders": {} + }, + "app_account_text": "App és fiók", + "@app_account_text": { + "type": "text", + "placeholders": {} + }, + "themes": "Témák", + "@themes": { + "type": "text", + "placeholders": {} + }, + "global_moderation": "Globális moderáció", + "@global_moderation": { + "type": "text", + "placeholders": {} + }, + "profile": "Profilom", + "@profile": { + "type": "text", + "placeholders": {} + }, + "connections": "Kapcsolataim", + "@connections": { + "type": "text", + "placeholders": {} + }, + "lists": "Listáim", + "@lists": { + "type": "text", + "placeholders": {} + }, + "settings": "Beállítások", + "@settings": { + "type": "text", + "placeholders": {} + }, + "application_settings": "Alkalmazás beállításai", + "@application_settings": { + "type": "text", + "placeholders": {} + }, + "account_settings": "Fiók beállításai", + "@account_settings": { + "type": "text", + "placeholders": {} + }, + "developer_settings": "Fejlesztői beállítások", + "@developer_settings": { + "type": "text", + "placeholders": {} + }, + "account_settings_change_email": "E-mail cím módosítása", + "@account_settings_change_email": { + "type": "text", + "placeholders": {} + }, + "account_settings_change_password": "Jelszó módosítása", + "@account_settings_change_password": { + "type": "text", + "placeholders": {} + }, + "account_settings_notifications": "Értesítések", + "@account_settings_notifications": { + "type": "text", + "placeholders": {} + }, + "account_settings_language_text": "Nyelv", + "@account_settings_language_text": { + "type": "text", + "placeholders": {} + }, + "account_settings_language": "Nyelv ({currentUserLanguage})", + "@account_settings_language": { + "type": "text", + "placeholders": { + "currentUserLanguage": {} + } + }, + "account_settings_blocked_users": "Letiltott felhasználók", + "@account_settings_blocked_users": { + "type": "text", + "placeholders": {} + }, + "account_settings_delete_account": "Fiók törlése", + "@account_settings_delete_account": { + "type": "text", + "placeholders": {} + }, + "help": "Segítség és visszajelzés", + "@help": { + "type": "text", + "placeholders": {} + }, + "customize": "Testreszabás", + "@customize": { + "type": "text", + "placeholders": {} + }, + "logout": "Kijelentkezés", + "@logout": { + "type": "text", + "placeholders": {} + }, + "useful_links_title": "Hasznos linkek", + "@useful_links_title": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines": "Okuna irányelvek", + "@useful_links_guidelines": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_desc": "Az irányelvek, melyeket mindenkinek be kell tartania a barátságos és kényelmes körülmények megteremtéséhez.", + "@useful_links_guidelines_desc": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_github": "GitHub projekttábla", + "@useful_links_guidelines_github": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_github_desc": "Tekintsd meg, min dolgozunk jelenleg", + "@useful_links_guidelines_github_desc": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_feature_requests": "Funkciójavaslatok", + "@useful_links_guidelines_feature_requests": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_feature_requests_desc": "Javasolj egy funkciót vagy szavazz a már létezőekre", + "@useful_links_guidelines_feature_requests_desc": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_bug_tracker": "Hibakövető", + "@useful_links_guidelines_bug_tracker": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_bug_tracker_desc": "Jelents be egy hibát vagy szavazz a már létezőekre", + "@useful_links_guidelines_bug_tracker_desc": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_handbook": "Okuna kézikönyv", + "@useful_links_guidelines_handbook": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_handbook_desc": "Egy kézikönyv, mely mindent leír a platform használatáról", + "@useful_links_guidelines_handbook_desc": { + "type": "text", + "placeholders": {} + }, + "useful_links_support": "Az Okuna támogatása", + "@useful_links_support": { + "type": "text", + "placeholders": {} + }, + "useful_links_support_desc": "Segíthetsz, hogy tovább tudjunk evezni a terveink tengerén!", + "@useful_links_support_desc": { + "type": "text", + "placeholders": {} + }, + "useful_links_slack_channel": "Közösségi Slack csatorna", + "@useful_links_slack_channel": { + "type": "text", + "placeholders": {} + }, + "useful_links_slack_channel_desc": "A hely ahol bármit megbeszélhetsz az Okunával kapcsolatban", + "@useful_links_slack_channel_desc": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/hu/error.arb b/assets/i18n/hu/error.arb new file mode 100644 index 000000000..6ec86b3d9 --- /dev/null +++ b/assets/i18n/hu/error.arb @@ -0,0 +1,12 @@ +{ + "unknown_error": "Ismeretlen hiba", + "@unknown_error": { + "type": "text", + "placeholders": {} + }, + "no_internet_connection": "Nincs internetkapcsolat", + "@no_internet_connection": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/hu/image_picker.arb b/assets/i18n/hu/image_picker.arb new file mode 100644 index 000000000..e369cf1e2 --- /dev/null +++ b/assets/i18n/hu/image_picker.arb @@ -0,0 +1,19 @@ +{ + "from_gallery": "Galériából", + "@from_gallery": { + "type": "text", + "placeholders": {} + }, + "from_camera": "Kameráról", + "@from_camera": { + "type": "text", + "placeholders": {} + }, + "error_too_large": "A fájl túl nagy (korlát: {limit} MB)", + "@error_too_large": { + "type": "text", + "placeholders": { + "limit": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/hu/moderation.arb b/assets/i18n/hu/moderation.arb new file mode 100644 index 000000000..3fc1a994e --- /dev/null +++ b/assets/i18n/hu/moderation.arb @@ -0,0 +1,361 @@ +{ + "filters_title": "Moderációs szűrők", + "@filters_title": { + "type": "text", + "placeholders": {} + }, + "filters_reset": "Visszaállítás", + "@filters_reset": { + "type": "text", + "placeholders": {} + }, + "filters_verified": "Ellenőrizve", + "@filters_verified": { + "type": "text", + "placeholders": {} + }, + "filters_apply": "Szűrők alkalmazása", + "@filters_apply": { + "type": "text", + "placeholders": {} + }, + "filters_type": "Típus", + "@filters_type": { + "type": "text", + "placeholders": {} + }, + "filters_status": "Állapot", + "@filters_status": { + "type": "text", + "placeholders": {} + }, + "filters_other": "Egyéb", + "@filters_other": { + "type": "text", + "placeholders": {} + }, + "actions_review": "Áttekintés", + "@actions_review": { + "type": "text", + "placeholders": {} + }, + "actions_chat_with_team": "Beszélgess a csapattal", + "@actions_chat_with_team": { + "type": "text", + "placeholders": {} + }, + "update_category_title": "Kategória módosítása", + "@update_category_title": { + "type": "text", + "placeholders": {} + }, + "update_category_save": "Mentés", + "@update_category_save": { + "type": "text", + "placeholders": {} + }, + "update_description_save": "Mentés", + "@update_description_save": { + "type": "text", + "placeholders": {} + }, + "update_description_title": "Leírás szerkesztése", + "@update_description_title": { + "type": "text", + "placeholders": {} + }, + "update_description_report_desc": "Leírás jelentése", + "@update_description_report_desc": { + "type": "text", + "placeholders": {} + }, + "update_description_report_hint_text": "pl.: A bejelentett elem az alábbi irányelveket sértette meg...", + "@update_description_report_hint_text": { + "type": "text", + "placeholders": {} + }, + "update_status_save": "Mentés", + "@update_status_save": { + "type": "text", + "placeholders": {} + }, + "update_status_title": "Állapot frissítése", + "@update_status_title": { + "type": "text", + "placeholders": {} + }, + "community_review_title": "Tekintse át a moderált tárgyat", + "@community_review_title": { + "type": "text", + "placeholders": {} + }, + "moderated_object_title": "Tárgy", + "@moderated_object_title": { + "type": "text", + "placeholders": {} + }, + "moderated_object_status": "Állapot", + "@moderated_object_status": { + "type": "text", + "placeholders": {} + }, + "moderated_object_reports_count": "Jelentések száma", + "@moderated_object_reports_count": { + "type": "text", + "placeholders": {} + }, + "moderated_object_verified_by_staff": "Az Okuna csapata által ellenőrizve", + "@moderated_object_verified_by_staff": { + "type": "text", + "placeholders": {} + }, + "moderated_object_verified": "Ellenőrizve", + "@moderated_object_verified": { + "type": "text", + "placeholders": {} + }, + "moderated_object_true_text": "Igaz", + "@moderated_object_true_text": { + "description": "Eg. Moderated object verified by staff? true / false", + "type": "text", + "placeholders": {} + }, + "moderated_object_false_text": "Hamis", + "@moderated_object_false_text": { + "description": "Eg. Moderated object verified by staff? true / false", + "type": "text", + "placeholders": {} + }, + "community_review_object": "Tárgy", + "@community_review_object": { + "type": "text", + "placeholders": {} + }, + "community_review_approve": "Jóváhagy", + "@community_review_approve": { + "type": "text", + "placeholders": {} + }, + "community_review_reject": "Elutasít", + "@community_review_reject": { + "type": "text", + "placeholders": {} + }, + "community_review_item_verified": "Ez a tárgy ellenőrizve van", + "@community_review_item_verified": { + "type": "text", + "placeholders": {} + }, + "global_review_title": "Moderált tárgy áttekintése", + "@global_review_title": { + "type": "text", + "placeholders": {} + }, + "global_review_object_text": "Tárgy", + "@global_review_object_text": { + "type": "text", + "placeholders": {} + }, + "global_review_verify_text": "Ellenőrzés", + "@global_review_verify_text": { + "type": "text", + "placeholders": {} + }, + "global_review_unverify_text": "Ellenőrzés visszavonása", + "@global_review_unverify_text": { + "type": "text", + "placeholders": {} + }, + "confirm_report_title": "Bejelentés elküldése", + "@confirm_report_title": { + "type": "text", + "placeholders": {} + }, + "confirm_report_provide_details": "Tudnál további részleteket szolgáltatni amelyek lényegesek lennének a bejelentéshez?", + "@confirm_report_provide_details": { + "type": "text", + "placeholders": {} + }, + "confirm_report_provide_optional_info": "(Nem kötelező)", + "@confirm_report_provide_optional_info": { + "type": "text", + "placeholders": {} + }, + "confirm_report_provide_optional_hint_text": "Írj ide...", + "@confirm_report_provide_optional_hint_text": { + "type": "text", + "placeholders": {} + }, + "confirm_report_provide_happen_next": "Ez fog történni most:", + "@confirm_report_provide_happen_next": { + "type": "text", + "placeholders": {} + }, + "confirm_report_provide_happen_next_desc": "- A jelentés névtelenül lesz elküldve. \n- Ha egy bejegyzést vagy hozzászólást jelentesz, a jelentés el lesz küldve az Okuna vezetőségéhez és adott esetben a közösség moderátoraihoz, valamint a bejegyzés el lesz rejtve a hírfolyamodból. \n- Ha egy fiókot vagy közösséget jelentesz, a jelentés el lesz küldve az Okuna vezetőségéhez. \n- Felülvizsgáljuk a jelentést és amennyiben ütközik irányelveinkkel, a jelentett tartalmat törölni fogjuk és kiszabjuk a megfelelő büntetést az érintett felekre, mely az áthágás súlyosságának függvényében lehet ideiglenes felfüggesztés vagy a teljes fiók törlése. \n- Ha a jelentett tartalom nem ütközik irányelveinkkel és a jelentés azért lett létrehozva, hogy más felhasználó vagy közösség hírnevét csökkentse, a büntetést terád fogjuk kiszabni.\n", + "@confirm_report_provide_happen_next_desc": { + "type": "text", + "placeholders": {} + }, + "confirm_report_submit": "Megértettem, küldés.", + "@confirm_report_submit": { + "type": "text", + "placeholders": {} + }, + "confirm_report_user_reported": "Jelentett felhasználó", + "@confirm_report_user_reported": { + "type": "text", + "placeholders": {} + }, + "confirm_report_community_reported": "Jelentett közösség", + "@confirm_report_community_reported": { + "type": "text", + "placeholders": {} + }, + "confirm_report_post_reported": "Jelentett bejegyzés", + "@confirm_report_post_reported": { + "type": "text", + "placeholders": {} + }, + "confirm_report_post_comment_reported": "Jelentett hozzászólás", + "@confirm_report_post_comment_reported": { + "type": "text", + "placeholders": {} + }, + "confirm_report_item_reported": "Jelentett tárgy", + "@confirm_report_item_reported": { + "type": "text", + "placeholders": {} + }, + "community_moderated_objects": "Közösség által moderált tárgyak", + "@community_moderated_objects": { + "type": "text", + "placeholders": {} + }, + "globally_moderated_objects": "Globálisan moderált tárgyak", + "@globally_moderated_objects": { + "type": "text", + "placeholders": {} + }, + "tap_to_retry": "Koppints az elemek betöltésének újrapróbálásához", + "@tap_to_retry": { + "type": "text", + "placeholders": {} + }, + "report_post_text": "Bejegyzés jelentése", + "@report_post_text": { + "type": "text", + "placeholders": {} + }, + "you_have_reported_post_text": "Sikeresen jelentetted ezt a bejegyzést", + "@you_have_reported_post_text": { + "type": "text", + "placeholders": {} + }, + "report_account_text": "Fiók bejelentése", + "@report_account_text": { + "type": "text", + "placeholders": {} + }, + "you_have_reported_account_text": "Sikeresen jelentetted ezt a fiókot", + "@you_have_reported_account_text": { + "type": "text", + "placeholders": {} + }, + "report_community_text": "Közösség jelentése", + "@report_community_text": { + "type": "text", + "placeholders": {} + }, + "you_have_reported_community_text": "Sikeresen jelentetted ezt a közösséget", + "@you_have_reported_community_text": { + "type": "text", + "placeholders": {} + }, + "report_comment_text": "Hozzászólás jelentése", + "@report_comment_text": { + "type": "text", + "placeholders": {} + }, + "you_have_reported_comment_text": "Sikeresen jelentetted ezt a hozzászólást", + "@you_have_reported_comment_text": { + "type": "text", + "placeholders": {} + }, + "description_text": "Leírás", + "@description_text": { + "type": "text", + "placeholders": {} + }, + "no_description_text": "Nincs leírás", + "@no_description_text": { + "type": "text", + "placeholders": {} + }, + "category_text": "Kategória", + "@category_text": { + "type": "text", + "placeholders": {} + }, + "reporter_text": "Bejelentő", + "@reporter_text": { + "type": "text", + "placeholders": {} + }, + "reports_preview_title": "Jelentések", + "@reports_preview_title": { + "type": "text", + "placeholders": {} + }, + "reports_preview_resource_reports": "jelentés", + "@reports_preview_resource_reports": { + "description": "Usage: See all reports..", + "type": "text", + "placeholders": {} + }, + "reports_see_all": "Mind a(z) {resourceCount} {resourceName} megtekintése", + "@reports_see_all": { + "description": "Usage: See all 4 reports.", + "type": "text", + "placeholders": { + "resourceCount": {}, + "resourceName": {} + } + }, + "object_status_title": "Állapot", + "@object_status_title": { + "type": "text", + "placeholders": {} + }, + "my_moderation_tasks_title": "Függő moderációs feladatok", + "@my_moderation_tasks_title": { + "type": "text", + "placeholders": {} + }, + "pending_moderation_tasks_singular": "függő moderációs feladat", + "@pending_moderation_tasks_singular": { + "type": "text", + "placeholders": {} + }, + "pending_moderation_tasks_plural": "függő moderációs feladat", + "@pending_moderation_tasks_plural": { + "description": "Eg. No pending moderation tasks found", + "type": "text", + "placeholders": {} + }, + "my_moderation_penalties_title": "Moderációs büntetések", + "@my_moderation_penalties_title": { + "type": "text", + "placeholders": {} + }, + "my_moderation_penalties_resouce_singular": "moderációs büntetés", + "@my_moderation_penalties_resouce_singular": { + "type": "text", + "placeholders": {} + }, + "my_moderation_penalties_resource_plural": "moderációs büntetés", + "@my_moderation_penalties_resource_plural": { + "description": "See all moderation penalties, No moderation penalties found etc..", + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/hu/notifications.arb b/assets/i18n/hu/notifications.arb new file mode 100644 index 000000000..c01c23d38 --- /dev/null +++ b/assets/i18n/hu/notifications.arb @@ -0,0 +1,218 @@ +{ + "tab_general": "Általános", + "@tab_general": { + "type": "text", + "placeholders": {} + }, + "tab_requests": "Kérelmek", + "@tab_requests": { + "type": "text", + "placeholders": {} + }, + "settings_title": "Értesítési beálllítások", + "@settings_title": { + "type": "text", + "placeholders": {} + }, + "general_title": "Értesítések", + "@general_title": { + "type": "text", + "placeholders": {} + }, + "general_desc": "Értesülj, ha történik valami", + "@general_desc": { + "type": "text", + "placeholders": {} + }, + "follow_title": "Követés", + "@follow_title": { + "type": "text", + "placeholders": {} + }, + "follow_desc": "Értesülj, ha valaki követni kezd téged", + "@follow_desc": { + "type": "text", + "placeholders": {} + }, + "connection_title": "Függő kapcsolat", + "@connection_title": { + "type": "text", + "placeholders": {} + }, + "connection_desc": "Értesülj, ha valaki kapcsolatfelkérést küldött neked", + "@connection_desc": { + "type": "text", + "placeholders": {} + }, + "comment_title": "Hozzászólás küldése", + "@comment_title": { + "type": "text", + "placeholders": {} + }, + "comment_desc": "Értesülj, ha valaki hozzászólt egy bejegyzésedhez vagy egy bejegyzéshez amelyhez te is hozzászóltál", + "@comment_desc": { + "type": "text", + "placeholders": {} + }, + "comment_reply_title": "Válasz hozzászólásra", + "@comment_reply_title": { + "type": "text", + "placeholders": {} + }, + "comment_reply_desc": "Értesülj, ha valaki válaszol egy hozzászólásodra vagy egy hozzászólásra melyre te is válaszoltál", + "@comment_reply_desc": { + "type": "text", + "placeholders": {} + }, + "comment_user_mention_title": "Megjelölés hozzászólásban", + "@comment_user_mention_title": { + "type": "text", + "placeholders": {} + }, + "comment_user_mention_desc": "Értesülj, ha valaki megjelöl téged egy hozzászólásban", + "@comment_user_mention_desc": { + "type": "text", + "placeholders": {} + }, + "post_user_mention_title": "Megjelölés bejegyzésben", + "@post_user_mention_title": { + "type": "text", + "placeholders": {} + }, + "post_user_mention_desc": "Értesülj, ha valaki megjelöl téged egy bejegyzésben", + "@post_user_mention_desc": { + "type": "text", + "placeholders": {} + }, + "comment_reaction_title": "Reagálás hozzászólásra", + "@comment_reaction_title": { + "type": "text", + "placeholders": {} + }, + "comment_reaction_desc": "Értesülj, ha valaki reagált egy hozzászólásodra", + "@comment_reaction_desc": { + "type": "text", + "placeholders": {} + }, + "post_reaction_title": "Reagálás bejegyzésre", + "@post_reaction_title": { + "type": "text", + "placeholders": {} + }, + "post_reaction_desc": "Értesülj, ha valaki reagált egy bejegyzésedre", + "@post_reaction_desc": { + "type": "text", + "placeholders": {} + }, + "community_invite_title": "Meghívás közösségbe", + "@community_invite_title": { + "type": "text", + "placeholders": {} + }, + "community_invite_desc": "Értesülj, ha valaki meghív téged egy közösségbe", + "@community_invite_desc": { + "type": "text", + "placeholders": {} + }, + "mute_post_turn_on_post_notifications": "Bejegyzésértesítések bekapcsolása", + "@mute_post_turn_on_post_notifications": { + "type": "text", + "placeholders": {} + }, + "mute_post_turn_off_post_notifications": "Bejegyzésértesítések kikapcsolása", + "@mute_post_turn_off_post_notifications": { + "type": "text", + "placeholders": {} + }, + "mute_post_turn_on_post_comment_notifications": "Hozzászólás-értesítések bekapcsolása", + "@mute_post_turn_on_post_comment_notifications": { + "type": "text", + "placeholders": {} + }, + "mute_post_turn_off_post_comment_notifications": "Hozzászólás-értesítések kikapcsolása", + "@mute_post_turn_off_post_comment_notifications": { + "type": "text", + "placeholders": {} + }, + "connection_request_tile": "[name] [username] kapcsolatfelkérést küldött.", + "@connection_request_tile": { + "description": "Eg.: James @jamest wants to connect with you.", + "type": "text", + "placeholders": {} + }, + "accepted_connection_request_tile": "[name] [username] elfogadta a kapcsolatfelkérési kérelmedet.", + "@accepted_connection_request_tile": { + "description": "Eg.: James @jamest accepted your connection request.", + "type": "text", + "placeholders": {} + }, + "reacted_to_post_tile": "[name] [username] reagált a bejegyzésedre.", + "@reacted_to_post_tile": { + "description": "Eg.: James @jamest reacted to your post.", + "type": "text", + "placeholders": {} + }, + "reacted_to_post_comment_tile": "[name] [username] reagált a hozzászólásodra.", + "@reacted_to_post_comment_tile": { + "description": "Eg.: James @jamest reacted to your post comment.", + "type": "text", + "placeholders": {} + }, + "following_you_tile": "[name] [username] mostantól követ téged.", + "@following_you_tile": { + "description": "Eg.: James @jamest is now following you.", + "type": "text", + "placeholders": {} + }, + "user_community_invite_tile": "[name] [username] meghívott téged a(z) /c/{communityName} közösségbe.", + "@user_community_invite_tile": { + "description": "Eg.: James @jamest has invited you to join community /c/okuna.", + "type": "text", + "placeholders": { + "communityName": {} + } + }, + "comment_reply_notification_tile_user_replied": "[name] [username] válaszolt: {postCommentText}", + "@comment_reply_notification_tile_user_replied": { + "description": "For.eg. James @jamest replied.", + "type": "text", + "placeholders": { + "postCommentText": {} + } + }, + "comment_reply_notification_tile_user_also_replied": "[name] [username] is válaszolt: {postCommentText}", + "@comment_reply_notification_tile_user_also_replied": { + "type": "text", + "placeholders": { + "postCommentText": {} + } + }, + "comment_comment_notification_tile_user_commented": "[name] [username] hozzászólt a bejegyzésedhez: {postCommentText}", + "@comment_comment_notification_tile_user_commented": { + "type": "text", + "placeholders": { + "postCommentText": {} + } + }, + "comment_comment_notification_tile_user_also_commented": "[name] [username] is hozzászólt: {postCommentText}", + "@comment_comment_notification_tile_user_also_commented": { + "type": "text", + "placeholders": { + "postCommentText": {} + } + }, + "mentioned_in_post_comment_tile": "[name] [username] megjelölt egy hozzászólásban: {postCommentText}", + "@mentioned_in_post_comment_tile": { + "description": "Eg.: James @jamest mentioned you on a comment: hello @jamest", + "type": "text", + "placeholders": { + "postCommentText": {} + } + }, + "mentioned_in_post_tile": "[name] [username] megjelölt egy bejegyzésben.", + "@mentioned_in_post_tile": { + "description": "Eg.: James @jamest mentioned you on a post.", + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/hu/post.arb b/assets/i18n/hu/post.arb new file mode 100644 index 000000000..bd148163c --- /dev/null +++ b/assets/i18n/hu/post.arb @@ -0,0 +1,601 @@ +{ + "open_post": "Bejegyzés megnyitása", + "@open_post": { + "type": "text", + "placeholders": {} + }, + "close_post": "Bejegyzés bezárása", + "@close_post": { + "type": "text", + "placeholders": {} + }, + "post_opened": "Nyitott bejegyzés", + "@post_opened": { + "type": "text", + "placeholders": {} + }, + "post_closed": "Zárt bejegyzés ", + "@post_closed": { + "type": "text", + "placeholders": {} + }, + "comment_required_error": "A hozzászólás nem lehet üres.", + "@comment_required_error": { + "type": "text", + "placeholders": {} + }, + "comment_maxlength_error": "A hozzászólás nem lehet {maxLength} karakternél hosszabb.", + "@comment_maxlength_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "timeline_posts_all_loaded": "🎉 Összes bejegyzés betöltve", + "@timeline_posts_all_loaded": { + "type": "text", + "placeholders": {} + }, + "timeline_posts_refreshing_drhoo_title": "Csak egy pillanat!", + "@timeline_posts_refreshing_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "timeline_posts_no_more_drhoo_subtitle": "A kezdéshez kövess pár felhasználót vagy csatlakozz egy közösséghez!", + "@timeline_posts_no_more_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "timeline_posts_failed_drhoo_title": "Nem sikerült betölteni a hírfolyamodat.", + "@timeline_posts_failed_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "timeline_posts_failed_drhoo_subtitle": "Próbáld újra pár másodperc múlva", + "@timeline_posts_failed_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "timeline_posts_default_drhoo_title": "Valami nincs rendben.", + "@timeline_posts_default_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "timeline_posts_default_drhoo_subtitle": "Próbáld meg frissíteni a hírfolyamot.", + "@timeline_posts_default_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "timeline_posts_refresh_posts": "Bejegyzések frissítése", + "@timeline_posts_refresh_posts": { + "type": "text", + "placeholders": {} + }, + "no_circles_for": "Nem találhatóak körök a(z) \"{circlesSearchQuery}\" keresésre.", + "@no_circles_for": { + "type": "text", + "placeholders": { + "circlesSearchQuery": {} + } + }, + "share_to_circles": "Megosztás körökben", + "@share_to_circles": { + "type": "text", + "placeholders": {} + }, + "profile_counts_post": " bejegyzés", + "@profile_counts_post": { + "type": "text", + "placeholders": {} + }, + "profile_counts_posts": " bejegyzés", + "@profile_counts_posts": { + "type": "text", + "placeholders": {} + }, + "profile_counts_followers": " követő", + "@profile_counts_followers": { + "type": "text", + "placeholders": {} + }, + "profile_counts_following": " követés", + "@profile_counts_following": { + "type": "text", + "placeholders": {} + }, + "profile_counts_follower": " követő", + "@profile_counts_follower": { + "type": "text", + "placeholders": {} + }, + "profile_retry_loading_posts": "Koppints az újrapróbálkozáshoz", + "@profile_retry_loading_posts": { + "type": "text", + "placeholders": {} + }, + "action_comment": "Hozzászólás", + "@action_comment": { + "type": "text", + "placeholders": {} + }, + "action_react": "Reagálás", + "@action_react": { + "type": "text", + "placeholders": {} + }, + "action_reply": "Válasz", + "@action_reply": { + "type": "text", + "placeholders": {} + }, + "share": "Megosztás", + "@share": { + "type": "text", + "placeholders": {} + }, + "share_to": "Megosztás itt...", + "@share_to": { + "type": "text", + "placeholders": {} + }, + "sharing_post_to": "Bejegyzés megosztása itt:", + "@sharing_post_to": { + "type": "text", + "placeholders": {} + }, + "you_shared_with": "Itt megosztva:", + "@you_shared_with": { + "type": "text", + "placeholders": {} + }, + "shared_privately_on": "Bizalmasan megosztva", + "@shared_privately_on": { + "description": "Eg. Shared privately on @shantanu's circles. See following string, usernames_circles . Will combine this in future, needs refactoring.", + "type": "text", + "placeholders": {} + }, + "usernames_circles": "@{postCreatorUsername} köreiben", + "@usernames_circles": { + "type": "text", + "placeholders": { + "postCreatorUsername": {} + } + }, + "share_community": "Megosztás", + "@share_community": { + "type": "text", + "placeholders": {} + }, + "share_to_community": "Megosztás közösségben...", + "@share_to_community": { + "type": "text", + "placeholders": {} + }, + "share_community_title": "Egy közösség", + "@share_community_title": { + "type": "text", + "placeholders": {} + }, + "share_community_desc": "Bejegyzés megosztása egy közösségben, amelynek tagja vagy.", + "@share_community_desc": { + "type": "text", + "placeholders": {} + }, + "my_circles": "Köreim", + "@my_circles": { + "type": "text", + "placeholders": {} + }, + "my_circles_desc": "Bejegyzés megosztása egy vagy több körödben.", + "@my_circles_desc": { + "type": "text", + "placeholders": {} + }, + "world_circle_name": "Világ", + "@world_circle_name": { + "type": "text", + "placeholders": {} + }, + "search_circles": "Körök keresése...", + "@search_circles": { + "type": "text", + "placeholders": {} + }, + "reaction_list_tap_retry": "Koppints a reakciók betöltésének újrapróbálásához.", + "@reaction_list_tap_retry": { + "type": "text", + "placeholders": {} + }, + "create_new": "Új bejegyzés", + "@create_new": { + "type": "text", + "placeholders": {} + }, + "create_new_post_label": "Create new post", + "@create_new_post_label": { + "type": "text", + "placeholders": {} + }, + "create_new_community_post_label": "Create new communtiy post", + "@create_new_community_post_label": { + "type": "text", + "placeholders": {} + }, + "close_create_post_label": "Close create new post", + "@close_create_post_label": { + "type": "text", + "placeholders": {} + }, + "create_next": "Tovább", + "@create_next": { + "type": "text", + "placeholders": {} + }, + "create_photo": "Fotó", + "@create_photo": { + "type": "text", + "placeholders": {} + }, + "create_video": "Videó", + "@create_video": { + "type": "text", + "placeholders": {} + }, + "commenter_post_text": "Bejegyzés", + "@commenter_post_text": { + "type": "text", + "placeholders": {} + }, + "commenter_write_something": "Írj valamit...", + "@commenter_write_something": { + "type": "text", + "placeholders": {} + }, + "edit_title": "Bejegyzés szerkesztése", + "@edit_title": { + "type": "text", + "placeholders": {} + }, + "edit_save": "Mentés", + "@edit_save": { + "type": "text", + "placeholders": {} + }, + "commenter_expanded_save": "Mentés", + "@commenter_expanded_save": { + "type": "text", + "placeholders": {} + }, + "commenter_expanded_join_conversation": "Csatlakozz a beszélgetéshez...", + "@commenter_expanded_join_conversation": { + "type": "text", + "placeholders": {} + }, + "commenter_expanded_start_conversation": "Új beszélgetés indítása...", + "@commenter_expanded_start_conversation": { + "type": "text", + "placeholders": {} + }, + "commenter_expanded_edit_comment": "Hozzászólás szerkesztése", + "@commenter_expanded_edit_comment": { + "type": "text", + "placeholders": {} + }, + "is_closed": "Zárt bejegyzés", + "@is_closed": { + "type": "text", + "placeholders": {} + }, + "comment_reply_expanded_reply_comment": "Válasz a hozzászólásra", + "@comment_reply_expanded_reply_comment": { + "type": "text", + "placeholders": {} + }, + "comment_reply_expanded_post": "Bejegyzés", + "@comment_reply_expanded_post": { + "type": "text", + "placeholders": {} + }, + "comment_reply_expanded_reply_hint_text": "A válaszod...", + "@comment_reply_expanded_reply_hint_text": { + "type": "text", + "placeholders": {} + }, + "trending_posts_title": "Felkapott bejegyzések", + "@trending_posts_title": { + "type": "text", + "placeholders": {} + }, + "trending_posts_no_trending_posts": "Nincsenek felkapott bejegyzések. Próbáld újra pár másodperc múlva.", + "@trending_posts_no_trending_posts": { + "type": "text", + "placeholders": {} + }, + "trending_posts_refresh": "Frissítés", + "@trending_posts_refresh": { + "type": "text", + "placeholders": {} + }, + "comments_view_all_comments": "Mind a(z) {commentsCount} hozzászólás betöltése", + "@comments_view_all_comments": { + "type": "text", + "placeholders": { + "commentsCount": {} + } + }, + "comments_closed_post": "Zárt bejegyzés", + "@comments_closed_post": { + "type": "text", + "placeholders": {} + }, + "comments_disabled": "A hozzászólások le vannak tiltva", + "@comments_disabled": { + "type": "text", + "placeholders": {} + }, + "text_copied": "Szöveg kimásolva!", + "@text_copied": { + "type": "text", + "placeholders": {} + }, + "post_reactions_title": "Bejegyzés reakciói", + "@post_reactions_title": { + "type": "text", + "placeholders": {} + }, + "have_not_shared_anything": "Még nem osztottál meg semmit sem.", + "@have_not_shared_anything": { + "type": "text", + "placeholders": {} + }, + "user_has_not_shared_anything": "{name} még nem osztott meg semmit.", + "@user_has_not_shared_anything": { + "type": "text", + "placeholders": { + "name": {} + } + }, + "comments_header_newest_replies": "Legutóbbiak", + "@comments_header_newest_replies": { + "type": "text", + "placeholders": {} + }, + "comments_header_newer": "Újabb", + "@comments_header_newer": { + "type": "text", + "placeholders": {} + }, + "comments_header_view_newest_replies": "Újabb válaszok megtekintése", + "@comments_header_view_newest_replies": { + "type": "text", + "placeholders": {} + }, + "comments_header_see_newest_replies": "Újabb válaszok megtekintése", + "@comments_header_see_newest_replies": { + "type": "text", + "placeholders": {} + }, + "comments_header_oldest_replies": "Legkorábbiak", + "@comments_header_oldest_replies": { + "type": "text", + "placeholders": {} + }, + "comments_header_older": "Korábbi", + "@comments_header_older": { + "type": "text", + "placeholders": {} + }, + "comments_header_view_oldest_replies": "Legkorábbi válaszok megtekintése", + "@comments_header_view_oldest_replies": { + "type": "text", + "placeholders": {} + }, + "comments_header_see_oldest_replies": "Legkorábbi válaszok megtekintése", + "@comments_header_see_oldest_replies": { + "type": "text", + "placeholders": {} + }, + "comments_header_be_the_first_replies": "Legyél az első hozzászóló", + "@comments_header_be_the_first_replies": { + "type": "text", + "placeholders": {} + }, + "comments_header_newest_comments": "Legutóbbiak", + "@comments_header_newest_comments": { + "type": "text", + "placeholders": {} + }, + "comments_header_view_newest_comments": "Legutóbbi hozzászólások megtekintése", + "@comments_header_view_newest_comments": { + "type": "text", + "placeholders": {} + }, + "comments_header_see_newest_comments": "Legutóbbi hozzászólások megtekintése", + "@comments_header_see_newest_comments": { + "type": "text", + "placeholders": {} + }, + "comments_header_oldest_comments": "Legkorábbiak", + "@comments_header_oldest_comments": { + "type": "text", + "placeholders": {} + }, + "comments_header_view_oldest_comments": "Legkorábbi hozzászólások megtekintése", + "@comments_header_view_oldest_comments": { + "type": "text", + "placeholders": {} + }, + "comments_header_see_oldest_comments": "Legkorábbi hozzászólások megtekintése", + "@comments_header_see_oldest_comments": { + "type": "text", + "placeholders": {} + }, + "comments_header_be_the_first_comments": "Legyél az első hozzászóló", + "@comments_header_be_the_first_comments": { + "type": "text", + "placeholders": {} + }, + "comments_page_title": "Bejegyzés hozzászólásai", + "@comments_page_title": { + "type": "text", + "placeholders": {} + }, + "comments_page_no_more_to_load": "Nincs több betölthető hozzászólás", + "@comments_page_no_more_to_load": { + "type": "text", + "placeholders": {} + }, + "comments_page_tap_to_retry": "Koppints a hozzászólások betöltésének újrapróbálásához.", + "@comments_page_tap_to_retry": { + "type": "text", + "placeholders": {} + }, + "comments_page_tap_to_retry_replies": "Koppints a válaszok betöltésének újrapróbálásához.", + "@comments_page_tap_to_retry_replies": { + "type": "text", + "placeholders": {} + }, + "comments_page_no_more_replies_to_load": "Nincs több betölthető válasz", + "@comments_page_no_more_replies_to_load": { + "type": "text", + "placeholders": {} + }, + "comments_page_replies_title": "Hozzászólás válaszai", + "@comments_page_replies_title": { + "type": "text", + "placeholders": {} + }, + "disable_post_comments": "Hozzászólások letiltása", + "@disable_post_comments": { + "type": "text", + "placeholders": {} + }, + "enable_post_comments": "Hozzászólások engedélyezése", + "@enable_post_comments": { + "type": "text", + "placeholders": {} + }, + "comments_enabled_message": "A hozzászólások engedélyezve", + "@comments_enabled_message": { + "type": "text", + "placeholders": {} + }, + "comments_disabled_message": "A hozzászólások letiltva", + "@comments_disabled_message": { + "type": "text", + "placeholders": {} + }, + "actions_delete": "Bejegyzés törlése", + "@actions_delete": { + "type": "text", + "placeholders": {} + }, + "actions_deleted": "Bejegyzés törölve", + "@actions_deleted": { + "type": "text", + "placeholders": {} + }, + "actions_delete_comment": "Hozzászólás törlése", + "@actions_delete_comment": { + "type": "text", + "placeholders": {} + }, + "actions_edit_comment": "Hozzászólás szerkesztése", + "@actions_edit_comment": { + "type": "text", + "placeholders": {} + }, + "actions_comment_deleted": "Hozzászólás törölve", + "@actions_comment_deleted": { + "type": "text", + "placeholders": {} + }, + "actions_report_text": "Jelentés", + "@actions_report_text": { + "type": "text", + "placeholders": {} + }, + "actions_reported_text": "Jelentve", + "@actions_reported_text": { + "type": "text", + "placeholders": {} + }, + "actions_show_more_text": "Bővebben", + "@actions_show_more_text": { + "description": "Shown for posts with long text to expand the entire text.", + "type": "text", + "placeholders": {} + }, + "time_short_years": "év", + "@time_short_years": { + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3y. Keep it as short as possible", + "type": "text", + "placeholders": {} + }, + "time_short_one_year": "1év", + "@time_short_one_year": { + "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", + "type": "text", + "placeholders": {} + }, + "time_short_weeks": "h", + "@time_short_weeks": { + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 5w.Keep it as short as possible ", + "type": "text", + "placeholders": {} + }, + "time_short_one_week": "1h", + "@time_short_one_week": { + "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", + "type": "text", + "placeholders": {} + }, + "time_short_days": "n", + "@time_short_days": { + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3d. Keep it as short as possible ", + "type": "text", + "placeholders": {} + }, + "time_short_one_day": "1n", + "@time_short_one_day": { + "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", + "type": "text", + "placeholders": {} + }, + "time_short_hours": "ó", + "@time_short_hours": { + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3h.Keep it as short as possible ", + "type": "text", + "placeholders": {} + }, + "time_short_one_hour": "1ó", + "@time_short_one_hour": { + "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", + "type": "text", + "placeholders": {} + }, + "time_short_minutes": "p", + "@time_short_minutes": { + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 13m.Keep it as short as possible ", + "type": "text", + "placeholders": {} + }, + "time_short_seconds": "mp", + "@time_short_seconds": { + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 13s Keep it as short as possible ", + "type": "text", + "placeholders": {} + }, + "time_short_one_minute": "1p", + "@time_short_one_minute": { + "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", + "type": "text", + "placeholders": {} + }, + "time_short_now_text": "most", + "@time_short_now_text": { + "description": "Shown when a post was immediately posted, as in time posted is 'now'.Should be as few characters as possible.", + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/hu/post_body_link_preview.arb b/assets/i18n/hu/post_body_link_preview.arb new file mode 100644 index 000000000..fc41d5e67 --- /dev/null +++ b/assets/i18n/hu/post_body_link_preview.arb @@ -0,0 +1,14 @@ +{ + "empty": "This link could not be previewed", + "@empty": { + "type": "text", + "placeholders": {} + }, + "error_with_description": "Failed to preview link with website error: {description}", + "@error_with_description": { + "type": "text", + "placeholders": { + "description": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/hu/post_body_media.arb b/assets/i18n/hu/post_body_media.arb new file mode 100644 index 000000000..152724372 --- /dev/null +++ b/assets/i18n/hu/post_body_media.arb @@ -0,0 +1,7 @@ +{ + "unsupported": "Nem támogatott médiaformátum", + "@unsupported": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/hu/post_uploader.arb b/assets/i18n/hu/post_uploader.arb new file mode 100644 index 000000000..417e914f6 --- /dev/null +++ b/assets/i18n/hu/post_uploader.arb @@ -0,0 +1,47 @@ +{ + "generic_upload_failed": "Sikertelen feltöltés", + "@generic_upload_failed": { + "type": "text", + "placeholders": {} + }, + "creating_post": "Bejegyzés létrehozása...", + "@creating_post": { + "type": "text", + "placeholders": {} + }, + "compressing_media": "Média tömörítése...", + "@compressing_media": { + "type": "text", + "placeholders": {} + }, + "uploading_media": "Média feltöltése...", + "@uploading_media": { + "type": "text", + "placeholders": {} + }, + "publishing": "Bejegyzés közzététele...", + "@publishing": { + "type": "text", + "placeholders": {} + }, + "processing": "Bejegyzés feldolgozása...", + "@processing": { + "type": "text", + "placeholders": {} + }, + "success": "Siker!", + "@success": { + "type": "text", + "placeholders": {} + }, + "cancelling": "Megszakítás", + "@cancelling": { + "type": "text", + "placeholders": {} + }, + "cancelled": "Megszakítva!", + "@cancelled": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/hu/posts_stream.arb b/assets/i18n/hu/posts_stream.arb new file mode 100644 index 000000000..68d715b09 --- /dev/null +++ b/assets/i18n/hu/posts_stream.arb @@ -0,0 +1,47 @@ +{ + "all_loaded": "🎉 Összes bejegyzés betöltve", + "@all_loaded": { + "type": "text", + "placeholders": {} + }, + "refreshing_drhoo_title": "Csak egy pillanat!", + "@refreshing_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "refreshing_drhoo_subtitle": "Hírfolyam újratöltése.", + "@refreshing_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "empty_drhoo_title": "Ez a hírfolyam üres.", + "@empty_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "empty_drhoo_subtitle": "Próbáld újra pár másodperc múlva.", + "@empty_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "failed_drhoo_title": "Nem sikerült betölteni a hírfolyamot.", + "@failed_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "failed_drhoo_subtitle": "Próbáld újra pár másodperc múlva", + "@failed_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "status_tile_empty": "Nem található bejegyzés", + "@status_tile_empty": { + "type": "text", + "placeholders": {} + }, + "status_tile_no_more_to_load": "🎉 Összes bejegyzés betöltve", + "@status_tile_no_more_to_load": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/hu/user.arb b/assets/i18n/hu/user.arb new file mode 100644 index 000000000..a504e9f0c --- /dev/null +++ b/assets/i18n/hu/user.arb @@ -0,0 +1,980 @@ +{ + "thousand_postfix": "e", + "@thousand_postfix": { + "description": "For eg. communty has 3k members", + "type": "text", + "placeholders": {} + }, + "million_postfix": "mln", + "@million_postfix": { + "description": "For eg. user has 3m followers", + "type": "text", + "placeholders": {} + }, + "billion_postfix": "mld", + "@billion_postfix": { + "description": "For eg. World circle has 7.5b people", + "type": "text", + "placeholders": {} + }, + "translate_see_translation": "Fordítás megtekintése", + "@translate_see_translation": { + "type": "text", + "placeholders": {} + }, + "translate_show_original": "Eredeti megtekintése", + "@translate_show_original": { + "type": "text", + "placeholders": {} + }, + "follows_lists_account": "1 fiók", + "@follows_lists_account": { + "type": "text", + "placeholders": {} + }, + "follows_lists_accounts": "{prettyUsersCount} fiók", + "@follows_lists_accounts": { + "description": "prettyUsersCount will be 3m, 50k etc.. so we endup with final string 3k Accounts", + "type": "text", + "placeholders": { + "prettyUsersCount": {} + } + }, + "edit_profile_user_name_taken": "A(z) @{username} felhasználónév foglalt", + "@edit_profile_user_name_taken": { + "type": "text", + "placeholders": { + "username": {} + } + }, + "profile_action_deny_connection": "Kapcsolódási kérelem visszautasítása", + "@profile_action_deny_connection": { + "type": "text", + "placeholders": {} + }, + "profile_action_user_blocked": "Felhasználó letiltva", + "@profile_action_user_blocked": { + "type": "text", + "placeholders": {} + }, + "profile_action_user_unblocked": "Felhasználó tiltása törölve", + "@profile_action_user_unblocked": { + "type": "text", + "placeholders": {} + }, + "profile_action_cancel_connection": "Kapcsolódási kérelem visszavonása", + "@profile_action_cancel_connection": { + "type": "text", + "placeholders": {} + }, + "profile_url_invalid_error": "Kérünk, adj meg egy érvényes URL-t.", + "@profile_url_invalid_error": { + "type": "text", + "placeholders": {} + }, + "profile_location_length_error": "A hely nem lehet {maxLength} karakternél hosszabb.", + "@profile_location_length_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "profile_bio_length_error": "A bemutatkozás nem lehet {maxLength} karakternél hosszabb.", + "@profile_bio_length_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "follow_button_follow_text": "Követés", + "@follow_button_follow_text": { + "type": "text", + "placeholders": {} + }, + "follow_button_unfollow_text": "Követés törlése", + "@follow_button_unfollow_text": { + "type": "text", + "placeholders": {} + }, + "edit_profile_username": "Felhasználónév", + "@edit_profile_username": { + "type": "text", + "placeholders": {} + }, + "add_account_update_account_lists": "Fióklisták frissítése", + "@add_account_update_account_lists": { + "type": "text", + "placeholders": {} + }, + "add_account_to_lists": "Fiók hozzáadása listákhoz", + "@add_account_to_lists": { + "type": "text", + "placeholders": {} + }, + "add_account_update_lists": "Listák frissítése", + "@add_account_update_lists": { + "type": "text", + "placeholders": {} + }, + "add_account_save": "Mentés", + "@add_account_save": { + "type": "text", + "placeholders": {} + }, + "add_account_done": "Kész", + "@add_account_done": { + "type": "text", + "placeholders": {} + }, + "add_account_success": "Siker", + "@add_account_success": { + "type": "text", + "placeholders": {} + }, + "emoji_field_none_selected": "Nincs kiválasztott emoji", + "@emoji_field_none_selected": { + "type": "text", + "placeholders": {} + }, + "emoji_search_none_found": "Nem találhatóak emojik a(z) \"{searchQuery}\" keresésre.", + "@emoji_search_none_found": { + "type": "text", + "placeholders": { + "searchQuery": {} + } + }, + "follow_lists_title": "Listáim", + "@follow_lists_title": { + "type": "text", + "placeholders": {} + }, + "follow_lists_search_for": "Listák keresése...", + "@follow_lists_search_for": { + "type": "text", + "placeholders": {} + }, + "follow_lists_no_list_found": "Nem találhatóak listák.", + "@follow_lists_no_list_found": { + "type": "text", + "placeholders": {} + }, + "follow_lists_no_list_found_for": "Nem található lista a(z) \"{searchQuery}\" keresésre", + "@follow_lists_no_list_found_for": { + "type": "text", + "placeholders": { + "searchQuery": {} + } + }, + "list_name_empty_error": "A lista neve nem lehet üres.", + "@list_name_empty_error": { + "type": "text", + "placeholders": {} + }, + "list_name_range_error": "A lista neve nem lehet {maxLength} karakternél hosszabb.", + "@list_name_range_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "circle_name_empty_error": "A kör neve nem lehet üres.", + "@circle_name_empty_error": { + "type": "text", + "placeholders": {} + }, + "circle_name_range_error": "A kör neve nem lehet {maxLength} karakternél hosszabb.", + "@circle_name_range_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "save_follows_list_name": "Név", + "@save_follows_list_name": { + "type": "text", + "placeholders": {} + }, + "save_follows_list_hint_text": "pl.: Utazás, Fényképészet", + "@save_follows_list_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_follows_list_name_taken": "A(z) '{listName}' listanév már foglalt", + "@save_follows_list_name_taken": { + "type": "text", + "placeholders": { + "listName": {} + } + }, + "save_follows_list_emoji": "Emoji", + "@save_follows_list_emoji": { + "type": "text", + "placeholders": {} + }, + "save_follows_list_users": "Felhasználók", + "@save_follows_list_users": { + "type": "text", + "placeholders": {} + }, + "save_follows_list_edit": "Lista szerkesztése", + "@save_follows_list_edit": { + "type": "text", + "placeholders": {} + }, + "save_follows_list_create": "Lista létrehozása", + "@save_follows_list_create": { + "type": "text", + "placeholders": {} + }, + "save_follows_list_save": "Mentés", + "@save_follows_list_save": { + "type": "text", + "placeholders": {} + }, + "save_follows_list_emoji_required_error": "Az emoji kötelező", + "@save_follows_list_emoji_required_error": { + "type": "text", + "placeholders": {} + }, + "follows_list_edit": "Szerkeszt", + "@follows_list_edit": { + "type": "text", + "placeholders": {} + }, + "follows_list_header_title": "Felhasználók", + "@follows_list_header_title": { + "type": "text", + "placeholders": {} + }, + "edit_profile_name": "Név", + "@edit_profile_name": { + "type": "text", + "placeholders": {} + }, + "edit_profile_url": "URL", + "@edit_profile_url": { + "type": "text", + "placeholders": {} + }, + "edit_profile_location": "Hely", + "@edit_profile_location": { + "type": "text", + "placeholders": {} + }, + "edit_profile_bio": "Bemutatkozás", + "@edit_profile_bio": { + "type": "text", + "placeholders": {} + }, + "edit_profile_followers_count": "Követők száma", + "@edit_profile_followers_count": { + "type": "text", + "placeholders": {} + }, + "edit_profile_community_posts": "Közösségi bejegyzések", + "@edit_profile_community_posts": { + "type": "text", + "placeholders": {} + }, + "edit_profile_title": "Profil szerkesztése", + "@edit_profile_title": { + "type": "text", + "placeholders": {} + }, + "edit_profile_save_text": "Mentés", + "@edit_profile_save_text": { + "type": "text", + "placeholders": {} + }, + "edit_profile_pick_image": "Kép kiválasztása", + "@edit_profile_pick_image": { + "type": "text", + "placeholders": {} + }, + "edit_profile_delete": "Törlés", + "@edit_profile_delete": { + "type": "text", + "placeholders": {} + }, + "edit_profile_pick_image_error_too_large": "A kép túl nagy (korlát: {limit} MB)", + "@edit_profile_pick_image_error_too_large": { + "type": "text", + "placeholders": { + "limit": {} + } + }, + "tile_following": " · követve", + "@tile_following": { + "type": "text", + "placeholders": {} + }, + "following_text": "Követve", + "@following_text": { + "type": "text", + "placeholders": {} + }, + "following_resource_name": "követett felhasználó", + "@following_resource_name": { + "description": "Eg: Search followed users.., No followed users found. etc ", + "type": "text", + "placeholders": {} + }, + "tile_delete": "Törlés", + "@tile_delete": { + "type": "text", + "placeholders": {} + }, + "invite": "Meghívás", + "@invite": { + "type": "text", + "placeholders": {} + }, + "uninvite": "Meghívás törlése", + "@uninvite": { + "type": "text", + "placeholders": {} + }, + "invite_member": "Tag", + "@invite_member": { + "type": "text", + "placeholders": {} + }, + "invite_someone_message": "Szia! Meg szeretnélek hívni az Okuna közösségi hálózatra. Először is töltsd le az alkalmazást az iTunes-ról ({iosLink}) vagy a Play áruházból ({androidLink}). Utána illeszd be ezt a személyre szabott meghívó linket az Okuna alkalmazásban: {inviteLink}", + "@invite_someone_message": { + "type": "text", + "placeholders": { + "iosLink": {}, + "androidLink": {}, + "inviteLink": {} + } + }, + "connections_header_circle_desc": "A kör, melyhez az összes kapcsolatot hozzá lesz adva.", + "@connections_header_circle_desc": { + "type": "text", + "placeholders": {} + }, + "connections_header_users": "Felhasználók", + "@connections_header_users": { + "type": "text", + "placeholders": {} + }, + "connection_pending": "Függőben", + "@connection_pending": { + "type": "text", + "placeholders": {} + }, + "connection_circle_edit": "Szerkeszt", + "@connection_circle_edit": { + "type": "text", + "placeholders": {} + }, + "connections_circle_delete": "Törlés", + "@connections_circle_delete": { + "type": "text", + "placeholders": {} + }, + "save_connection_circle_name": "Név", + "@save_connection_circle_name": { + "type": "text", + "placeholders": {} + }, + "save_connection_circle_hint": "pl.: Barátok, Család, Kollégák.", + "@save_connection_circle_hint": { + "type": "text", + "placeholders": {} + }, + "save_connection_circle_color_name": "Szín", + "@save_connection_circle_color_name": { + "type": "text", + "placeholders": {} + }, + "save_connection_circle_color_hint": "(Koppints a módosításhoz)", + "@save_connection_circle_color_hint": { + "type": "text", + "placeholders": {} + }, + "save_connection_circle_users": "Felhasználók", + "@save_connection_circle_users": { + "type": "text", + "placeholders": {} + }, + "save_connection_circle_edit": "Kör szerkesztése", + "@save_connection_circle_edit": { + "type": "text", + "placeholders": {} + }, + "save_connection_circle_create": "Kör létrehozása", + "@save_connection_circle_create": { + "type": "text", + "placeholders": {} + }, + "save_connection_circle_save": "Mentés", + "@save_connection_circle_save": { + "type": "text", + "placeholders": {} + }, + "update_connection_circle_save": "Mentés", + "@update_connection_circle_save": { + "type": "text", + "placeholders": {} + }, + "update_connection_circle_updated": "Kapcsolat frissítve", + "@update_connection_circle_updated": { + "type": "text", + "placeholders": {} + }, + "update_connection_circles_title": "Kapcsolati körök frissítése", + "@update_connection_circles_title": { + "type": "text", + "placeholders": {} + }, + "confirm_connection_with": "Kapcsolat megerősítése vele: {userName}", + "@confirm_connection_with": { + "type": "text", + "placeholders": { + "userName": {} + } + }, + "confirm_connection_add_connection": "Kapcsolat hozzáadása körökhöz", + "@confirm_connection_add_connection": { + "type": "text", + "placeholders": {} + }, + "confirm_connection_connection_confirmed": "Kapcsolat megerősítve", + "@confirm_connection_connection_confirmed": { + "type": "text", + "placeholders": {} + }, + "confirm_connection_confirm_text": "Megerősít", + "@confirm_connection_confirm_text": { + "type": "text", + "placeholders": {} + }, + "connect_to_user_connect_with_username": "Kapcsolódás vele: {userName}", + "@connect_to_user_connect_with_username": { + "type": "text", + "placeholders": { + "userName": {} + } + }, + "connect_to_user_add_connection": "Kapcsolat hozzáadása körökhöz", + "@connect_to_user_add_connection": { + "type": "text", + "placeholders": {} + }, + "connect_to_user_done": "Kész", + "@connect_to_user_done": { + "type": "text", + "placeholders": {} + }, + "connect_to_user_request_sent": "Kapcsolódási kérelem elküldve", + "@connect_to_user_request_sent": { + "type": "text", + "placeholders": {} + }, + "remove_account_from_list": "Fiók törlése a listákból", + "@remove_account_from_list": { + "type": "text", + "placeholders": {} + }, + "remove_account_from_list_success": "Siker", + "@remove_account_from_list_success": { + "type": "text", + "placeholders": {} + }, + "confirm_block_user_title": "Megerősítés", + "@confirm_block_user_title": { + "type": "text", + "placeholders": {} + }, + "confirm_block_user_info": "Nem láthatjátok egymás bejegyzéseit és semmilyen módon nem léphettek kapcsolatba egymással.", + "@confirm_block_user_info": { + "type": "text", + "placeholders": {} + }, + "confirm_block_user_yes": "Igen", + "@confirm_block_user_yes": { + "type": "text", + "placeholders": {} + }, + "confirm_block_user_no": "Nem", + "@confirm_block_user_no": { + "type": "text", + "placeholders": {} + }, + "confirm_block_user_blocked": "Felhasználó letiltva.", + "@confirm_block_user_blocked": { + "type": "text", + "placeholders": {} + }, + "confirm_block_user_question": "Biztosan le szeretnéd tiltani @{username}-t?", + "@confirm_block_user_question": { + "type": "text", + "placeholders": { + "username": {} + } + }, + "save_connection_circle_name_taken": "A(z) '{takenConnectionsCircleName}' körnév már foglalt", + "@save_connection_circle_name_taken": { + "type": "text", + "placeholders": { + "takenConnectionsCircleName": {} + } + }, + "timeline_filters_title": "Idővonal szűrők", + "@timeline_filters_title": { + "type": "text", + "placeholders": {} + }, + "timeline_filters_search_desc": "Körök és listák keresése...", + "@timeline_filters_search_desc": { + "type": "text", + "placeholders": {} + }, + "timeline_filters_clear_all": "Összes törlése", + "@timeline_filters_clear_all": { + "type": "text", + "placeholders": {} + }, + "timeline_filters_apply_all": "Szűrők alkalmazása", + "@timeline_filters_apply_all": { + "type": "text", + "placeholders": {} + }, + "timeline_filters_circles": "Körök", + "@timeline_filters_circles": { + "type": "text", + "placeholders": {} + }, + "timeline_filters_lists": "Listák", + "@timeline_filters_lists": { + "type": "text", + "placeholders": {} + }, + "followers_title": "Követők", + "@followers_title": { + "type": "text", + "placeholders": {} + }, + "follower_singular": "követő", + "@follower_singular": { + "type": "text", + "placeholders": {} + }, + "follower_plural": "követő", + "@follower_plural": { + "type": "text", + "placeholders": {} + }, + "delete_account_title": "Fiók törlése", + "@delete_account_title": { + "type": "text", + "placeholders": {} + }, + "delete_account_current_pwd": "Jelenlegi jelszó", + "@delete_account_current_pwd": { + "type": "text", + "placeholders": {} + }, + "delete_account_current_pwd_hint": "Írd be a jelenlegi jelszavad", + "@delete_account_current_pwd_hint": { + "type": "text", + "placeholders": {} + }, + "delete_account_next": "Következő", + "@delete_account_next": { + "type": "text", + "placeholders": {} + }, + "delete_account_confirmation_title": "Megerősítés", + "@delete_account_confirmation_title": { + "type": "text", + "placeholders": {} + }, + "delete_account_confirmation_desc": "Biztosan törölni szeretnéd a fiókodat?", + "@delete_account_confirmation_desc": { + "type": "text", + "placeholders": {} + }, + "delete_account_confirmation_desc_info": "Ez a művelet végleges és nem visszavonható.", + "@delete_account_confirmation_desc_info": { + "type": "text", + "placeholders": {} + }, + "delete_account_confirmation_no": "Nem", + "@delete_account_confirmation_no": { + "type": "text", + "placeholders": {} + }, + "delete_account_confirmation_yes": "Igen", + "@delete_account_confirmation_yes": { + "type": "text", + "placeholders": {} + }, + "delete_account_confirmation_goodbye": "Viszlát... 😢", + "@delete_account_confirmation_goodbye": { + "type": "text", + "placeholders": {} + }, + "invites_create_create_title": "Meghívó létrehozása", + "@invites_create_create_title": { + "type": "text", + "placeholders": {} + }, + "invites_create_edit_title": "Meghívó szerkesztése", + "@invites_create_edit_title": { + "type": "text", + "placeholders": {} + }, + "invites_create_save": "Mentés", + "@invites_create_save": { + "type": "text", + "placeholders": {} + }, + "invites_create_create": "Létrehozás", + "@invites_create_create": { + "type": "text", + "placeholders": {} + }, + "invites_create_name_title": "Becenév", + "@invites_create_name_title": { + "type": "text", + "placeholders": {} + }, + "invites_create_name_hint": "pl. Kovács Anna", + "@invites_create_name_hint": { + "type": "text", + "placeholders": {} + }, + "invites_pending": "Függőben", + "@invites_pending": { + "type": "text", + "placeholders": {} + }, + "invites_delete": "Törlés", + "@invites_delete": { + "type": "text", + "placeholders": {} + }, + "invites_invite_text": "Meghívás", + "@invites_invite_text": { + "type": "text", + "placeholders": {} + }, + "invites_share_yourself": "Megosztom a meghívót magam", + "@invites_share_yourself": { + "type": "text", + "placeholders": {} + }, + "invites_share_yourself_desc": "Válassz chat alkalmazások, stb. közül", + "@invites_share_yourself_desc": { + "type": "text", + "placeholders": {} + }, + "invites_share_email": "Megosztom a meghívót e-mailben", + "@invites_share_email": { + "type": "text", + "placeholders": {} + }, + "invites_email_text": "E-mail cím", + "@invites_email_text": { + "type": "text", + "placeholders": {} + }, + "invites_email_hint": "pl.: kovacsanna@email.hu", + "@invites_email_hint": { + "type": "text", + "placeholders": {} + }, + "invites_email_invite_text": "E-mail meghívó", + "@invites_email_invite_text": { + "type": "text", + "placeholders": {} + }, + "invites_email_send_text": "Küldés", + "@invites_email_send_text": { + "type": "text", + "placeholders": {} + }, + "invites_email_sent_text": "Meghívó e-mail elküldve", + "@invites_email_sent_text": { + "type": "text", + "placeholders": {} + }, + "invites_share_email_desc": "Elküldünk egy meghívó e-mailt az utasításokkal a részedről", + "@invites_share_email_desc": { + "type": "text", + "placeholders": {} + }, + "invites_edit_text": "Szerkeszt", + "@invites_edit_text": { + "type": "text", + "placeholders": {} + }, + "invites_title": "Meghívóim", + "@invites_title": { + "type": "text", + "placeholders": {} + }, + "invites_accepted_title": "Elfogadva", + "@invites_accepted_title": { + "type": "text", + "placeholders": {} + }, + "invites_accepted_group_name": "elfogadott meghívók", + "@invites_accepted_group_name": { + "description": "Egs where this will end up: Accepted invites (capitalised title), Search accepted invites, See all accepted invites ", + "type": "text", + "placeholders": {} + }, + "invites_accepted_group_item_name": "elfogadott meghívó", + "@invites_accepted_group_item_name": { + "type": "text", + "placeholders": {} + }, + "invites_pending_group_name": "függő meghívók", + "@invites_pending_group_name": { + "type": "text", + "placeholders": {} + }, + "invites_pending_group_item_name": "függő meghívó", + "@invites_pending_group_item_name": { + "type": "text", + "placeholders": {} + }, + "invites_none_used": "Úgy fest nem használtál egy meghívót sem.", + "@invites_none_used": { + "type": "text", + "placeholders": {} + }, + "invites_none_left": "Jelenleg nem hozhatsz létre több meghívót.", + "@invites_none_left": { + "type": "text", + "placeholders": {} + }, + "invites_invite_a_friend": "Ismerős meghívása", + "@invites_invite_a_friend": { + "type": "text", + "placeholders": {} + }, + "invites_refresh": "Frissítés", + "@invites_refresh": { + "type": "text", + "placeholders": {} + }, + "language_settings_title": "Nyelvi beállítások", + "@language_settings_title": { + "type": "text", + "placeholders": {} + }, + "language_settings_save": "Mentés", + "@language_settings_save": { + "type": "text", + "placeholders": {} + }, + "language_settings_saved_success": "Nyelv sikeresen megváltoztatva", + "@language_settings_saved_success": { + "type": "text", + "placeholders": {} + }, + "groups_see_all": "Összes {groupName} megtekintése", + "@groups_see_all": { + "description": "Can be, See all joined communities, See all pending invites, See all moderated communities etc. ", + "type": "text", + "placeholders": { + "groupName": {} + } + }, + "invites_joined_with": "Regisztrált a(z) @{username} felhasználónévvel", + "@invites_joined_with": { + "type": "text", + "placeholders": { + "username": {} + } + }, + "invites_pending_email": "Függőben, meghívó elküldve erre az e-mail címre: {email}", + "@invites_pending_email": { + "type": "text", + "placeholders": { + "email": {} + } + }, + "timeline_filters_no_match": "Nincs találat a(z) \"{searchQuery}\" keresésre.", + "@timeline_filters_no_match": { + "type": "text", + "placeholders": { + "searchQuery": {} + } + }, + "clear_application_cache_text": "Gyorsítótár ürítése", + "@clear_application_cache_text": { + "type": "text", + "placeholders": {} + }, + "clear_application_cache_desc": "Gyorsítótárazott bejegyzések, fiókok, képek, stb. törlése.", + "@clear_application_cache_desc": { + "type": "text", + "placeholders": {} + }, + "clear_application_cache_success": "Gyorsítótár sikeresen ürítve", + "@clear_application_cache_success": { + "type": "text", + "placeholders": {} + }, + "clear_application_cache_failure": "Nem sikerült törölni a gyorsítótárat", + "@clear_application_cache_failure": { + "type": "text", + "placeholders": {} + }, + "confirm_guidelines_reject_title": "Irányelvek elutasítása", + "@confirm_guidelines_reject_title": { + "type": "text", + "placeholders": {} + }, + "confirm_guidelines_reject_info": "Nem használhatod az Okunát amíg nem fogadod el az irányelveket.", + "@confirm_guidelines_reject_info": { + "type": "text", + "placeholders": {} + }, + "confirm_guidelines_reject_chat_with_team": "Beszélgess a csapattal.", + "@confirm_guidelines_reject_chat_with_team": { + "type": "text", + "placeholders": {} + }, + "confirm_guidelines_reject_chat_immediately": "Azonnali beszélgetés kezdeményezése.", + "@confirm_guidelines_reject_chat_immediately": { + "type": "text", + "placeholders": {} + }, + "confirm_guidelines_reject_chat_community": "Beszélgess a közösséggel.", + "@confirm_guidelines_reject_chat_community": { + "type": "text", + "placeholders": {} + }, + "confirm_guidelines_reject_join_slack": "Csatlakozz a Slack csatornánkhoz.", + "@confirm_guidelines_reject_join_slack": { + "type": "text", + "placeholders": {} + }, + "confirm_guidelines_reject_go_back": "Vissza", + "@confirm_guidelines_reject_go_back": { + "type": "text", + "placeholders": {} + }, + "confirm_guidelines_reject_delete_account": "Fiók törlése", + "@confirm_guidelines_reject_delete_account": { + "type": "text", + "placeholders": {} + }, + "guidelines_desc": "Kérünk, szánj pár percet arra, hogy elolvasd és elfogadd az irányelveinket.", + "@guidelines_desc": { + "type": "text", + "placeholders": {} + }, + "guidelines_accept": "Elfogad", + "@guidelines_accept": { + "type": "text", + "placeholders": {} + }, + "guidelines_reject": "Elutasít", + "@guidelines_reject": { + "type": "text", + "placeholders": {} + }, + "change_email_title": "E-mail cím módosítása", + "@change_email_title": { + "type": "text", + "placeholders": {} + }, + "change_email_email_text": "E-mail cím", + "@change_email_email_text": { + "type": "text", + "placeholders": {} + }, + "change_email_hint_text": "Add meg az új e-mail címedet", + "@change_email_hint_text": { + "type": "text", + "placeholders": {} + }, + "change_email_error": "Ez az e-mail cím már regisztrálva van", + "@change_email_error": { + "type": "text", + "placeholders": {} + }, + "change_email_save": "Mentés", + "@change_email_save": { + "type": "text", + "placeholders": {} + }, + "change_email_success_info": "Elküldtünk egy visszaigazoló linket az új e-mail címedre. Kattints rá az új e-mail címed megerősítéséhez", + "@change_email_success_info": { + "type": "text", + "placeholders": {} + }, + "clear_app_preferences_title": "Beállítások törlése", + "@clear_app_preferences_title": { + "type": "text", + "placeholders": {} + }, + "clear_app_preferences_desc": "Az alkalmazás beállításainak törlése. Jelenleg ez az opció csak a hozzászólások megjelenítési sorrendjét vonja magába.", + "@clear_app_preferences_desc": { + "type": "text", + "placeholders": {} + }, + "clear_app_preferences_cleared_successfully": "Beállítások sikeresen törölve", + "@clear_app_preferences_cleared_successfully": { + "type": "text", + "placeholders": {} + }, + "email_verification_successful": "Remek! Az e-mail címed meg lett erősítve", + "@email_verification_successful": { + "type": "text", + "placeholders": {} + }, + "email_verification_error": "Hoppá! A tokened nem érvényes vagy már lejárt. Kérünk, próbáld újra", + "@email_verification_error": { + "type": "text", + "placeholders": {} + }, + "clear_app_preferences_error": "Nem sikerült törölni a beállításokat", + "@clear_app_preferences_error": { + "type": "text", + "placeholders": {} + }, + "disconnect_from_user_success": "Kapcsolat sikeresen törölve", + "@disconnect_from_user_success": { + "type": "text", + "placeholders": {} + }, + "block_user": "Felhasználó letiltása", + "@block_user": { + "type": "text", + "placeholders": {} + }, + "unblock_user": "Felhasználó tiltásának törlése", + "@unblock_user": { + "type": "text", + "placeholders": {} + }, + "disconnect_from_user": "Kapcsolat törlése vele: {userName}", + "@disconnect_from_user": { + "type": "text", + "placeholders": { + "userName": {} + } + }, + "circle_peoples_count": "{prettyUsersCount} ember", + "@circle_peoples_count": { + "type": "text", + "placeholders": { + "prettyUsersCount": {} + } + }, + "follows_list_accounts_count": "{prettyUsersCount} fiók", + "@follows_list_accounts_count": { + "type": "text", + "placeholders": { + "prettyUsersCount": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/hu/user_search.arb b/assets/i18n/hu/user_search.arb new file mode 100644 index 000000000..d4eac2d57 --- /dev/null +++ b/assets/i18n/hu/user_search.arb @@ -0,0 +1,76 @@ +{ + "search_text": "Keresés...", + "@search_text": { + "type": "text", + "placeholders": {} + }, + "communities": "Közösségek", + "@communities": { + "type": "text", + "placeholders": {} + }, + "users": "Felhasználók", + "@users": { + "type": "text", + "placeholders": {} + }, + "list_search_text": "{resourcePluralName} keresése...", + "@list_search_text": { + "description": "resourcePluralName can take many forms foreg. Search members... , Search accepted invites, Search communities.. etc.", + "type": "text", + "placeholders": { + "resourcePluralName": {} + } + }, + "list_no_results_found": "Nem találhatóak {resourcePluralName}.", + "@list_no_results_found": { + "description": "Used in a generic list widget. Can be No users found. No communities found. No pending invites found. Its always a plural. ", + "type": "text", + "placeholders": { + "resourcePluralName": {} + } + }, + "list_refresh_text": "Frissítés", + "@list_refresh_text": { + "type": "text", + "placeholders": {} + }, + "list_retry": "Koppints az újrapróbálkozáshoz.", + "@list_retry": { + "type": "text", + "placeholders": {} + }, + "cancel": "Mégse", + "@cancel": { + "type": "text", + "placeholders": {} + }, + "searching_for": "\"{searchQuery}\" keresése", + "@searching_for": { + "type": "text", + "placeholders": { + "searchQuery": {} + } + }, + "no_results_for": "Nincs találat a(z) \"{searchQuery}\" keresésre.", + "@no_results_for": { + "type": "text", + "placeholders": { + "searchQuery": {} + } + }, + "no_communities_for": "Nem található közösség a(z) \"{searchQuery}\" keresésre.", + "@no_communities_for": { + "type": "text", + "placeholders": { + "searchQuery": {} + } + }, + "no_users_for": "Nem található felhasználó a(z) \"{searchQuery}\" keresésre.", + "@no_users_for": { + "type": "text", + "placeholders": { + "searchQuery": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/hu/video_picker.arb b/assets/i18n/hu/video_picker.arb new file mode 100644 index 000000000..10bfe1a16 --- /dev/null +++ b/assets/i18n/hu/video_picker.arb @@ -0,0 +1,12 @@ +{ + "from_gallery": "Galériából", + "@from_gallery": { + "type": "text", + "placeholders": {} + }, + "from_camera": "Kameráról", + "@from_camera": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/it/application_settings.arb b/assets/i18n/it/application_settings.arb new file mode 100644 index 000000000..65e1b7ebc --- /dev/null +++ b/assets/i18n/it/application_settings.arb @@ -0,0 +1,82 @@ +{ + "videos": "Video", + "@videos": { + "type": "text", + "placeholders": {} + }, + "link_previews": "Anteprime link", + "@link_previews": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay": "Riproduzione automatica", + "@videos_autoplay": { + "type": "text", + "placeholders": {} + }, + "link_previews_show": "Mostra", + "@link_previews_show": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_always": "Sempre", + "@videos_autoplay_always": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_wifi_only": "Solo Wi-Fi", + "@videos_autoplay_wifi_only": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_never": "Mai", + "@videos_autoplay_never": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_always": "Sempre", + "@link_previews_autoplay_always": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_wifi_only": "Solo WiFi", + "@link_previews_autoplay_wifi_only": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_never": "Mai", + "@link_previews_autoplay_never": { + "type": "text", + "placeholders": {} + }, + "videos_sound": "Suono", + "@videos_sound": { + "type": "text", + "placeholders": {} + }, + "tap_to_change": "(Tocca per cambiare)", + "@tap_to_change": { + "type": "text", + "placeholders": {} + }, + "videos_sound_enabled": "Abilitato", + "@videos_sound_enabled": { + "type": "text", + "placeholders": {} + }, + "videos_sound_disabled": "Disabilitato", + "@videos_sound_disabled": { + "type": "text", + "placeholders": {} + }, + "comment_sort_newest_first": "Prima i più recenti", + "@comment_sort_newest_first": { + "type": "text", + "placeholders": {} + }, + "comment_sort_oldest_first": "Prima i più vecchi", + "@comment_sort_oldest_first": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/it/auth.arb b/assets/i18n/it/auth.arb index 9740ff30d..8c5c26ce3 100644 --- a/assets/i18n/it/auth.arb +++ b/assets/i18n/it/auth.arb @@ -1,745 +1,531 @@ { - "headline": "Better social.", + "headline": "Un social migliore. ", "@headline": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login": "Accedi", "@login": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "email_empty_error": "Il campo email non può essere vuoto.", "@email_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "email_invalid_error": "Per favore inserisci un indirizzo email valido.", "@email_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "username_empty_error": "Il nome utente non può essere vuoto.", "@username_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "username_characters_error": "Un nome utente può contenere solo caratteri alfanumerici e trattini bassi.", "@username_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "username_maxlength_error": "Un commento non può essere più lungo di {maxLength} caratteri.", "@username_maxlength_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "create_account": "Iscriviti", "@create_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__lets_get_started": "Iniziamo", "@create_acc__lets_get_started": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__welcome_to_beta": "Benvenuto nella Beta!", "@create_acc__welcome_to_beta": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__previous": "Indietro", "@create_acc__previous": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__next": "Avanti", "@create_acc__next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__create_account": "Crea un account", "@create_acc__create_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__paste_link": "Incolla il link di registrazione qui sotto", "@create_acc__paste_link": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__paste_password_reset_link": "Incolla il link di reset della password qui sotto", "@create_acc__paste_password_reset_link": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__paste_link_help_text": "Usa il link dal pulsante Join Okuna nella tua email di invito.", "@create_acc__paste_link_help_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__link_empty_error": "Il link non può essere vuoto.", "@create_acc__link_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__link_invalid_error": "Questo link sembra non valido.", "@create_acc__link_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "password_empty_error": "La password non può essere vuota.", "@password_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "password_range_error": "La password deve essere compresa tra {minLength} e {maxLength} caratteri.", "@password_range_error": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, "name_empty_error": "Il nome non può essere vuoto.", "@name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "name_range_error": "Il nome deve essere compreso tra {minLength} e {maxLength} caratteri.", "@name_range_error": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, "description_empty_error": "La descrizione non può essere vuota.", "@description_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "description_range_error": "La descrizione deve essere compresa tra {minLength} e {maxLength} caratteri.", "@description_range_error": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, "reset_password_success_title": "Tutto pronto!", "@reset_password_success_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reset_password_success_info": "La tua password è stata aggiornata correttamente", "@reset_password_success_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__request_invite": "Nessun invito? Richiedine uno qui.", "@create_acc__request_invite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__subscribe": "Richiedi", "@create_acc__subscribe": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__subscribe_to_waitlist_text": "Richiedi un invito!", "@create_acc__subscribe_to_waitlist_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__congratulations": "Congratulazioni!", "@create_acc__congratulations": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__your_subscribed": "Sei in posizione {0} della lista d'attesa.", "@create_acc__your_subscribed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__almost_there": "Ci siamo quasi...", "@create_acc__almost_there": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_name": "Come ti chiami?", "@create_acc__what_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__name_placeholder": "Leonardo da Vinci", "@create_acc__name_placeholder": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__name_empty_error": "😱 Il tuo nome non può essere vuoto.", "@create_acc__name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__name_length_error": "😱 Il tuo nome non può essere più lungo di 50 caratteri. (Se lo è, ci dispiace molto.)", "@create_acc__name_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__name_characters_error": "😅 Un nome può contenere solo caratteri alfanumerici (per ora).", "@create_acc__name_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_username": "Scegli un nome utente", "@create_acc__what_username": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_placeholder": "dantealighieri", "@create_acc__username_placeholder": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_empty_error": "😱 Il nome utente non può essere vuoto.", "@create_acc__username_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_length_error": "😅 Un nome utente non può essere più lungo di 30 caratteri.", "@create_acc__username_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_characters_error": "😅 Un nome utente può contenere solo caratteri alfanumerici e trattini bassi.", "@create_acc__username_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_taken_error": "😩 Il nome utente @%s è già utilizzato.", "@create_acc__username_taken_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_server_error": "😭 Stiamo riscontrando problemi con i nostri server, per favore riprova tra un paio di minuti.", "@create_acc__username_server_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_email": "Qual è la tua email?", "@create_acc__what_email": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_placeholder": "leonardo_davinci@mail.com", "@create_acc__email_placeholder": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_empty_error": "😱 La tua email non può essere vuota", "@create_acc__email_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_invalid_error": "😅 Per favore inserisci un indirizzo email valido.", "@create_acc__email_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_taken_error": "🤔 Un account esiste già per questa email.", "@create_acc__email_taken_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_server_error": "😭 Stiamo riscontrando problemi con i nostri server, per favore riprova tra un paio di minuti.", "@create_acc__email_server_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_password": "Scegli una password", "@create_acc__what_password": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc_password_hint_text": "({minLength}-{maxLength} caratteri)", "@create_acc_password_hint_text": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, "create_acc__what_password_subtext": "(minimo 10 caratteri.)", "@create_acc__what_password_subtext": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__password_empty_error": "😱 La tua password non può essere vuota", "@create_acc__password_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__password_length_error": "😅 La password deve essere compresa tra 8 e 64 caratteri.", "@create_acc__password_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_avatar": "Scegli una foto profilo", "@create_acc__what_avatar": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_tap_to_change": "Tocca per cambiare", "@create_acc__avatar_tap_to_change": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_choose_camera": "Scatta una foto", "@create_acc__avatar_choose_camera": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_choose_gallery": "Usa una foto esistente", "@create_acc__avatar_choose_gallery": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_remove_photo": "Rimuovi foto", "@create_acc__avatar_remove_photo": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done": "Crea un account", "@create_acc__done": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_subtext": "Puoi cambiarlo nelle impostazioni del tuo account.", "@create_acc__done_subtext": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_created": "Il tuo account è stato creato con nome utente ", "@create_acc__done_created": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_loading_title": "Ancora un attimo!", "@create_acc__submit_loading_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_loading_desc": "Stiamo creando il tuo account.", "@create_acc__submit_loading_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_error_title": "Oh no...", "@create_acc__submit_error_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_error_desc_server": "😭 Stiamo riscontrando problemi con i nostri server, per favore riprova tra un paio di minuti.", "@create_acc__submit_error_desc_server": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_error_desc_validation": "😅 Sembra che alcune informazioni non siano corrette, per favore controlla e prova di nuovo.", "@create_acc__submit_error_desc_validation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_title": "Urrà!", "@create_acc__done_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_description": "Il tuo account è stato creato.", "@create_acc__done_description": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__your_username_is": "Il tuo nome utente è ", "@create_acc__your_username_is": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__can_change_username": "Se lo desideri, puoi cambiarlo in qualsiasi momento dalla pagina del profilo.", "@create_acc__can_change_username": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_continue": "Accedi", "@create_acc__done_continue": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__one_last_thing": "Un'ultima cosa...", "@create_acc__one_last_thing": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__register": "Iscriviti", "@create_acc__register": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__are_you_legal_age": "Hai più di 16 anni?", "@create_acc__are_you_legal_age": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__login": "Continua", "@login__login": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__previous": "Indietro", "@login__previous": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__title": "Bentornato!", "@login__title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__subtitle": "Inserisci le tue credenziali per proseguire.", "@login__subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__forgot_password": "Password dimenticata", "@login__forgot_password": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__forgot_password_subtitle": "Il tuo nome utente o email", "@login__forgot_password_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_label": "Nome utente", "@login__username_label": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__password_label": "Password", "@login__password_label": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__email_label": "Email", "@login__email_label": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__or_text": "Oppure", "@login__or_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__password_empty_error": "La password è necessaria.", "@login__password_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__password_length_error": "La password deve essere compresa tra 8 e 64 caratteri.", "@login__password_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_empty_error": "Il nome utente è richiesto.", "@login__username_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_length_error": "Il nome utente non può essere più lungo di 30 caratteri.", "@login__username_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_characters_error": "Il nome utente può contenere solo caratteri alfanumerici e trattini bassi.", "@login__username_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__credentials_mismatch_error": "Le credenziali fornite non corrispondono.", "@login__credentials_mismatch_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__server_error": "Oh oh... Stiamo avendo dei problemi sui server. Per favore riprova tra qualche minuto.", "@login__server_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__connection_error": "Non possiamo raggiungere i nostri server. Sei connesso a internet?", "@login__connection_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_title": "Cambia password", "@change_password_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_current_pwd": "Password attuale", "@change_password_current_pwd": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_current_pwd_hint": "Inserisci la password attuale", "@change_password_current_pwd_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_current_pwd_incorrect": "La password inserita non è corretta", "@change_password_current_pwd_incorrect": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_new_pwd": "Nuova password", "@change_password_new_pwd": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_new_pwd_hint": "Inserisci la tua nuova password", "@change_password_new_pwd_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_new_pwd_error": "Per favore assicurati che la password sia compresa tra 10 e 100 caratteri", "@change_password_new_pwd_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_save_text": "Salva", "@change_password_save_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_save_success": "Tutto a posto! La tua password è stata aggiornata", "@change_password_save_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/it/community.arb b/assets/i18n/it/community.arb index 349126fe5..3436901ba 100644 --- a/assets/i18n/it/community.arb +++ b/assets/i18n/it/community.arb @@ -2,1016 +2,743 @@ "no": "No", "@no": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "yes": "Sì", "@yes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "button_staff": "Addetti", "@button_staff": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "button_rules": "Regole", "@button_rules": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community": "comunità", "@community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities": "comunità", "@communities": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "type_public": "Pubblico", "@type_public": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "type_private": "Privato", "@type_private": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "member_capitalized": "Membro", "@member_capitalized": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "members_capitalized": "Membri", "@members_capitalized": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "admin_desc": "Questo permetterà al membro di modificare i dettagli della comunità, gli amministratori, i moderatori e gli utenti bannati.", "@admin_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirmation_title": "Conferma", "@confirmation_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "retry_loading_posts": "Tocca per riprovare", + "@retry_loading_posts": { + "type": "text", + "placeholders": {} }, "admin_add_confirmation": "Sei sicuro di voler aggiungere @{username} come amministratore della comunità?", "@admin_add_confirmation": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "ban_confirmation": "Sei sicuro di voler bloccare @{username}?", "@ban_confirmation": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "ban_desc": "Questo rimuoverà l'utente dalla comunità e gli impedirà di unirsi nuovamente.", "@ban_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderator_add_confirmation": "Sei sicuro di voler aggiungere @{username} come moderatore della comunità?", "@moderator_add_confirmation": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "moderator_desc": "Questo permetterà al membro di modificare i dettagli della comunità, i moderatori e gli utenti bloccati.", "@moderator_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderators_you": "Tu", "@moderators_you": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderators_title": "Moderatori", "@moderators_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "leave_desc": "Non ne vedrai i post sulla tua timeline né potrai più postare.", "@leave_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "leave_confirmation": "Sei sicuro di voler lasciare la comunità?", "@leave_confirmation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderator_resource_name": "moderatore", "@moderator_resource_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderators_resource_name": "moderatori", "@moderators_resource_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_moderator_title": "Aggiungi moderatore", "@add_moderator_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_confirmation": "Sei sicuro di voler eliminare la comunità?", "@delete_confirmation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_desc": "Non ne vedrai i post sulla tua timeline né potrai più postare.", "@delete_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_manage_text": "Gestisci", "@actions_manage_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_title": "Gestisci comunità", "@manage_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_details_title": "Dettagli", "@manage_details_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_details_desc": "Cambia il titolo, nome, avatar, foto di copertina e altro ancora.", "@manage_details_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_admins_title": "Amministratori", "@manage_admins_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_admins_desc": "Vedi, aggiungi e rimuovi amministratori.", "@manage_admins_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_mods_title": "Moderatori", "@manage_mods_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_mods_desc": "Vedi, aggiungi e rimuovi moderatori.", "@manage_mods_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_banned_title": "Utenti Bloccati", "@manage_banned_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_banned_desc": "Vedi, aggiungi e rimuovi gli utenti bloccati.", "@manage_banned_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_mod_reports_title": "Segnalazioni moderazione", "@manage_mod_reports_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_mod_reports_desc": "Controlla le segnalazioni di moderazione della comunità.", "@manage_mod_reports_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_closed_posts_title": "Post chiusi", "@manage_closed_posts_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_closed_posts_desc": "Vedi e gestisci i post chiusi", "@manage_closed_posts_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_invite_title": "Invita persone", "@manage_invite_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_invite_desc": "Invita le tue connessioni e i tuoi follower a unirsi alla comunità.", "@manage_invite_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_delete_title": "Elimina comunità", "@manage_delete_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_delete_desc": "Elimina la comunità, per sempre.", "@manage_delete_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_leave_title": "Lascia comunità", "@manage_leave_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_leave_desc": "Lascia la comunità.", "@manage_leave_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_add_favourite": "Aggiungi la comunità ai tuoi preferiti", "@manage_add_favourite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_remove_favourite": "Rimuovi la comunità dai tuoi preferiti", "@manage_remove_favourite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "is_private": "Questa comunità è privata.", "@is_private": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invited_by_member": "Devi essere invitato da un membro.", "@invited_by_member": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invited_by_moderator": "Devi essere invitato da un moderatore.", "@invited_by_moderator": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "refreshing": "Aggiornando la comunità", "@refreshing": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "posts": "Post", "@posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "about": "Informazioni", "@about": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "category": "categoria.", "@category": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "categories": "categorie.", "@categories": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_administrators_title": "Aggiungi amministratore", "@add_administrators_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_members": "Membri della comunità", "@community_members": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "member": "membro", "@member": { "description": "Currently not used in app, reserved for potential use. Could be used as: Showing 1 member", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "member_plural": "membri", "@member_plural": { "description": "See all members ,Search all members", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrators_title": "Amministratori", "@administrators_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrator_text": "amministratore", "@administrator_text": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 administrator", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrator_plural": "amministratori", "@administrator_plural": { "description": "Egs. Search administrators, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrator_you": "Tu", "@administrator_you": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "user_you_text": "Tu", "@user_you_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "pick_upto_max": "Scegli fino a {max} categorie", "@pick_upto_max": { "type": "text", "placeholders": { - "max": { - - } + "max": {} } }, - "pick_atleast_min_category": "Devi scegliere almeno {min} categoria\/e.", + "pick_atleast_min_category": "Devi scegliere almeno {min} categoria/e.", "@pick_atleast_min_category": { "description": "You must pick at least 1 category", "type": "text", "placeholders": { - "min": { - - } + "min": {} } }, - "pick_atleast_min_categories": "Devi scegliere almeno {min} categoria\/e.", + "pick_atleast_min_categories": "Devi scegliere almeno {min} categoria/e.", "@pick_atleast_min_categories": { "description": "Eg. Variable min will be 3-5. You must pick at least (3-5) categories", "type": "text", "placeholders": { - "min": { - - } + "min": {} } }, "ban_user_title": "Blocca utente", "@ban_user_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "banned_users_title": "Utenti Bloccati", "@banned_users_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "banned_user_text": "utente bloccato", "@banned_user_text": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 banned user", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "banned_users_text": "utenti bloccati", "@banned_users_text": { "description": "Egs. Search banned users, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorites_title": "Preferiti", "@favorites_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorite_community": "comunità preferita", "@favorite_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 favorite community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorite_communities": "comunità preferite", "@favorite_communities": { "description": "Egs. Search favorite communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrated_title": "Amministrate", "@administrated_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrated_community": "comunità amministrata", "@administrated_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 administrated community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrated_communities": "comunità amministrate", "@administrated_communities": { "description": "Egs. Search administrated communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_title": "Moderate", "@moderated_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_community": "comunità moderata", "@moderated_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 moderated community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_communities": "comunità moderate", "@moderated_communities": { "description": "Egs. Search moderated communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "joined_title": "Iscritto", "@joined_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "joined_community": "comunità di cui fai parte", "@joined_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 joined community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "joined_communities": "comunità di cui fai parte", "@joined_communities": { "description": "Egs. Search joined communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "join_communities_desc": "Unisciti a qualche comunità per vedere questa scheda prendere vita!", "@join_communities_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "refresh_text": "Aggiorna", "@refresh_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_none_found": "Nessuna comunità di tendenza trovata. Riprova tra qualche minuto.", "@trending_none_found": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_refresh": "Aggiorna", "@trending_refresh": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_in_all": "Di tendenza in tutte le categorie", "@trending_in_all": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_in_category": "Di tendenza in {categoryName}", "@trending_in_category": { "type": "text", "placeholders": { - "categoryName": { - - } + "categoryName": {} } }, "communities_title": "Comunità", "@communities_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities_no_category_found": "Nessuna categoria trovata. Riprova tra qualche minuto.", "@communities_no_category_found": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities_refresh_text": "Aggiorna", "@communities_refresh_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities_all_text": "Tutte", "@communities_all_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_to_community_title": "Invita nella comunità", "@invite_to_community_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_to_community_resource_singular": "connessione o follower", "@invite_to_community_resource_singular": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 connection or follower", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_to_community_resource_plural": "connessioni e follower", "@invite_to_community_resource_plural": { "description": "Egs. Search connections and followers, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorite_action": "Aggiungi comunità alle preferite", "@favorite_action": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "unfavorite_action": "Rimuovi la comunità dalle preferite", "@unfavorite_action": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_label_title": "Titolo", "@save_community_label_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_label_title_hint_text": "ad esempio Viaggi, Fotografia, Gaming.", "@save_community_label_title_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_title": "Nome", "@save_community_name_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_title_hint_text": " ad esempio viaggi, fotografia, gaming.", "@save_community_name_title_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_taken": "Il nome '{takenName}' per la comunità è già utilizzato", "@save_community_name_taken": { "type": "text", "placeholders": { - "takenName": { - - } + "takenName": {} } }, "save_community_name_label_color": "Colore", "@save_community_name_label_color": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_color_hint_text": "(Tocca per cambiare)", "@save_community_name_label_color_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_type": "Tipo", "@save_community_name_label_type": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_type_hint_text": "(Tocca per cambiare)", "@save_community_name_label_type_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_member_invites": "Inviti membri", "@save_community_name_member_invites": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_member_invites_subtitle": "I membri possono invitare persone nella comunità", "@save_community_name_member_invites_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_category": "Categoria", "@save_community_name_category": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_desc_optional": "Descrizione · Opzionale", "@save_community_name_label_desc_optional": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_desc_optional_hint_text": "Di cosa parla la tua comunità?", "@save_community_name_label_desc_optional_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_rules_optional": "Regole · Opzionale", "@save_community_name_label_rules_optional": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_rules_optional_hint_text": "C'è qualcosa che vorresti far sapere ai tuoi utenti?", "@save_community_name_label_rules_optional_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_member_adjective": "Aggettivo membro · opzionale", "@save_community_name_label_member_adjective": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_member_adjective_hint_text": "ad esempio viaggiatore, fotografo, gamer.", "@save_community_name_label_member_adjective_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_members_adjective": "Aggettivo membri (plurale) · Opzionale", "@save_community_name_label_members_adjective": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_members_adjective_hint_text": "ad esempio viaggiatori, fotografi, giocatori.", "@save_community_name_label_members_adjective_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_edit_community": "Modifica comunità", "@save_community_edit_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_create_community": "Crea comunità", "@save_community_create_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_save_text": "Salva", "@save_community_save_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_create_text": "Crea", "@save_community_create_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_invite_people_title": "Invita persone nella comunità", "@actions_invite_people_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "join_community": "Unisciti", "@join_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "leave_community": "Lascia", "@leave_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_staff": "Addetti della comunità", "@community_staff": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_singular": "post", "@post_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_plural": "post", "@post_plural": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "rules_title": "Regole della comunità", "@rules_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "rules_text": "Regole", "@rules_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "name_characters_error": "Il nome può contenere solo caratteri alfanumerici e trattini bassi.", "@name_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "name_range_error": "Il nome non può essere più lungo di {maxLength} caratteri.", "@name_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "name_empty_error": "Il nome non può essere vuoto.", "@name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "title_range_error": "Il titolo non può essere più lungo di {maxLength} caratteri.", "@title_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "title_empty_error": "Il titolo non può essere vuoto.", "@title_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "rules_range_error": "Le regole non possono essere più lunghe di {maxLength} caratteri.", "@rules_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "rules_empty_error": "Le regole non possono essere vuote.", "@rules_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "description_range_error": "La descrizione non può essere più lunga di {maxLength} caratteri.", "@description_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "adjectives_range_error": "Gli aggettivi non possono essere più lunghi di {maxLength} caratteri.", @@ -1019,9 +746,7 @@ "description": "This refers to the customisable adjectives assigned to community members,eg. 1k travellers,5k photographers", "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } } } \ No newline at end of file diff --git a/assets/i18n/it/contextual_account_search_box.arb b/assets/i18n/it/contextual_account_search_box.arb index fb26c17c3..cba4103d0 100644 --- a/assets/i18n/it/contextual_account_search_box.arb +++ b/assets/i18n/it/contextual_account_search_box.arb @@ -3,8 +3,6 @@ "@suggestions": { "description": "The title to display on the suggestions when searching for accounts when trying to mention someone.", "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/it/drawer.arb b/assets/i18n/it/drawer.arb index aaa20604c..1d6afb3a4 100644 --- a/assets/i18n/it/drawer.arb +++ b/assets/i18n/it/drawer.arb @@ -2,304 +2,223 @@ "menu_title": "Menu", "@menu_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "main_title": "Okuna", "@main_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_circles": "Cerchie", "@my_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_lists": "Liste", "@my_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_followers": "Follower", "@my_followers": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_following": "Seguiti", "@my_following": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_invites": "Inviti", "@my_invites": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_pending_mod_tasks": "I miei incarichi di moderazione in attesa", "@my_pending_mod_tasks": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_mod_penalties": "Le mie penalità di moderazione", "@my_mod_penalties": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "app_account_text": "App & Account", "@app_account_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "themes": "Temi", "@themes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_moderation": "Moderazione globale", "@global_moderation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile": "Profilo", "@profile": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connections": "Connessioni", "@connections": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "lists": "Liste", "@lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "settings": "Impostazioni", "@settings": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "application_settings": "Impostazioni Applicazione", "@application_settings": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings": "Impostazioni Account", "@account_settings": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "developer_settings": "Impostazioni sviluppatore", + "@developer_settings": { + "type": "text", + "placeholders": {} }, "account_settings_change_email": "Cambia Email", "@account_settings_change_email": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_change_password": "Cambia Password", "@account_settings_change_password": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_notifications": "Notifiche", "@account_settings_notifications": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_language_text": "Lingua", "@account_settings_language_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_language": "Lingua ({currentUserLanguage})", "@account_settings_language": { "type": "text", "placeholders": { - "currentUserLanguage": { - - } + "currentUserLanguage": {} } }, "account_settings_blocked_users": "Utenti bloccati", "@account_settings_blocked_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_delete_account": "Elimina account", "@account_settings_delete_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "help": "Assistenza & Feedback", "@help": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "customize": "Personalizza", "@customize": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "logout": "Disconnetti", "@logout": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_title": "Link utili", "@useful_links_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines": "Regolamento Openspace", "@useful_links_guidelines": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_desc": "Le regole che ci aspettiamo tutti seguiranno per una convivenza sana e amichevole.", "@useful_links_guidelines_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_github": "Scheda del progetto su Github", "@useful_links_guidelines_github": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_github_desc": "Dai un'occhiata a ciò a cui stiamo lavorando", "@useful_links_guidelines_github_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_feature_requests": "Richiedi Funzionalità", "@useful_links_guidelines_feature_requests": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_feature_requests_desc": "Richiedi una nuova funzionalità o vota le richieste esistenti", "@useful_links_guidelines_feature_requests_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_bug_tracker": "Segnalazione Bug", "@useful_links_guidelines_bug_tracker": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_bug_tracker_desc": "Segnala un bug o vota bug esistenti", "@useful_links_guidelines_bug_tracker_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_handbook": "Manuale Openspace", "@useful_links_guidelines_handbook": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_handbook_desc": "Un manuale con tutto quello che c'è da sapere sull'utilizzo della piattaforma", "@useful_links_guidelines_handbook_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_support": "Sostieni Okuna", "@useful_links_support": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_support_desc": "Trova un modo per sostenerci nel nostro viaggio!", "@useful_links_support_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_slack_channel": "Canale Slack della comunità", "@useful_links_slack_channel": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_slack_channel_desc": "Un luogo dove discutere tutto riguardo Openspace", "@useful_links_slack_channel_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/it/error.arb b/assets/i18n/it/error.arb index 244b3cc90..5648d9507 100644 --- a/assets/i18n/it/error.arb +++ b/assets/i18n/it/error.arb @@ -2,15 +2,11 @@ "unknown_error": "Errore sconosciuto", "@unknown_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "no_internet_connection": "Nessuna connessione Internet", "@no_internet_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/it/image_picker.arb b/assets/i18n/it/image_picker.arb new file mode 100644 index 000000000..f53677bb9 --- /dev/null +++ b/assets/i18n/it/image_picker.arb @@ -0,0 +1,19 @@ +{ + "from_gallery": "Dalla galleria", + "@from_gallery": { + "type": "text", + "placeholders": {} + }, + "from_camera": "Dalla fotocamera", + "@from_camera": { + "type": "text", + "placeholders": {} + }, + "error_too_large": "File troppo grande (limite: {limit} MB)", + "@error_too_large": { + "type": "text", + "placeholders": { + "limit": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/it/moderation.arb b/assets/i18n/it/moderation.arb index 6b265fb2b..acbbcf25d 100644 --- a/assets/i18n/it/moderation.arb +++ b/assets/i18n/it/moderation.arb @@ -2,502 +2,360 @@ "filters_title": "Filtri moderazione", "@filters_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_reset": "Azzera", "@filters_reset": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_verified": "Verificato", "@filters_verified": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_apply": "Applica filtri", "@filters_apply": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_type": "Tipo", "@filters_type": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_status": "Stato", "@filters_status": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_other": "Altri", "@filters_other": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_review": "Controlla", "@actions_review": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_chat_with_team": "Chatta con il team", "@actions_chat_with_team": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_category_title": "Aggiorna categoria", "@update_category_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_category_save": "Salva", "@update_category_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_save": "Salva", "@update_description_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_title": "Modifica descrizione", "@update_description_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_report_desc": "Segnala descrizione", "@update_description_report_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_report_hint_text": "es. l'elemento segnalato è risultato...", "@update_description_report_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_status_save": "Salva", "@update_status_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_status_title": "Aggiorna stato", "@update_status_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_title": "Rivedi elemento moderato", "@community_review_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_title": "Oggetto", "@moderated_object_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_status": "Stato", "@moderated_object_status": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_reports_count": "Numero di segnalazioni", "@moderated_object_reports_count": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_verified_by_staff": "Verificato dagli addetti Okuna", "@moderated_object_verified_by_staff": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_verified": "Verificato", "@moderated_object_verified": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_true_text": "Vero", "@moderated_object_true_text": { - "description": "Eg. Moderated object verified by staff? true \/ false", + "description": "Eg. Moderated object verified by staff? true / false", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_false_text": "Falso", "@moderated_object_false_text": { - "description": "Eg. Moderated object verified by staff? true \/ false", + "description": "Eg. Moderated object verified by staff? true / false", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_object": "Oggetto", "@community_review_object": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_approve": "Approva", "@community_review_approve": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_reject": "rifiuta", "@community_review_reject": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_item_verified": "Questo elemento è stato controllato", "@community_review_item_verified": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_review_title": "Rivedi oggetto moderato", "@global_review_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_review_object_text": "Oggetto", "@global_review_object_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_review_verify_text": "Verifica", "@global_review_verify_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_review_unverify_text": "Annulla verifica", "@global_review_unverify_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_title": "Invia segnalazione", "@confirm_report_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_details": "Puoi fornire ulteriori dettagli che potrebbero essere utili per la segnalazione?", "@confirm_report_provide_details": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_optional_info": "(Opzionale)", "@confirm_report_provide_optional_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_optional_hint_text": "Digita qui...", "@confirm_report_provide_optional_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_happen_next": "Ecco cosa accadrà dopo:", "@confirm_report_provide_happen_next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_happen_next_desc": "- La tua segnalazione sarà sottomessa in maniera anonima.\n- Se stai segnalando un post o commento, la segnalazione sarà inviata agli addetti Okuna e ai moderatori della comunità (dove applicabile), e il post sarà nascosto dal tuo feed.\n- Se stai segnalando un account o una comunità, sarà inviata agli addetti Okuna\n- Verificheremo la segnalazione, se approvata, il contenuto sarà eliminato e le penalizzazioni saranno assegnate alle persone coinvolte, variabili da una sospensione temporanea all'eliminazione dell'account, in base alla gravità della trasgressione. \n- Se la segnalazione risulterà fatta con lo scopo di danneggiare la reputazione di un altro membro o comunità della piattaforma, senza che le trasgressioni fossero veritiere, le penalizzazioni saranno applicate a te.\n", "@confirm_report_provide_happen_next_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_submit": "Ho capito, invia la segnalazione.", "@confirm_report_submit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_user_reported": "Utente segnalato", "@confirm_report_user_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_community_reported": "Comunità segnalata", "@confirm_report_community_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_post_reported": "Post segnalato", "@confirm_report_post_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_post_comment_reported": "Commento segnalato", "@confirm_report_post_comment_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_item_reported": "Elemento segnalato", "@confirm_report_item_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_moderated_objects": "Oggetti moderati dalla comunità", "@community_moderated_objects": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "globally_moderated_objects": "Oggetti moderati globalmente", "@globally_moderated_objects": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "tap_to_retry": "Tocca per riprovare a caricare gli elementi", "@tap_to_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_post_text": "Segnala post", "@report_post_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_post_text": "Hai segnalato questo post", "@you_have_reported_post_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_account_text": "Segnala account", "@report_account_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_account_text": "Hai segnalato questo account", "@you_have_reported_account_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_community_text": "Segnala comunità", "@report_community_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_community_text": "Hai segnalato questa comunità", "@you_have_reported_community_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_comment_text": "Segnala commento", "@report_comment_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_comment_text": "Hai segnalato questo commento", "@you_have_reported_comment_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "description_text": "Descrizione", "@description_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "no_description_text": "Nessuna descrizione", "@no_description_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "category_text": "Categoria", "@category_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reporter_text": "Segnalatore", "@reporter_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reports_preview_title": "Segnalazioni", "@reports_preview_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reports_preview_resource_reports": "segnalazioni", "@reports_preview_resource_reports": { "description": "Usage: See all reports..", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reports_see_all": "Vedi tutti {resourceCount} {resourceName}", "@reports_see_all": { "description": "Usage: See all 4 reports.", "type": "text", "placeholders": { - "resourceCount": { - - }, - "resourceName": { - - } + "resourceCount": {}, + "resourceName": {} } }, "object_status_title": "Status", "@object_status_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_tasks_title": "Attività in attesa di moderazione", "@my_moderation_tasks_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "pending_moderation_tasks_singular": "attività in attesa di moderazione", "@pending_moderation_tasks_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "pending_moderation_tasks_plural": "attività in attesa di moderazione", "@pending_moderation_tasks_plural": { "description": "Eg. No pending moderation tasks found", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_penalties_title": "Sanzioni moderazione", "@my_moderation_penalties_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_penalties_resouce_singular": "sanzione moderazione", "@my_moderation_penalties_resouce_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_penalties_resource_plural": "sanzioni moderazione", "@my_moderation_penalties_resource_plural": { "description": "See all moderation penalties, No moderation penalties found etc..", "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/it/notifications.arb b/assets/i18n/it/notifications.arb index 08a2bb4c6..d6ef3ba98 100644 --- a/assets/i18n/it/notifications.arb +++ b/assets/i18n/it/notifications.arb @@ -1,5 +1,15 @@ { - "settings_title": "Impostazioni Notifiche", + "tab_general": "Generali", + "@tab_general": { + "type": "text", + "placeholders": {} + }, + "tab_requests": "Richieste", + "@tab_requests": { + "type": "text", + "placeholders": {} + }, + "settings_title": "Impostazioni notifiche", "@settings_title": { "type": "text", "placeholders": {} @@ -154,9 +164,9 @@ "type": "text", "placeholders": {} }, - "user_community_invite_tile": "[name] [username] ti ha invitato a unirti alla comunità \/c\/{communityName}.", + "user_community_invite_tile": "[name] [username] ti ha invitato a unirti alla comunità /c/{communityName}.", "@user_community_invite_tile": { - "description": "Eg.: James @jamest has invited you to join community \/c\/okuna.", + "description": "Eg.: James @jamest has invited you to join community /c/okuna.", "type": "text", "placeholders": { "communityName": {} @@ -184,7 +194,7 @@ "postCommentText": {} } }, - "comment_comment_notification_tile_user_also_commented": "anche [name] [username] ha commentato il tuo post: {postCommentText}", + "comment_comment_notification_tile_user_also_commented": "anche [name] [username] ha commentato: {postCommentText}", "@comment_comment_notification_tile_user_also_commented": { "type": "text", "placeholders": { diff --git a/assets/i18n/it/post.arb b/assets/i18n/it/post.arb index a88e89c43..a0625fe1b 100644 --- a/assets/i18n/it/post.arb +++ b/assets/i18n/it/post.arb @@ -2,809 +2,600 @@ "open_post": "Apri post", "@open_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "close_post": "Chiudi post", "@close_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_opened": "Post aperto", "@post_opened": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_closed": "Post chiuso ", "@post_closed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_required_error": "Il commento non può essere vuoto.", "@comment_required_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_maxlength_error": "Un commento non può essere più lungo di {maxLength} caratteri.", "@comment_maxlength_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "timeline_posts_all_loaded": "🎉 Tutti i post caricati", "@timeline_posts_all_loaded": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_refreshing_drhoo_title": "Tieni duro!", "@timeline_posts_refreshing_drhoo_title": { "type": "text", - "placeholders": { - - } - }, - "timeline_posts_refreshing_drhoo_subtitle": "Caricamento timeline.", - "@timeline_posts_refreshing_drhoo_subtitle": { - "type": "text", - "placeholders": { - - } - }, - "timeline_posts_no_more_drhoo_title": "La tua timeline è vuota.", - "@timeline_posts_no_more_drhoo_title": { - "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_no_more_drhoo_subtitle": "Segui gli altri utenti o unisciti a una comunità per iniziare!", "@timeline_posts_no_more_drhoo_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_failed_drhoo_title": "Impossibile caricare la tua timeline.", "@timeline_posts_failed_drhoo_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_failed_drhoo_subtitle": "Riprova tra qualche secondo", "@timeline_posts_failed_drhoo_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_default_drhoo_title": "Qualcosa non va.", "@timeline_posts_default_drhoo_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_default_drhoo_subtitle": "Prova ad aggiornare la timeline.", "@timeline_posts_default_drhoo_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_refresh_posts": "Aggiorna i post", "@timeline_posts_refresh_posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "no_circles_for": "Nessuna cerchia trovata corrisponde a '{circlesSearchQuery}'.", "@no_circles_for": { "type": "text", "placeholders": { - "circlesSearchQuery": { - - } + "circlesSearchQuery": {} } }, "share_to_circles": "Condividi con le tue cerchie", "@share_to_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_post": " Pubblica", "@profile_counts_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_posts": " Post", "@profile_counts_posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_followers": " Followers", "@profile_counts_followers": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_following": " Seguendo", "@profile_counts_following": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_follower": " Follower", "@profile_counts_follower": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "profile_retry_loading_posts": "Tocca per riprovare", + "@profile_retry_loading_posts": { + "type": "text", + "placeholders": {} }, "action_comment": "Commenta", "@action_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "action_react": "Reagisci", "@action_react": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "action_reply": "Rispondi", "@action_reply": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share": "Condividi", "@share": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_to": "Condividi con", "@share_to": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "sharing_post_to": "Condividi post con", "@sharing_post_to": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_shared_with": "Hai condiviso con", "@you_shared_with": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "shared_privately_on": "Condiviso privatamente con", "@shared_privately_on": { "description": "Eg. Shared privately on @shantanu's circles. See following string, usernames_circles . Will combine this in future, needs refactoring.", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "usernames_circles": "le cerchie di @{postCreatorUsername}", "@usernames_circles": { "type": "text", "placeholders": { - "postCreatorUsername": { - - } + "postCreatorUsername": {} } }, "share_community": "Condividi", "@share_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_to_community": "Condividi con la comunità", "@share_to_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_community_title": "Comunità", "@share_community_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_community_desc": "Condividi il post con una comunità di cui sei parte.", "@share_community_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_circles": "Cerchie", "@my_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_circles_desc": "Condividi il post con una o più delle tue cerchie.", "@my_circles_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "world_circle_name": "Tutto il mondo", "@world_circle_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "search_circles": "Trova cerchie...", "@search_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reaction_list_tap_retry": "Tocca per riprovare a caricare le reaction.", "@reaction_list_tap_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_new": "Nuovo post", "@create_new": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "create_new_post_label": "Crea nuovo post", + "@create_new_post_label": { + "type": "text", + "placeholders": {} + }, + "create_new_community_post_label": "Crea un nuovo post comunità", + "@create_new_community_post_label": { + "type": "text", + "placeholders": {} + }, + "close_create_post_label": "Chiudi creazione nuovo post", + "@close_create_post_label": { + "type": "text", + "placeholders": {} }, "create_next": "Successivo", "@create_next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_photo": "Foto", "@create_photo": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "create_video": "Video", + "@create_video": { + "type": "text", + "placeholders": {} }, "commenter_post_text": "Post", "@commenter_post_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_write_something": "Scrivi qualcosa...", "@commenter_write_something": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_title": "Modifica post", "@edit_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_save": "Salva", "@edit_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_expanded_save": "Salva", "@commenter_expanded_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_expanded_join_conversation": "Unisciti alla conversazione..", "@commenter_expanded_join_conversation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_expanded_start_conversation": "Inizia la conversazione..", "@commenter_expanded_start_conversation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_expanded_edit_comment": "Modifica commento", "@commenter_expanded_edit_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "is_closed": "Post chiuso", "@is_closed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_reply_expanded_reply_comment": "Rispondi al commento", "@comment_reply_expanded_reply_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_reply_expanded_post": "Post", "@comment_reply_expanded_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_reply_expanded_reply_hint_text": "La tua risposta...", "@comment_reply_expanded_reply_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_posts_title": "Post in tendenza", "@trending_posts_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_posts_no_trending_posts": "Non ci sono post in tendenza. Prova ad aggiornare fra qualche secondo.", "@trending_posts_no_trending_posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_posts_refresh": "Aggiorna", "@trending_posts_refresh": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_view_all_comments": "Mostra tutti i {commentsCount} commenti", "@comments_view_all_comments": { "type": "text", "placeholders": { - "commentsCount": { - - } + "commentsCount": {} } }, "comments_closed_post": "Post chiuso", "@comments_closed_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_disabled": "Commenti disabilitati", "@comments_disabled": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "text_copied": "Testo copiato!", "@text_copied": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_reactions_title": "Reazioni al post", "@post_reactions_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "have_not_shared_anything": "Non hai ancora condiviso niente.", "@have_not_shared_anything": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "user_has_not_shared_anything": "{name} non ha ancora condiviso niente.", "@user_has_not_shared_anything": { "type": "text", "placeholders": { - "name": { - - } + "name": {} } }, "comments_header_newest_replies": "Risposte più recenti", "@comments_header_newest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_newer": "Più recenti", "@comments_header_newer": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_view_newest_replies": "Visualizza le risposte più recenti", "@comments_header_view_newest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_see_newest_replies": "Vedi le risposte più recenti", "@comments_header_see_newest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_oldest_replies": "Risposte più vecchie", "@comments_header_oldest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_older": "Più vecchi", "@comments_header_older": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_view_oldest_replies": "Visualizza le risposte più vecchie", "@comments_header_view_oldest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_see_oldest_replies": "Vedi le risposte più vecchie", "@comments_header_see_oldest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_be_the_first_replies": "Rispondi per primo", "@comments_header_be_the_first_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_newest_comments": "Commenti più recenti", "@comments_header_newest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_view_newest_comments": "Visualizza i commenti più recenti", "@comments_header_view_newest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_see_newest_comments": "Vedi i commenti più recenti", "@comments_header_see_newest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_oldest_comments": "Commenti più vecchi", "@comments_header_oldest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_view_oldest_comments": "Visualizza i commenti più vecchi", "@comments_header_view_oldest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_see_oldest_comments": "Vedi i commenti più vecchi", "@comments_header_see_oldest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_be_the_first_comments": "Commenta per primo", "@comments_header_be_the_first_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_title": "Commenti del post", "@comments_page_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_no_more_to_load": "Nessun altro commento da caricare", "@comments_page_no_more_to_load": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_tap_to_retry": "Tocca per riprovare a caricare i commenti.", "@comments_page_tap_to_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_tap_to_retry_replies": "Tocca per riprovare a caricare le risposte.", "@comments_page_tap_to_retry_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_no_more_replies_to_load": "Nessuna altra risposta da caricare", "@comments_page_no_more_replies_to_load": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_replies_title": "Risposte al post", "@comments_page_replies_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "disable_post_comments": "Disabilita i commenti per il post", "@disable_post_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "enable_post_comments": "Abilita i commenti per il post", "@enable_post_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_enabled_message": "Commenti abilitati per il post", "@comments_enabled_message": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_disabled_message": "Commenti disabilitati per il post", "@comments_disabled_message": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_delete": "Elimina post", "@actions_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_deleted": "Post eliminato", "@actions_deleted": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_delete_comment": "Elimina commento", "@actions_delete_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_edit_comment": "Modifica commento", "@actions_edit_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_comment_deleted": "Commento eliminato", "@actions_comment_deleted": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_report_text": "Segnala", "@actions_report_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_reported_text": "Segnalato", "@actions_reported_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_show_more_text": "Mostra altro", "@actions_show_more_text": { "description": "Shown for posts with long text to expand the entire text.", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_years": "a", "@time_short_years": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 3y. Keep it as short as possible", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3y. Keep it as short as possible", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_year": "1a", "@time_short_one_year": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_weeks": "s", "@time_short_weeks": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 5w.Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 5w.Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_week": "1s", "@time_short_one_week": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_days": "g", "@time_short_days": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 3d. Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3d. Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_day": "1g", "@time_short_one_day": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_hours": "o", "@time_short_hours": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 3h.Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3h.Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_hour": "1o", "@time_short_one_hour": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_minutes": "m", "@time_short_minutes": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 13m.Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 13m.Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_seconds": "s", "@time_short_seconds": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 13s Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 13s Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_minute": "1m", "@time_short_one_minute": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_now_text": "ora", "@time_short_now_text": { "description": "Shown when a post was immediately posted, as in time posted is 'now'.Should be as few characters as possible.", "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/it/post_body_link_preview.arb b/assets/i18n/it/post_body_link_preview.arb new file mode 100644 index 000000000..9fee6f749 --- /dev/null +++ b/assets/i18n/it/post_body_link_preview.arb @@ -0,0 +1,14 @@ +{ + "empty": "Non può essere creata l’anteprima per questo link", + "@empty": { + "type": "text", + "placeholders": {} + }, + "error_with_description": "Impossibile creare l’anteprima del link, il sito web riporta errore: {description}", + "@error_with_description": { + "type": "text", + "placeholders": { + "description": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/it/post_body_media.arb b/assets/i18n/it/post_body_media.arb new file mode 100644 index 000000000..a0c6e6daf --- /dev/null +++ b/assets/i18n/it/post_body_media.arb @@ -0,0 +1,7 @@ +{ + "unsupported": "Tipo di file multimediale non supportato", + "@unsupported": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/it/post_uploader.arb b/assets/i18n/it/post_uploader.arb new file mode 100644 index 000000000..8c64f42c7 --- /dev/null +++ b/assets/i18n/it/post_uploader.arb @@ -0,0 +1,47 @@ +{ + "generic_upload_failed": "Caricamento fallito", + "@generic_upload_failed": { + "type": "text", + "placeholders": {} + }, + "creating_post": "Creazione post...", + "@creating_post": { + "type": "text", + "placeholders": {} + }, + "compressing_media": "Comprimendo il file media...", + "@compressing_media": { + "type": "text", + "placeholders": {} + }, + "uploading_media": "Caricamento del file media...", + "@uploading_media": { + "type": "text", + "placeholders": {} + }, + "publishing": "Pubblicazione post...", + "@publishing": { + "type": "text", + "placeholders": {} + }, + "processing": "Elaborazione post...", + "@processing": { + "type": "text", + "placeholders": {} + }, + "success": "Successo!", + "@success": { + "type": "text", + "placeholders": {} + }, + "cancelling": "Annullamento", + "@cancelling": { + "type": "text", + "placeholders": {} + }, + "cancelled": "Annullato!", + "@cancelled": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/it/posts_stream.arb b/assets/i18n/it/posts_stream.arb new file mode 100644 index 000000000..79d359030 --- /dev/null +++ b/assets/i18n/it/posts_stream.arb @@ -0,0 +1,47 @@ +{ + "all_loaded": "🎉 Tutti i post caricati", + "@all_loaded": { + "type": "text", + "placeholders": {} + }, + "refreshing_drhoo_title": "Ancora un attimo!", + "@refreshing_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "refreshing_drhoo_subtitle": "Aggiornamento dello stream.", + "@refreshing_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "empty_drhoo_title": "Questo stream è vuoto.", + "@empty_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "empty_drhoo_subtitle": "Prova ad aggiornare tra un paio di secondi.", + "@empty_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "failed_drhoo_title": "Impossibile caricare lo stream.", + "@failed_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "failed_drhoo_subtitle": "Riprova tra un paio di secondi", + "@failed_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "status_tile_empty": "Nessun post trovato", + "@status_tile_empty": { + "type": "text", + "placeholders": {} + }, + "status_tile_no_more_to_load": "🎉 Tutti i post caricati", + "@status_tile_no_more_to_load": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/it/user.arb b/assets/i18n/it/user.arb index fa2cd5de8..797864738 100644 --- a/assets/i18n/it/user.arb +++ b/assets/i18n/it/user.arb @@ -3,1345 +3,978 @@ "@thousand_postfix": { "description": "For eg. communty has 3k members", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "million_postfix": "milioni", "@million_postfix": { "description": "For eg. user has 3m followers", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "billion_postfix": "miliardi", "@billion_postfix": { "description": "For eg. World circle has 7.5b people", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "translate_see_translation": "Mostra traduzione", "@translate_see_translation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "translate_show_original": "Mostra testo originale", "@translate_show_original": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_lists_account": "1 Account", "@follows_lists_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_lists_accounts": "{prettyUsersCount} Profili", "@follows_lists_accounts": { "description": "prettyUsersCount will be 3m, 50k etc.. so we endup with final string 3k Accounts", "type": "text", "placeholders": { - "prettyUsersCount": { - - } + "prettyUsersCount": {} } }, "edit_profile_user_name_taken": "Il nome utente @{username} è stato preso", "@edit_profile_user_name_taken": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "profile_action_deny_connection": "Rifiuta richiesta di connessione", "@profile_action_deny_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_action_user_blocked": "Utente bloccato", "@profile_action_user_blocked": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_action_user_unblocked": "Utente sbloccato", "@profile_action_user_unblocked": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_action_cancel_connection": "Annulla richiesta di connessione", "@profile_action_cancel_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_url_invalid_error": "Per favore inserisci un url valido.", "@profile_url_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_location_length_error": "Il luogo non può essere più lungo di {maxLength} caratteri.", "@profile_location_length_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "profile_bio_length_error": "La biografia non può essere più lunga di {maxLength} caratteri.", "@profile_bio_length_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "follow_button_follow_text": "Segui", "@follow_button_follow_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_button_unfollow_text": "Smetti di seguire", "@follow_button_unfollow_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_username": "Nome utente", "@edit_profile_username": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_update_account_lists": "Aggiorna account liste", "@add_account_update_account_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_to_lists": "Aggiungi account alla lista", "@add_account_to_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_update_lists": "Aggiorna Liste", "@add_account_update_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_save": "Salva", "@add_account_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_done": "Fatto", "@add_account_done": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_success": "Operazione riuscita", "@add_account_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "emoji_field_none_selected": "Nessun emoji selezionato", "@emoji_field_none_selected": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "emoji_search_none_found": "Nessun emoji trovato corrispondente a '{searchQuery}'.", "@emoji_search_none_found": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "follow_lists_title": "Liste", "@follow_lists_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_lists_search_for": "Cerca una lista...", "@follow_lists_search_for": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_lists_no_list_found": "Nessuna lista trovata.", "@follow_lists_no_list_found": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_lists_no_list_found_for": "Nessuna lista trovata per '{searchQuery}'", "@follow_lists_no_list_found_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "list_name_empty_error": "Il nome della lista non può essere vuoto.", "@list_name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "list_name_range_error": "Il nome della lista non può essere più lungo di {maxLength} caratteri.", "@list_name_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "circle_name_empty_error": "Il nome della cerchia non può essere vuoto.", "@circle_name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "circle_name_range_error": "Il nome della cerchia non può essere più lungo di {maxLength} caratteri.", "@circle_name_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "save_follows_list_name": "Nome", "@save_follows_list_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_hint_text": "es. Viaggi, Fotografia", "@save_follows_list_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_name_taken": "Il nome per la lista '{listName}' è già utilizzato", "@save_follows_list_name_taken": { "type": "text", "placeholders": { - "listName": { - - } + "listName": {} } }, "save_follows_list_emoji": "Emoji", "@save_follows_list_emoji": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_users": "Utenti", "@save_follows_list_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_edit": "Modifica lista", "@save_follows_list_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_create": "Crea lista", "@save_follows_list_create": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_save": "Salva", "@save_follows_list_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_emoji_required_error": "L'Emoji è richiesto", "@save_follows_list_emoji_required_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_list_edit": "Modifica", "@follows_list_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_list_header_title": "Utenti", "@follows_list_header_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_name": "Nome", "@edit_profile_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_url": "Url", "@edit_profile_url": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_location": "Luogo", "@edit_profile_location": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_bio": "Biografia", "@edit_profile_bio": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_followers_count": "Numero di followers", "@edit_profile_followers_count": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "edit_profile_community_posts": "Post della comunità", + "@edit_profile_community_posts": { + "type": "text", + "placeholders": {} }, "edit_profile_title": "Modifica profilo", "@edit_profile_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_save_text": "Salva", "@edit_profile_save_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_pick_image": "Scegli immagine", "@edit_profile_pick_image": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_delete": "Elimina", "@edit_profile_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_pick_image_error_too_large": "Immagine troppo grande (limite: {limit} MB)", "@edit_profile_pick_image_error_too_large": { "type": "text", "placeholders": { - "limit": { - - } + "limit": {} } }, "tile_following": " · Seguiti", "@tile_following": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "following_text": "Seguiti", "@following_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "following_resource_name": "utenti seguiti", "@following_resource_name": { "description": "Eg: Search followed users.., No followed users found. etc ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "tile_delete": "Elimina", "@tile_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite": "Invita", "@invite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "uninvite": "Disdici l'invito", "@uninvite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_member": "Membro", "@invite_member": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_someone_message": "Ehi, vorrei invitarti su Okuna. Per prima cosa scarica l'app da iTunes ({iosLink}) o dal Play store ({androidLink}). Poi incolla questo link di invito personalizzato nel modulo 'Iscriviti' nell'App Okuna: {inviteLink}", "@invite_someone_message": { "type": "text", "placeholders": { - "iosLink": { - - }, - "androidLink": { - - }, - "inviteLink": { - - } + "iosLink": {}, + "androidLink": {}, + "inviteLink": {} } }, "connections_header_circle_desc": "La cerchia di tutte le tue connessioni viene aggiunto a.", "@connections_header_circle_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connections_header_users": "Utenti", "@connections_header_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connection_pending": "In attesa", "@connection_pending": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connection_circle_edit": "Modifica", "@connection_circle_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connections_circle_delete": "Elimina", "@connections_circle_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_name": "Nome", "@save_connection_circle_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_hint": "es. Amici, Famiglia, Lavoro.", "@save_connection_circle_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_color_name": "Colore", "@save_connection_circle_color_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_color_hint": "(Tocca per cambiare)", "@save_connection_circle_color_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_users": "Utenti", "@save_connection_circle_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_edit": "Modifica cerchia", "@save_connection_circle_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_create": "Crea cerchia", "@save_connection_circle_create": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_save": "Salva", "@save_connection_circle_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_connection_circle_save": "Salva", "@update_connection_circle_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_connection_circle_updated": "Connessione aggiornata", "@update_connection_circle_updated": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_connection_circles_title": "Aggiorna cerchie connessioni", "@update_connection_circles_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_connection_with": "Conferma la connessione con {userName}", "@confirm_connection_with": { "type": "text", "placeholders": { - "userName": { - - } + "userName": {} } }, "confirm_connection_add_connection": "Aggiungi connessione alla cerchia", "@confirm_connection_add_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_connection_connection_confirmed": "Connessione confermata", "@confirm_connection_connection_confirmed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_connection_confirm_text": "Conferma", "@confirm_connection_confirm_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connect_to_user_connect_with_username": "Connettiti con {userName}", "@connect_to_user_connect_with_username": { "type": "text", "placeholders": { - "userName": { - - } + "userName": {} } }, "connect_to_user_add_connection": "Aggiungi connessione alla cerchia", "@connect_to_user_add_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connect_to_user_done": "Fatto", "@connect_to_user_done": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connect_to_user_request_sent": "Richiesta di connessione inviata", "@connect_to_user_request_sent": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "remove_account_from_list": "Rimuovi account dalle liste", "@remove_account_from_list": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "remove_account_from_list_success": "Operazione riuscita", "@remove_account_from_list_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_title": "Conferma", "@confirm_block_user_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_info": "Non vedrete i rispettivi post né potrete interagire in alcun modo.", "@confirm_block_user_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_yes": "Sì", "@confirm_block_user_yes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_no": "No", "@confirm_block_user_no": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_blocked": "Utente bloccato.", "@confirm_block_user_blocked": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_question": "Sei sicuro di voler bloccare @{username}?", "@confirm_block_user_question": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "save_connection_circle_name_taken": "Nome cerchia '{takenConnectionsCircleName}' già utilizzato", "@save_connection_circle_name_taken": { "type": "text", "placeholders": { - "takenConnectionsCircleName": { - - } + "takenConnectionsCircleName": {} } }, "timeline_filters_title": "Filtri timeline", "@timeline_filters_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_search_desc": "Cerca cerchie e liste...", "@timeline_filters_search_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_clear_all": "Svuota tutto", "@timeline_filters_clear_all": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_apply_all": "Applica filtri", "@timeline_filters_apply_all": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_circles": "Cerchie", "@timeline_filters_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_lists": "Liste", "@timeline_filters_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "followers_title": "Follower", "@followers_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follower_singular": "follower", "@follower_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follower_plural": "follower", "@follower_plural": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_title": "Elimina account", "@delete_account_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_current_pwd": "Password corrente", "@delete_account_current_pwd": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_current_pwd_hint": "Inserisci la password attuale", "@delete_account_current_pwd_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_next": "Prossimo", "@delete_account_next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_title": "Conferma", "@delete_account_confirmation_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_desc": "Sei sicuro di voler eliminare il tuo account?", "@delete_account_confirmation_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_desc_info": "Questa è un'azione permanente e non può essere annullata.", "@delete_account_confirmation_desc_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_no": "No", "@delete_account_confirmation_no": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_yes": "Sì", "@delete_account_confirmation_yes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_goodbye": "Addio 😢", "@delete_account_confirmation_goodbye": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_create_title": "Crea invito", "@invites_create_create_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_edit_title": "Modifica invito", "@invites_create_edit_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_save": "Salva", "@invites_create_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_create": "Crea", "@invites_create_create": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_name_title": "Soprannome", "@invites_create_name_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_name_hint": "ad esempio Mario Rossi", "@invites_create_name_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_pending": "In attesa", "@invites_pending": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_delete": "Elimina", "@invites_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_invite_text": "Invita", "@invites_invite_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_yourself": "Condividi invito autonomamente", "@invites_share_yourself": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_yourself_desc": "Scegli dalle app di messaggistica, ecc.", "@invites_share_yourself_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_email": "Condividi invito via email", "@invites_share_email": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_text": "Email", "@invites_email_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_hint": "es. mariorossi@email.com", "@invites_email_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_invite_text": "Invito email", "@invites_email_invite_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_send_text": "Invia", "@invites_email_send_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_sent_text": "Email di invito inviata", "@invites_email_sent_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_email_desc": "Invieremo un'email di invito a nome tuo con le istruzioni", "@invites_share_email_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_edit_text": "Modifica", "@invites_edit_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_title": "I miei inviti", "@invites_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_accepted_title": "Accettato", "@invites_accepted_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_accepted_group_name": "inviti accettati", "@invites_accepted_group_name": { "description": "Egs where this will end up: Accepted invites (capitalised title), Search accepted invites, See all accepted invites ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_accepted_group_item_name": "invito accettato", "@invites_accepted_group_item_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_pending_group_name": "inviti in attesa", "@invites_pending_group_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_pending_group_item_name": "invito in attesa", "@invites_pending_group_item_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_none_used": "Sembra che tu non abbia usato nessun invito.", "@invites_none_used": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_none_left": "Non hai inviti disponibili.", "@invites_none_left": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_invite_a_friend": "Invita un amico", "@invites_invite_a_friend": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_refresh": "Aggiorna", "@invites_refresh": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "language_settings_title": "Impostazioni lingua", "@language_settings_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "language_settings_save": "Salva", "@language_settings_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "language_settings_saved_success": "Lingua modificata con successo", "@language_settings_saved_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "groups_see_all": "Vedi tutti\/e {groupName}", + "groups_see_all": "Vedi tutti/e {groupName}", "@groups_see_all": { "description": "Can be, See all joined communities, See all pending invites, See all moderated communities etc. ", "type": "text", "placeholders": { - "groupName": { - - } + "groupName": {} } }, "invites_joined_with": "Iscritto con nome utente @{username}", "@invites_joined_with": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "invites_pending_email": "In attesa, invia email di invito a {email}", "@invites_pending_email": { "type": "text", "placeholders": { - "email": { - - } + "email": {} } }, "timeline_filters_no_match": "Nessun risultato per '{searchQuery}'.", "@timeline_filters_no_match": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "clear_application_cache_text": "Svuota la cache", "@clear_application_cache_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_application_cache_desc": "Svuota la cache di post, account, immagini e altro ancora.", "@clear_application_cache_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_application_cache_success": "Cache svuotata con successo", "@clear_application_cache_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_application_cache_failure": "Impossibile cancellare la cache", "@clear_application_cache_failure": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_title": "Rifiuto Linee guida", "@confirm_guidelines_reject_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_info": "Non puoi usare Okuna finché non accetti le linee guida.", "@confirm_guidelines_reject_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_chat_with_team": "Chatta con il team.", "@confirm_guidelines_reject_chat_with_team": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_chat_immediately": "Avvia una chat immediatamente.", "@confirm_guidelines_reject_chat_immediately": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_chat_community": "Chatta con la comunità.", "@confirm_guidelines_reject_chat_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_join_slack": "Entra nel canale Slack.", "@confirm_guidelines_reject_join_slack": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_go_back": "Torna indietro", "@confirm_guidelines_reject_go_back": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_delete_account": "Elimina account", "@confirm_guidelines_reject_delete_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "guidelines_desc": "Per favore prenditi un momento per leggere e accettare le nostre linee guida.", "@guidelines_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "guidelines_accept": "Accetta", "@guidelines_accept": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "guidelines_reject": "Rifiuta", "@guidelines_reject": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_title": "Cambia Email", "@change_email_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_email_text": "Email", "@change_email_email_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_hint_text": "Inserisci la tua nuova email", "@change_email_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_error": "L'email risulta già registrata", "@change_email_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_save": "Salva", "@change_email_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_success_info": "Abbiamo inviato un link di conferma al tuo nuovo indirizzo email, clicca su di esso per verificare la tua nuova email", "@change_email_success_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_title": "Cancella preferenze", "@clear_app_preferences_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_desc": "Cancella le preferenze dell'applicazione. Per ora riguarda solo l'ordine preferito dei commenti.", "@clear_app_preferences_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_cleared_successfully": "Preferenze cancellate con successo", "@clear_app_preferences_cleared_successfully": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "email_verification_successful": "Fantastico! La tua email è ora verificata", "@email_verification_successful": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "email_verification_error": "Oops! Il tuo token non è valido o scaduto, per favore riprova", "@email_verification_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_error": "Impossibile cancellare le preferenze", "@clear_app_preferences_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "disconnect_from_user_success": "Disconnesso con successo", "@disconnect_from_user_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "block_user": "Blocca utente", "@block_user": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "unblock_user": "Sblocca utente", "@unblock_user": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "disconnect_from_user": "Disconnetti da {userName}", "@disconnect_from_user": { "type": "text", "placeholders": { - "userName": { - - } + "userName": {} } }, "circle_peoples_count": "{prettyUsersCount} persone", "@circle_peoples_count": { "type": "text", "placeholders": { - "prettyUsersCount": { - - } + "prettyUsersCount": {} } }, "follows_list_accounts_count": "{prettyUsersCount} account", "@follows_list_accounts_count": { "type": "text", "placeholders": { - "prettyUsersCount": { - - } + "prettyUsersCount": {} } } } \ No newline at end of file diff --git a/assets/i18n/it/user_search.arb b/assets/i18n/it/user_search.arb index df841ee5a..eb04ffd9d 100644 --- a/assets/i18n/it/user_search.arb +++ b/assets/i18n/it/user_search.arb @@ -2,32 +2,24 @@ "search_text": "Cerca...", "@search_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities": "Comunità", "@communities": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "users": "Utenti", "@users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "list_search_text": "Cerca {resourcePluralName}...", "@list_search_text": { "description": "resourcePluralName can take many forms foreg. Search members... , Search accepted invites, Search communities.. etc.", "type": "text", "placeholders": { - "resourcePluralName": { - - } + "resourcePluralName": {} } }, "list_no_results_found": "Impossibile trovare {resourcePluralName}.", @@ -35,66 +27,50 @@ "description": "Used in a generic list widget. Can be No users found. No communities found. No pending invites found. Its always a plural. ", "type": "text", "placeholders": { - "resourcePluralName": { - - } + "resourcePluralName": {} } }, "list_refresh_text": "Aggiorna", "@list_refresh_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "list_retry": "Tocca per riprovare.", "@list_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "cancel": "Annulla", "@cancel": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "searching_for": "Ricerca di '{searchQuery}'", "@searching_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "no_results_for": "Nessun risultato per '{searchQuery}'.", "@no_results_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "no_communities_for": "Nessuna Comunità trovata per '{searchQuery}'.", "@no_communities_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "no_users_for": "Nessun Utente trovato per '{searchQuery}'.", "@no_users_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } } } \ No newline at end of file diff --git a/assets/i18n/it/video_picker.arb b/assets/i18n/it/video_picker.arb new file mode 100644 index 000000000..bb245b391 --- /dev/null +++ b/assets/i18n/it/video_picker.arb @@ -0,0 +1,12 @@ +{ + "from_gallery": "Dalla galleria", + "@from_gallery": { + "type": "text", + "placeholders": {} + }, + "from_camera": "Dalla fotocamera", + "@from_camera": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/nl/application_settings.arb b/assets/i18n/nl/application_settings.arb new file mode 100644 index 000000000..734432022 --- /dev/null +++ b/assets/i18n/nl/application_settings.arb @@ -0,0 +1,57 @@ +{ + "videos": "Videos", + "@videos": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay": "Autoplay", + "@videos_autoplay": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_always": "Altijd", + "@videos_autoplay_always": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_wifi_only": "Alleen via Wifi", + "@videos_autoplay_wifi_only": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_never": "Nooit", + "@videos_autoplay_never": { + "type": "text", + "placeholders": {} + }, + "videos_sound": "Sound", + "@videos_sound": { + "type": "text", + "placeholders": {} + }, + "tap_to_change": "(Tap to change)", + "@tap_to_change": { + "type": "text", + "placeholders": {} + }, + "videos_sound_enabled": "Ingeschakeld", + "@videos_sound_enabled": { + "type": "text", + "placeholders": {} + }, + "videos_sound_disabled": "Uitgeschakeld", + "@videos_sound_disabled": { + "type": "text", + "placeholders": {} + }, + "comment_sort_newest_first": "Nieuwste eerst", + "@comment_sort_newest_first": { + "type": "text", + "placeholders": {} + }, + "comment_sort_oldest_first": "Oudste eerst", + "@comment_sort_oldest_first": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/nl/auth.arb b/assets/i18n/nl/auth.arb new file mode 100644 index 000000000..fe32cfd05 --- /dev/null +++ b/assets/i18n/nl/auth.arb @@ -0,0 +1,531 @@ +{ + "headline": "Better social.", + "@headline": { + "type": "text", + "placeholders": {} + }, + "login": "Aanmelden", + "@login": { + "type": "text", + "placeholders": {} + }, + "email_empty_error": "E-mail mag niet leeg zijn.", + "@email_empty_error": { + "type": "text", + "placeholders": {} + }, + "email_invalid_error": "Vul een geldig e-mailadres in.", + "@email_invalid_error": { + "type": "text", + "placeholders": {} + }, + "username_empty_error": "Gebruikersnaam mag niet leeg zijn.", + "@username_empty_error": { + "type": "text", + "placeholders": {} + }, + "username_characters_error": "Een gebruikersnaam kan alleen alfanumerieke karakters en onderliggend streepje bevatten.", + "@username_characters_error": { + "type": "text", + "placeholders": {} + }, + "username_maxlength_error": "Een gebruikersnaam mag niet langer zijn dan {maxLength} tekens.", + "@username_maxlength_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "create_account": "Inschrijven", + "@create_account": { + "type": "text", + "placeholders": {} + }, + "create_acc__lets_get_started": "Laten we beginnen", + "@create_acc__lets_get_started": { + "type": "text", + "placeholders": {} + }, + "create_acc__welcome_to_beta": "Welkom bij de Bèta!", + "@create_acc__welcome_to_beta": { + "type": "text", + "placeholders": {} + }, + "create_acc__previous": "Terug", + "@create_acc__previous": { + "type": "text", + "placeholders": {} + }, + "create_acc__next": "Volgende", + "@create_acc__next": { + "type": "text", + "placeholders": {} + }, + "create_acc__create_account": "Account aanmaken", + "@create_acc__create_account": { + "type": "text", + "placeholders": {} + }, + "create_acc__paste_link": "Plak uw registratie link hieronder", + "@create_acc__paste_link": { + "type": "text", + "placeholders": {} + }, + "create_acc__paste_password_reset_link": "Plak uw wachtwoord herstel-link hieronder", + "@create_acc__paste_password_reset_link": { + "type": "text", + "placeholders": {} + }, + "create_acc__paste_link_help_text": "Gebruik de link van de Join Okuna knop in uw uitnodigingsmail.", + "@create_acc__paste_link_help_text": { + "type": "text", + "placeholders": {} + }, + "create_acc__link_empty_error": "Link mag niet leeg zijn.", + "@create_acc__link_empty_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__link_invalid_error": "Deze link lijkt ongeldig.", + "@create_acc__link_invalid_error": { + "type": "text", + "placeholders": {} + }, + "password_empty_error": "Wachtwoord mag niet leeg zijn.", + "@password_empty_error": { + "type": "text", + "placeholders": {} + }, + "password_range_error": "Wachtwoord moet tussen {minLength} en {maxLength} tekens bevatten.", + "@password_range_error": { + "type": "text", + "placeholders": { + "minLength": {}, + "maxLength": {} + } + }, + "name_empty_error": "Naam mag niet leeg zijn.", + "@name_empty_error": { + "type": "text", + "placeholders": {} + }, + "name_range_error": "Naam moet tussen {minLength} en {maxLength} tekens bevatten.", + "@name_range_error": { + "type": "text", + "placeholders": { + "minLength": {}, + "maxLength": {} + } + }, + "description_empty_error": "Omschrijving mag niet leeg zijn.", + "@description_empty_error": { + "type": "text", + "placeholders": {} + }, + "description_range_error": "Omschrijving moet tussen {minLength} en {maxLength} tekens bevatten.", + "@description_range_error": { + "type": "text", + "placeholders": { + "minLength": {}, + "maxLength": {} + } + }, + "reset_password_success_title": "Klaar!", + "@reset_password_success_title": { + "type": "text", + "placeholders": {} + }, + "reset_password_success_info": "Je wachtwoord is met succes bijgewerkt", + "@reset_password_success_info": { + "type": "text", + "placeholders": {} + }, + "create_acc__request_invite": "Geen uitnodiging? Vraag er hier een aan.", + "@create_acc__request_invite": { + "type": "text", + "placeholders": {} + }, + "create_acc__subscribe": "Verzoek", + "@create_acc__subscribe": { + "type": "text", + "placeholders": {} + }, + "create_acc__subscribe_to_waitlist_text": "Een uitnodiging aanvragen!", + "@create_acc__subscribe_to_waitlist_text": { + "type": "text", + "placeholders": {} + }, + "create_acc__congratulations": "Gefeliciteerd!", + "@create_acc__congratulations": { + "type": "text", + "placeholders": {} + }, + "create_acc__your_subscribed": "Je bent {0} op de wachtlijst.", + "@create_acc__your_subscribed": { + "type": "text", + "placeholders": {} + }, + "create_acc__almost_there": "Bijna klaar...", + "@create_acc__almost_there": { + "type": "text", + "placeholders": {} + }, + "create_acc__what_name": "Wat is je naam?", + "@create_acc__what_name": { + "type": "text", + "placeholders": {} + }, + "create_acc__name_placeholder": "James Bond", + "@create_acc__name_placeholder": { + "type": "text", + "placeholders": {} + }, + "create_acc__name_empty_error": "😱 Je naam kan niet leeg zijn.", + "@create_acc__name_empty_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__name_length_error": "😱 Je naam kan niet langer zijn dan 50 karakters. (Als dat zo is, dan spijt dat ons zeer.)", + "@create_acc__name_length_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__name_characters_error": "😅 Een naam kan alleen alfanumerieke karakters bevatten (voor nu).", + "@create_acc__name_characters_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__what_username": "Kies een gebruikersnaam", + "@create_acc__what_username": { + "type": "text", + "placeholders": {} + }, + "create_acc__username_placeholder": "vincentvangogh", + "@create_acc__username_placeholder": { + "type": "text", + "placeholders": {} + }, + "create_acc__username_empty_error": "😱 De gebruikersnaam kan niet leeg zijn.", + "@create_acc__username_empty_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__username_length_error": "😅 Een gebruiksnaam kan niet langer zijn dan 30 karakters.", + "@create_acc__username_length_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__username_characters_error": "😅 Een gebruikersnaam kan alleen alfanumerieke karakters en onderliggend streepje bevatten.", + "@create_acc__username_characters_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__username_taken_error": "😩 De gebruikersnaam @%s is al bezet.", + "@create_acc__username_taken_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__username_server_error": "😭 We ervaren problemen met onze servers. Probeer alsjeblieft het over een paar minuten opnieuw.", + "@create_acc__username_server_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__what_email": "Wat is je e-mail adres?", + "@create_acc__what_email": { + "type": "text", + "placeholders": {} + }, + "create_acc__email_placeholder": "v.vangogh@kwasten.nl", + "@create_acc__email_placeholder": { + "type": "text", + "placeholders": {} + }, + "create_acc__email_empty_error": "😱 Je e-mailadres kan niet leeg zijn", + "@create_acc__email_empty_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__email_invalid_error": "😅 Voer een geldig e-mailadres in.", + "@create_acc__email_invalid_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__email_taken_error": "🤔 Er bestaat al een account voor dat e-mailadres.", + "@create_acc__email_taken_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__email_server_error": "😭 We ervaren problemen met onze servers. Probeer het over een paar minuten alsjeblieft opnieuw.", + "@create_acc__email_server_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__what_password": "Kies een wachtwoord", + "@create_acc__what_password": { + "type": "text", + "placeholders": {} + }, + "create_acc_password_hint_text": "({minLength}-{maxLength} tekens)", + "@create_acc_password_hint_text": { + "type": "text", + "placeholders": { + "minLength": {}, + "maxLength": {} + } + }, + "create_acc__what_password_subtext": "(min 10 tekens)", + "@create_acc__what_password_subtext": { + "type": "text", + "placeholders": {} + }, + "create_acc__password_empty_error": "😱 Je wachtwoord kan niet leeg zijn", + "@create_acc__password_empty_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__password_length_error": "😅 Een wachtwoord moet tussen 8 en 64 karakters zijn.", + "@create_acc__password_length_error": { + "type": "text", + "placeholders": {} + }, + "create_acc__what_avatar": "Kies een profielfoto", + "@create_acc__what_avatar": { + "type": "text", + "placeholders": {} + }, + "create_acc__avatar_tap_to_change": "Tik om te wijzigen", + "@create_acc__avatar_tap_to_change": { + "type": "text", + "placeholders": {} + }, + "create_acc__avatar_choose_camera": "Neem een foto", + "@create_acc__avatar_choose_camera": { + "type": "text", + "placeholders": {} + }, + "create_acc__avatar_choose_gallery": "Gebruik een bestaande foto", + "@create_acc__avatar_choose_gallery": { + "type": "text", + "placeholders": {} + }, + "create_acc__avatar_remove_photo": "Foto verwijderen", + "@create_acc__avatar_remove_photo": { + "type": "text", + "placeholders": {} + }, + "create_acc__done": "Account aanmaken", + "@create_acc__done": { + "type": "text", + "placeholders": {} + }, + "create_acc__done_subtext": "Je kunt dit wijzigen in je profielinstellingen.", + "@create_acc__done_subtext": { + "type": "text", + "placeholders": {} + }, + "create_acc__done_created": "Je account is aangemaakt met gebruikersnaam ", + "@create_acc__done_created": { + "type": "text", + "placeholders": {} + }, + "create_acc__submit_loading_title": "Nog even volhouden!", + "@create_acc__submit_loading_title": { + "type": "text", + "placeholders": {} + }, + "create_acc__submit_loading_desc": "We maken je account aan.", + "@create_acc__submit_loading_desc": { + "type": "text", + "placeholders": {} + }, + "create_acc__submit_error_title": "Oh nee...", + "@create_acc__submit_error_title": { + "type": "text", + "placeholders": {} + }, + "create_acc__submit_error_desc_server": "😭 We ervaren problemen met onze servers. Probeer het over een paar minuten opnieuw, a.u.b.", + "@create_acc__submit_error_desc_server": { + "type": "text", + "placeholders": {} + }, + "create_acc__submit_error_desc_validation": "😅 Het lijkt erop dat sommige informatie niet juist is, controleer en probeer het opnieuw a.u.b.", + "@create_acc__submit_error_desc_validation": { + "type": "text", + "placeholders": {} + }, + "create_acc__done_title": "Hoera!", + "@create_acc__done_title": { + "type": "text", + "placeholders": {} + }, + "create_acc__done_description": "Je account is aangemaakt.", + "@create_acc__done_description": { + "type": "text", + "placeholders": {} + }, + "create_acc__your_username_is": "Je gebruikersnaam is ", + "@create_acc__your_username_is": { + "type": "text", + "placeholders": {} + }, + "create_acc__can_change_username": "Indien gewenst kun je dit altijd via je profielpagina wijzigen.", + "@create_acc__can_change_username": { + "type": "text", + "placeholders": {} + }, + "create_acc__done_continue": "Inloggen", + "@create_acc__done_continue": { + "type": "text", + "placeholders": {} + }, + "create_acc__one_last_thing": "Nog één ding...", + "@create_acc__one_last_thing": { + "type": "text", + "placeholders": {} + }, + "create_acc__register": "Registreren", + "@create_acc__register": { + "type": "text", + "placeholders": {} + }, + "create_acc__are_you_legal_age": "Ben je ouder dan 16 jaar?", + "@create_acc__are_you_legal_age": { + "type": "text", + "placeholders": {} + }, + "login__login": "Doorgaan", + "@login__login": { + "type": "text", + "placeholders": {} + }, + "login__previous": "Vorige", + "@login__previous": { + "type": "text", + "placeholders": {} + }, + "login__title": "Welkom terug!", + "@login__title": { + "type": "text", + "placeholders": {} + }, + "login__subtitle": "Voer uw inloggegevens in om door te gaan.", + "@login__subtitle": { + "type": "text", + "placeholders": {} + }, + "login__forgot_password": "Wachtwoord vergeten", + "@login__forgot_password": { + "type": "text", + "placeholders": {} + }, + "login__forgot_password_subtitle": "Voer je gebruikersnaam of email adres in", + "@login__forgot_password_subtitle": { + "type": "text", + "placeholders": {} + }, + "login__username_label": "Gebruikersnaam", + "@login__username_label": { + "type": "text", + "placeholders": {} + }, + "login__password_label": "Wachtwoord", + "@login__password_label": { + "type": "text", + "placeholders": {} + }, + "login__email_label": "E-mail", + "@login__email_label": { + "type": "text", + "placeholders": {} + }, + "login__or_text": "Of", + "@login__or_text": { + "type": "text", + "placeholders": {} + }, + "login__password_empty_error": "Wachtwoord is vereist.", + "@login__password_empty_error": { + "type": "text", + "placeholders": {} + }, + "login__password_length_error": "Wachtwoord moet tussen 8 en 64 karakters zijn.", + "@login__password_length_error": { + "type": "text", + "placeholders": {} + }, + "login__username_empty_error": "Gebruikersnaam is vereist.", + "@login__username_empty_error": { + "type": "text", + "placeholders": {} + }, + "login__username_length_error": "Gebruikersnaam kan niet langer zijn dan 30 karakters.", + "@login__username_length_error": { + "type": "text", + "placeholders": {} + }, + "login__username_characters_error": "Gebruikersnaam kan alleen alfanumerieke karakters en underscores bevatten.", + "@login__username_characters_error": { + "type": "text", + "placeholders": {} + }, + "login__credentials_mismatch_error": "De versterkte inloggegevens komen niet overeen.", + "@login__credentials_mismatch_error": { + "type": "text", + "placeholders": {} + }, + "login__server_error": "Oh oh.. We ervaren problemen met de server. Probeer het over enkele minuten opnieuw.", + "@login__server_error": { + "type": "text", + "placeholders": {} + }, + "login__connection_error": "We kunnen onze servers niet bereiken. Ben je verbonden met het internet?", + "@login__connection_error": { + "type": "text", + "placeholders": {} + }, + "change_password_title": "Wachtwoord wijzigen", + "@change_password_title": { + "type": "text", + "placeholders": {} + }, + "change_password_current_pwd": "Huidig wachtwoord", + "@change_password_current_pwd": { + "type": "text", + "placeholders": {} + }, + "change_password_current_pwd_hint": "Voer je huidige wachtwoord in", + "@change_password_current_pwd_hint": { + "type": "text", + "placeholders": {} + }, + "change_password_current_pwd_incorrect": "Het ingevoerde wachtwoord is onjuist", + "@change_password_current_pwd_incorrect": { + "type": "text", + "placeholders": {} + }, + "change_password_new_pwd": "Nieuw wachtwoord", + "@change_password_new_pwd": { + "type": "text", + "placeholders": {} + }, + "change_password_new_pwd_hint": "Voer je nieuwe wachtwoord in", + "@change_password_new_pwd_hint": { + "type": "text", + "placeholders": {} + }, + "change_password_new_pwd_error": "Zorg dat het wachtwoord 10 tot 100 tekens lang is", + "@change_password_new_pwd_error": { + "type": "text", + "placeholders": {} + }, + "change_password_save_text": "Opslaan", + "@change_password_save_text": { + "type": "text", + "placeholders": {} + }, + "change_password_save_success": "Alles goed! Je wachtwoord is bijgewerkt", + "@change_password_save_success": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/nl/community.arb b/assets/i18n/nl/community.arb new file mode 100644 index 000000000..dfc4ae1ef --- /dev/null +++ b/assets/i18n/nl/community.arb @@ -0,0 +1,747 @@ +{ + "no": "Nee", + "@no": { + "type": "text", + "placeholders": {} + }, + "yes": "Ja", + "@yes": { + "type": "text", + "placeholders": {} + }, + "button_staff": "Staf", + "@button_staff": { + "type": "text", + "placeholders": {} + }, + "button_rules": "Reglement", + "@button_rules": { + "type": "text", + "placeholders": {} + }, + "community": "community", + "@community": { + "type": "text", + "placeholders": {} + }, + "communities": "communities", + "@communities": { + "type": "text", + "placeholders": {} + }, + "type_public": "Openbaar", + "@type_public": { + "type": "text", + "placeholders": {} + }, + "type_private": "Privé", + "@type_private": { + "type": "text", + "placeholders": {} + }, + "member_capitalized": "Lid", + "@member_capitalized": { + "type": "text", + "placeholders": {} + }, + "members_capitalized": "Leden", + "@members_capitalized": { + "type": "text", + "placeholders": {} + }, + "admin_desc": "Hiermee wordt een lid in staat gesteld om de community gegevens, de beheerders, de moderators en geblokkeerde gebruikers, aan te passen.", + "@admin_desc": { + "type": "text", + "placeholders": {} + }, + "confirmation_title": "Bevestiging", + "@confirmation_title": { + "type": "text", + "placeholders": {} + }, + "admin_add_confirmation": "Weet je zeker dat je @{username} wil toevoegen als beheerder van de community?", + "@admin_add_confirmation": { + "type": "text", + "placeholders": { + "username": {} + } + }, + "ban_confirmation": "Weet je zeker dat je @{username} wil blokkeren?", + "@ban_confirmation": { + "type": "text", + "placeholders": { + "username": {} + } + }, + "ban_desc": "Dit zorgt ervoor dat de gebruiker verwijderd wordt uit de community en verbiedt de gebruiker nogmaals toe te treden.", + "@ban_desc": { + "type": "text", + "placeholders": {} + }, + "moderator_add_confirmation": "Weet je zeker dat je @{username} wilt toevoegen als moderator van de community?", + "@moderator_add_confirmation": { + "type": "text", + "placeholders": { + "username": {} + } + }, + "moderator_desc": "Dit stelt het lid in staat om community gegevens, moderators en verboden gebruikers te wijzigen.", + "@moderator_desc": { + "type": "text", + "placeholders": {} + }, + "moderators_you": "Jij", + "@moderators_you": { + "type": "text", + "placeholders": {} + }, + "moderators_title": "Moderators", + "@moderators_title": { + "type": "text", + "placeholders": {} + }, + "leave_desc": "Je zult de berichten niet in je tijdslijn zien, noch bent in staat er nog in te posten.", + "@leave_desc": { + "type": "text", + "placeholders": {} + }, + "leave_confirmation": "Weet je zeker dat je deze community wil verlaten?", + "@leave_confirmation": { + "type": "text", + "placeholders": {} + }, + "moderator_resource_name": "moderator", + "@moderator_resource_name": { + "type": "text", + "placeholders": {} + }, + "moderators_resource_name": "moderators", + "@moderators_resource_name": { + "type": "text", + "placeholders": {} + }, + "add_moderator_title": "Een moderator toevoegen", + "@add_moderator_title": { + "type": "text", + "placeholders": {} + }, + "delete_confirmation": "Weet je zeker dat je deze community wil verwijderen?", + "@delete_confirmation": { + "type": "text", + "placeholders": {} + }, + "delete_desc": "Je zult de berichten niet meer in je tijdslijn zien, noch in staat zijn om er in te posten.", + "@delete_desc": { + "type": "text", + "placeholders": {} + }, + "actions_manage_text": "Beheer", + "@actions_manage_text": { + "type": "text", + "placeholders": {} + }, + "manage_title": "Beheer de community", + "@manage_title": { + "type": "text", + "placeholders": {} + }, + "manage_details_title": "Details", + "@manage_details_title": { + "type": "text", + "placeholders": {} + }, + "manage_details_desc": "Verander de titel, naam, avatar, omslagfoto en meer.", + "@manage_details_desc": { + "type": "text", + "placeholders": {} + }, + "manage_admins_title": "Beheerders", + "@manage_admins_title": { + "type": "text", + "placeholders": {} + }, + "manage_admins_desc": "Bekijk, voeg toe en verwijder beheerders.", + "@manage_admins_desc": { + "type": "text", + "placeholders": {} + }, + "manage_mods_title": "Moderators", + "@manage_mods_title": { + "type": "text", + "placeholders": {} + }, + "manage_mods_desc": "Bekijk, voeg toe en verwijder moderators.", + "@manage_mods_desc": { + "type": "text", + "placeholders": {} + }, + "manage_banned_title": "Geblokkeerde gebruikers", + "@manage_banned_title": { + "type": "text", + "placeholders": {} + }, + "manage_banned_desc": "Bekijk, voeg toe en verwijder geblokkeerde gebruikers.", + "@manage_banned_desc": { + "type": "text", + "placeholders": {} + }, + "manage_mod_reports_title": "Moderatierapporten", + "@manage_mod_reports_title": { + "type": "text", + "placeholders": {} + }, + "manage_mod_reports_desc": "Beoordeel de moderatierapporten van de community.", + "@manage_mod_reports_desc": { + "type": "text", + "placeholders": {} + }, + "manage_closed_posts_title": "Gesloten berichten", + "@manage_closed_posts_title": { + "type": "text", + "placeholders": {} + }, + "manage_closed_posts_desc": "Bekijk en beheer gesloten berichten", + "@manage_closed_posts_desc": { + "type": "text", + "placeholders": {} + }, + "manage_invite_title": "Mensen uitnodigen", + "@manage_invite_title": { + "type": "text", + "placeholders": {} + }, + "manage_invite_desc": "Nodig je connecties en volgers uit om deel te nemen aan de community.", + "@manage_invite_desc": { + "type": "text", + "placeholders": {} + }, + "manage_delete_title": "Een community verwijderen", + "@manage_delete_title": { + "type": "text", + "placeholders": {} + }, + "manage_delete_desc": "Voorgoed een community verwijderen.", + "@manage_delete_desc": { + "type": "text", + "placeholders": {} + }, + "manage_leave_title": "Een community verlaten", + "@manage_leave_title": { + "type": "text", + "placeholders": {} + }, + "manage_leave_desc": "De community verlaten.", + "@manage_leave_desc": { + "type": "text", + "placeholders": {} + }, + "manage_add_favourite": "Voeg de community aan je favorieten toe", + "@manage_add_favourite": { + "type": "text", + "placeholders": {} + }, + "manage_remove_favourite": "Verwijder de community uit je favorieten", + "@manage_remove_favourite": { + "type": "text", + "placeholders": {} + }, + "is_private": "Deze community is besloten.", + "@is_private": { + "type": "text", + "placeholders": {} + }, + "invited_by_member": "Je dient uitgenodigd te worden door een lid.", + "@invited_by_member": { + "type": "text", + "placeholders": {} + }, + "invited_by_moderator": "Je dient uitgenodigd te worden door een moderator.", + "@invited_by_moderator": { + "type": "text", + "placeholders": {} + }, + "refreshing": "Verversen community", + "@refreshing": { + "type": "text", + "placeholders": {} + }, + "posts": "Posts", + "@posts": { + "type": "text", + "placeholders": {} + }, + "about": "Over", + "@about": { + "type": "text", + "placeholders": {} + }, + "category": "categorie.", + "@category": { + "type": "text", + "placeholders": {} + }, + "categories": "categorieën.", + "@categories": { + "type": "text", + "placeholders": {} + }, + "add_administrators_title": "Een beheerder toevoegen.", + "@add_administrators_title": { + "type": "text", + "placeholders": {} + }, + "community_members": "Leden van een community", + "@community_members": { + "type": "text", + "placeholders": {} + }, + "member": "lid", + "@member": { + "description": "Currently not used in app, reserved for potential use. Could be used as: Showing 1 member", + "type": "text", + "placeholders": {} + }, + "member_plural": "leden", + "@member_plural": { + "description": "See all members ,Search all members", + "type": "text", + "placeholders": {} + }, + "administrators_title": "Beheerders", + "@administrators_title": { + "type": "text", + "placeholders": {} + }, + "administrator_text": "beheerder", + "@administrator_text": { + "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 administrator", + "type": "text", + "placeholders": {} + }, + "administrator_plural": "beheerders", + "@administrator_plural": { + "description": "Egs. Search administrators, See list_search_text in user_search.arb ", + "type": "text", + "placeholders": {} + }, + "administrator_you": "Jij", + "@administrator_you": { + "type": "text", + "placeholders": {} + }, + "user_you_text": "Jij", + "@user_you_text": { + "type": "text", + "placeholders": {} + }, + "pick_upto_max": "Kies {max} categorieën", + "@pick_upto_max": { + "type": "text", + "placeholders": { + "max": {} + } + }, + "pick_atleast_min_category": "Je dient tenminste {min} categorie te selecteren.", + "@pick_atleast_min_category": { + "description": "You must pick at least 1 category", + "type": "text", + "placeholders": { + "min": {} + } + }, + "pick_atleast_min_categories": "Je dient tenminste {min} categorieën te selecteren.", + "@pick_atleast_min_categories": { + "description": "Eg. Variable min will be 3-5. You must pick at least (3-5) categories", + "type": "text", + "placeholders": { + "min": {} + } + }, + "ban_user_title": "Blokkeer gebruiker", + "@ban_user_title": { + "type": "text", + "placeholders": {} + }, + "banned_users_title": "Blokkeer gebruikers", + "@banned_users_title": { + "type": "text", + "placeholders": {} + }, + "banned_user_text": "geblokkeerde gebruiker", + "@banned_user_text": { + "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 banned user", + "type": "text", + "placeholders": {} + }, + "banned_users_text": "geblokkeerde gebruikers", + "@banned_users_text": { + "description": "Egs. Search banned users, See list_search_text in user_search.arb ", + "type": "text", + "placeholders": {} + }, + "favorites_title": "Favorieten", + "@favorites_title": { + "type": "text", + "placeholders": {} + }, + "favorite_community": "favoriete community", + "@favorite_community": { + "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 favorite community", + "type": "text", + "placeholders": {} + }, + "favorite_communities": "favoriete communities", + "@favorite_communities": { + "description": "Egs. Search favorite communities, See list_search_text in user_search.arb ", + "type": "text", + "placeholders": {} + }, + "administrated_title": "Beheer", + "@administrated_title": { + "type": "text", + "placeholders": {} + }, + "administrated_community": "beheerders community", + "@administrated_community": { + "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 administrated community", + "type": "text", + "placeholders": {} + }, + "administrated_communities": "beheerders communities", + "@administrated_communities": { + "description": "Egs. Search administrated communities, See list_search_text in user_search.arb ", + "type": "text", + "placeholders": {} + }, + "moderated_title": "Gemodereerd", + "@moderated_title": { + "type": "text", + "placeholders": {} + }, + "moderated_community": "gemodereerde community", + "@moderated_community": { + "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 moderated community", + "type": "text", + "placeholders": {} + }, + "moderated_communities": "gemodereerde communities", + "@moderated_communities": { + "description": "Egs. Search moderated communities, See list_search_text in user_search.arb ", + "type": "text", + "placeholders": {} + }, + "joined_title": "Lid sinds", + "@joined_title": { + "type": "text", + "placeholders": {} + }, + "joined_community": "lid van deze community sinds", + "@joined_community": { + "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 joined community", + "type": "text", + "placeholders": {} + }, + "joined_communities": "lid van deze communities", + "@joined_communities": { + "description": "Egs. Search joined communities, See list_search_text in user_search.arb ", + "type": "text", + "placeholders": {} + }, + "join_communities_desc": "Word lid van communities om deze tab tot leven te zien komen!", + "@join_communities_desc": { + "type": "text", + "placeholders": {} + }, + "refresh_text": "Ververs", + "@refresh_text": { + "type": "text", + "placeholders": {} + }, + "trending_none_found": "Geen trending communities gevonden. Probeer het over enkele minuten opnieuw.", + "@trending_none_found": { + "type": "text", + "placeholders": {} + }, + "trending_refresh": "Ververs", + "@trending_refresh": { + "type": "text", + "placeholders": {} + }, + "trending_in_all": "Trending in alle categorieën", + "@trending_in_all": { + "type": "text", + "placeholders": {} + }, + "trending_in_category": "Trending in {categoryName}", + "@trending_in_category": { + "type": "text", + "placeholders": { + "categoryName": {} + } + }, + "communities_title": "Communities", + "@communities_title": { + "type": "text", + "placeholders": {} + }, + "communities_no_category_found": "Geen categorieën gevonden. Probeer het over een paar minuten opnieuw.", + "@communities_no_category_found": { + "type": "text", + "placeholders": {} + }, + "communities_refresh_text": "Ververs", + "@communities_refresh_text": { + "type": "text", + "placeholders": {} + }, + "communities_all_text": "Allen", + "@communities_all_text": { + "type": "text", + "placeholders": {} + }, + "invite_to_community_title": "Uitnodiging om deel te nemen aan deze community", + "@invite_to_community_title": { + "type": "text", + "placeholders": {} + }, + "invite_to_community_resource_singular": "connectie of volger", + "@invite_to_community_resource_singular": { + "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 connection or follower", + "type": "text", + "placeholders": {} + }, + "invite_to_community_resource_plural": "connecties en volgers", + "@invite_to_community_resource_plural": { + "description": "Egs. Search connections and followers, See list_search_text in user_search.arb ", + "type": "text", + "placeholders": {} + }, + "favorite_action": "Favoriete community", + "@favorite_action": { + "type": "text", + "placeholders": {} + }, + "unfavorite_action": "Niet favoriete community", + "@unfavorite_action": { + "type": "text", + "placeholders": {} + }, + "save_community_label_title": "Titel", + "@save_community_label_title": { + "type": "text", + "placeholders": {} + }, + "save_community_label_title_hint_text": "bijv. Reizen, Fotografie, Gaming.", + "@save_community_label_title_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_community_name_title": "Naam", + "@save_community_name_title": { + "type": "text", + "placeholders": {} + }, + "save_community_name_title_hint_text": " bijv. reizen, fotografie, gaming.", + "@save_community_name_title_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_community_name_taken": "Community naam ‘{takenName}’ is bezet", + "@save_community_name_taken": { + "type": "text", + "placeholders": { + "takenName": {} + } + }, + "save_community_name_label_color": "Kleur", + "@save_community_name_label_color": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_color_hint_text": "(Tik om te wijzigen)", + "@save_community_name_label_color_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_type": "Type", + "@save_community_name_label_type": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_type_hint_text": "(Tik om te wijzigen)", + "@save_community_name_label_type_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_community_name_member_invites": "Lid uitnodigen", + "@save_community_name_member_invites": { + "type": "text", + "placeholders": {} + }, + "save_community_name_member_invites_subtitle": "Leden kunnen mensen voor de community uitnodigen", + "@save_community_name_member_invites_subtitle": { + "type": "text", + "placeholders": {} + }, + "save_community_name_category": "Categorie", + "@save_community_name_category": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_desc_optional": "Omschrijving · Optioneel", + "@save_community_name_label_desc_optional": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_desc_optional_hint_text": "Wat is het onderwerp van je community?", + "@save_community_name_label_desc_optional_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_rules_optional": "Regels · Optioneel", + "@save_community_name_label_rules_optional": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_rules_optional_hint_text": "Is er iets wat je wilt dat je gebruikers weten?", + "@save_community_name_label_rules_optional_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_member_adjective": "Bijnaam lid (enkelvoud) · Optioneel", + "@save_community_name_label_member_adjective": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_member_adjective_hint_text": "bijv. reiziger, fotograaf, gamer.", + "@save_community_name_label_member_adjective_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_members_adjective": "Bijnaam leden (meervoud) · Optioneel", + "@save_community_name_label_members_adjective": { + "type": "text", + "placeholders": {} + }, + "save_community_name_label_members_adjective_hint_text": "bijv. reizigers, fotografen, gamers.", + "@save_community_name_label_members_adjective_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_community_edit_community": "Bewerk community", + "@save_community_edit_community": { + "type": "text", + "placeholders": {} + }, + "save_community_create_community": "Maak een community", + "@save_community_create_community": { + "type": "text", + "placeholders": {} + }, + "save_community_save_text": "Opslaan", + "@save_community_save_text": { + "type": "text", + "placeholders": {} + }, + "save_community_create_text": "Creëer", + "@save_community_create_text": { + "type": "text", + "placeholders": {} + }, + "actions_invite_people_title": "Nodig mensen uit voor deze community", + "@actions_invite_people_title": { + "type": "text", + "placeholders": {} + }, + "join_community": "Word lid", + "@join_community": { + "type": "text", + "placeholders": {} + }, + "leave_community": "Verlaat", + "@leave_community": { + "type": "text", + "placeholders": {} + }, + "community_staff": "Community staf", + "@community_staff": { + "type": "text", + "placeholders": {} + }, + "post_singular": "post bericht", + "@post_singular": { + "type": "text", + "placeholders": {} + }, + "post_plural": "berichten", + "@post_plural": { + "type": "text", + "placeholders": {} + }, + "rules_title": "Community regels", + "@rules_title": { + "type": "text", + "placeholders": {} + }, + "rules_text": "Regels", + "@rules_text": { + "type": "text", + "placeholders": {} + }, + "name_characters_error": "Een gebruikersnaam kan alleen alfanumerieke tekens en onderliggende streepjes bevatten.", + "@name_characters_error": { + "type": "text", + "placeholders": {} + }, + "name_range_error": "Een gebruikersnaam mag niet langer zijn dan {maxLength} tekens.", + "@name_range_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "name_empty_error": "Naam invullen is verplicht.", + "@name_empty_error": { + "type": "text", + "placeholders": {} + }, + "title_range_error": "De titel mag niet langer zijn dan {maxLength} tekens.", + "@title_range_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "title_empty_error": "Titel invullen is verplicht.", + "@title_empty_error": { + "type": "text", + "placeholders": {} + }, + "rules_range_error": "Regels mogen niet langer zijn dan {maxLength} tekens.", + "@rules_range_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "rules_empty_error": "Regels invullen is verplicht.", + "@rules_empty_error": { + "type": "text", + "placeholders": {} + }, + "description_range_error": "Omschrijving mag niet langer zijn dan {maxLength} tekens.", + "@description_range_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "adjectives_range_error": "Bijnamen van leden mogen niet langer zijn dan {maxLength} tekens.", + "@adjectives_range_error": { + "description": "This refers to the customisable adjectives assigned to community members,eg. 1k travellers,5k photographers", + "type": "text", + "placeholders": { + "maxLength": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/nl/contextual_account_search_box.arb b/assets/i18n/nl/contextual_account_search_box.arb new file mode 100644 index 000000000..74740ed5b --- /dev/null +++ b/assets/i18n/nl/contextual_account_search_box.arb @@ -0,0 +1,8 @@ +{ + "suggestions": "Suggesties", + "@suggestions": { + "description": "The title to display on the suggestions when searching for accounts when trying to mention someone.", + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/nl/drawer.arb b/assets/i18n/nl/drawer.arb new file mode 100644 index 000000000..5fb255c8f --- /dev/null +++ b/assets/i18n/nl/drawer.arb @@ -0,0 +1,224 @@ +{ + "menu_title": "Menu", + "@menu_title": { + "type": "text", + "placeholders": {} + }, + "main_title": "Mijn Okuna", + "@main_title": { + "type": "text", + "placeholders": {} + }, + "my_circles": "Mijn cirkels", + "@my_circles": { + "type": "text", + "placeholders": {} + }, + "my_lists": "Mijn lijsten", + "@my_lists": { + "type": "text", + "placeholders": {} + }, + "my_followers": "Mijn volgers", + "@my_followers": { + "type": "text", + "placeholders": {} + }, + "my_following": "Mijn volgers", + "@my_following": { + "type": "text", + "placeholders": {} + }, + "my_invites": "Mijn uitnodigingen", + "@my_invites": { + "type": "text", + "placeholders": {} + }, + "my_pending_mod_tasks": "Mijn wachtende moderatie taken", + "@my_pending_mod_tasks": { + "type": "text", + "placeholders": {} + }, + "my_mod_penalties": "Mijn strafpunten", + "@my_mod_penalties": { + "type": "text", + "placeholders": {} + }, + "app_account_text": "App & Account", + "@app_account_text": { + "type": "text", + "placeholders": {} + }, + "themes": "Thema’s", + "@themes": { + "type": "text", + "placeholders": {} + }, + "global_moderation": "Algemene moderatie", + "@global_moderation": { + "type": "text", + "placeholders": {} + }, + "profile": "Profiel", + "@profile": { + "type": "text", + "placeholders": {} + }, + "connections": "Mijn connecties", + "@connections": { + "type": "text", + "placeholders": {} + }, + "lists": "Mijn lijsten", + "@lists": { + "type": "text", + "placeholders": {} + }, + "settings": "Instellingen", + "@settings": { + "type": "text", + "placeholders": {} + }, + "application_settings": "Applicatie instellingen", + "@application_settings": { + "type": "text", + "placeholders": {} + }, + "account_settings": "Account instellingen", + "@account_settings": { + "type": "text", + "placeholders": {} + }, + "developer_settings": "Ontwikkelaarinstellingen", + "@developer_settings": { + "type": "text", + "placeholders": {} + }, + "account_settings_change_email": "E-mailadres wijzigen", + "@account_settings_change_email": { + "type": "text", + "placeholders": {} + }, + "account_settings_change_password": "Wachtwoord wijzigen", + "@account_settings_change_password": { + "type": "text", + "placeholders": {} + }, + "account_settings_notifications": "Notificaties", + "@account_settings_notifications": { + "type": "text", + "placeholders": {} + }, + "account_settings_language_text": "Taal", + "@account_settings_language_text": { + "type": "text", + "placeholders": {} + }, + "account_settings_language": "Taal ({currentUserLanguage})", + "@account_settings_language": { + "type": "text", + "placeholders": { + "currentUserLanguage": {} + } + }, + "account_settings_blocked_users": "Geblokkeerde gebruikers", + "@account_settings_blocked_users": { + "type": "text", + "placeholders": {} + }, + "account_settings_delete_account": "Verwijder account", + "@account_settings_delete_account": { + "type": "text", + "placeholders": {} + }, + "help": "Ondersteuning & Feedback", + "@help": { + "type": "text", + "placeholders": {} + }, + "customize": "Personaliseren", + "@customize": { + "type": "text", + "placeholders": {} + }, + "logout": "Afmelden", + "@logout": { + "type": "text", + "placeholders": {} + }, + "useful_links_title": "Handige links", + "@useful_links_title": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines": "Okuna richtlijnen", + "@useful_links_guidelines": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_desc": "De richtlijnen die we allemaal horen te volgen voor een gezond en gezellig samenzijn.", + "@useful_links_guidelines_desc": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_github": "Github projectbord", + "@useful_links_guidelines_github": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_github_desc": "Kijk eens naar waar we nu aan werken", + "@useful_links_guidelines_github_desc": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_feature_requests": "Feature-aanvragen", + "@useful_links_guidelines_feature_requests": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_feature_requests_desc": "Vraag een feature aan of stem op een bestaande", + "@useful_links_guidelines_feature_requests_desc": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_bug_tracker": "Bug Tracker", + "@useful_links_guidelines_bug_tracker": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_bug_tracker_desc": "Meld een bug of stem op een bestaande", + "@useful_links_guidelines_bug_tracker_desc": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_handbook": "Okuna gebruikershandleiding", + "@useful_links_guidelines_handbook": { + "type": "text", + "placeholders": {} + }, + "useful_links_guidelines_handbook_desc": "Een website met alles wat er te weten is over het gebruik van het platform", + "@useful_links_guidelines_handbook_desc": { + "type": "text", + "placeholders": {} + }, + "useful_links_support": "Okuna ondersteunen", + "@useful_links_support": { + "type": "text", + "placeholders": {} + }, + "useful_links_support_desc": "Vind een manier om ons te steunen op onze reis!", + "@useful_links_support_desc": { + "type": "text", + "placeholders": {} + }, + "useful_links_slack_channel": "Slack kanaal voor de community", + "@useful_links_slack_channel": { + "type": "text", + "placeholders": {} + }, + "useful_links_slack_channel_desc": "Een plek om alles te bespreken over Okuna", + "@useful_links_slack_channel_desc": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/nl/error.arb b/assets/i18n/nl/error.arb new file mode 100644 index 000000000..48c27eac0 --- /dev/null +++ b/assets/i18n/nl/error.arb @@ -0,0 +1,12 @@ +{ + "unknown_error": "Onbekende fout", + "@unknown_error": { + "type": "text", + "placeholders": {} + }, + "no_internet_connection": "Geen internet verbinding", + "@no_internet_connection": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/nl/image_picker.arb b/assets/i18n/nl/image_picker.arb new file mode 100644 index 000000000..f0777c652 --- /dev/null +++ b/assets/i18n/nl/image_picker.arb @@ -0,0 +1,12 @@ +{ + "from_gallery": "Van galerij", + "@from_gallery": { + "type": "text", + "placeholders": {} + }, + "from_camera": "Van camera", + "@from_camera": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/nl/moderation.arb b/assets/i18n/nl/moderation.arb new file mode 100644 index 000000000..4561f11d5 --- /dev/null +++ b/assets/i18n/nl/moderation.arb @@ -0,0 +1,361 @@ +{ + "filters_title": "Moderatiefilters", + "@filters_title": { + "type": "text", + "placeholders": {} + }, + "filters_reset": "Herstellen", + "@filters_reset": { + "type": "text", + "placeholders": {} + }, + "filters_verified": "Geverifieerd", + "@filters_verified": { + "type": "text", + "placeholders": {} + }, + "filters_apply": "Pas filters toe", + "@filters_apply": { + "type": "text", + "placeholders": {} + }, + "filters_type": "Type", + "@filters_type": { + "type": "text", + "placeholders": {} + }, + "filters_status": "Status", + "@filters_status": { + "type": "text", + "placeholders": {} + }, + "filters_other": "Overige", + "@filters_other": { + "type": "text", + "placeholders": {} + }, + "actions_review": "Beoordelen", + "@actions_review": { + "type": "text", + "placeholders": {} + }, + "actions_chat_with_team": "Met het team chatten", + "@actions_chat_with_team": { + "type": "text", + "placeholders": {} + }, + "update_category_title": "Categorie updaten", + "@update_category_title": { + "type": "text", + "placeholders": {} + }, + "update_category_save": "Opslaan", + "@update_category_save": { + "type": "text", + "placeholders": {} + }, + "update_description_save": "Opslaan", + "@update_description_save": { + "type": "text", + "placeholders": {} + }, + "update_description_title": "Beschrijving bewerken", + "@update_description_title": { + "type": "text", + "placeholders": {} + }, + "update_description_report_desc": "Omschrijving van de melding", + "@update_description_report_desc": { + "type": "text", + "placeholders": {} + }, + "update_description_report_hint_text": "bijv. het gemelde item heeft als bevinding...", + "@update_description_report_hint_text": { + "type": "text", + "placeholders": {} + }, + "update_status_save": "Opslaan", + "@update_status_save": { + "type": "text", + "placeholders": {} + }, + "update_status_title": "Status bijwerken", + "@update_status_title": { + "type": "text", + "placeholders": {} + }, + "community_review_title": "Beoordeel gemodereerd object", + "@community_review_title": { + "type": "text", + "placeholders": {} + }, + "moderated_object_title": "Object", + "@moderated_object_title": { + "type": "text", + "placeholders": {} + }, + "moderated_object_status": "Status", + "@moderated_object_status": { + "type": "text", + "placeholders": {} + }, + "moderated_object_reports_count": "Aantal meldingen", + "@moderated_object_reports_count": { + "type": "text", + "placeholders": {} + }, + "moderated_object_verified_by_staff": "Geverifieerd door Okuna staf", + "@moderated_object_verified_by_staff": { + "type": "text", + "placeholders": {} + }, + "moderated_object_verified": "Geverifieerd", + "@moderated_object_verified": { + "type": "text", + "placeholders": {} + }, + "moderated_object_true_text": "Waar", + "@moderated_object_true_text": { + "description": "Eg. Moderated object verified by staff? true / false", + "type": "text", + "placeholders": {} + }, + "moderated_object_false_text": "Niet waar", + "@moderated_object_false_text": { + "description": "Eg. Moderated object verified by staff? true / false", + "type": "text", + "placeholders": {} + }, + "community_review_object": "Object", + "@community_review_object": { + "type": "text", + "placeholders": {} + }, + "community_review_approve": "Goedkeuren", + "@community_review_approve": { + "type": "text", + "placeholders": {} + }, + "community_review_reject": "afwijzen", + "@community_review_reject": { + "type": "text", + "placeholders": {} + }, + "community_review_item_verified": "Dit item is geverifieerd", + "@community_review_item_verified": { + "type": "text", + "placeholders": {} + }, + "global_review_title": "Beoordeel gemodereerd object", + "@global_review_title": { + "type": "text", + "placeholders": {} + }, + "global_review_object_text": "Object", + "@global_review_object_text": { + "type": "text", + "placeholders": {} + }, + "global_review_verify_text": "Bevestigen", + "@global_review_verify_text": { + "type": "text", + "placeholders": {} + }, + "global_review_unverify_text": "Bevestiging opheffen", + "@global_review_unverify_text": { + "type": "text", + "placeholders": {} + }, + "confirm_report_title": "Melding indienen", + "@confirm_report_title": { + "type": "text", + "placeholders": {} + }, + "confirm_report_provide_details": "Kun je aanvullende details verstrekken die wellicht relevant zijn voor de melding?", + "@confirm_report_provide_details": { + "type": "text", + "placeholders": {} + }, + "confirm_report_provide_optional_info": "(Optioneel)", + "@confirm_report_provide_optional_info": { + "type": "text", + "placeholders": {} + }, + "confirm_report_provide_optional_hint_text": "Typ hier...", + "@confirm_report_provide_optional_hint_text": { + "type": "text", + "placeholders": {} + }, + "confirm_report_provide_happen_next": "Dit is de volgende stap:", + "@confirm_report_provide_happen_next": { + "type": "text", + "placeholders": {} + }, + "confirm_report_provide_happen_next_desc": "- Je melding zal anoniem ingediend worden.\n- Als je een post of commentaar meldt, zal de melding aan medewerkers van Okuna en indien van toepassing aan de community moderators gestuurd worden. De post zal niet zichtbaar zijn in je tijdlijn.\n- Als je een account of community aanmeldt, zal deze naar medewerkers van Okuna gestuurd worden.\n- We zullen het bekijken en indien mee eens, zal de content verwijderd worden. Daarnaast zullen sancties uitgedeeld worden aan de mensen die betrokken zijn. Deze sancties variëren van een tijdelijke schorsing tot het verwijderen van het account, afhankelijk van de ernst van de overtreding. \n- Als de melding wordt gedaan in een poging om de reputatie van een ander lid of een andere gemeenschap in het platform te schaden zonder dat er sprake is van een inbreuk op de vermelde grond, zullen er sancties aan u worden opgelegd. \n", + "@confirm_report_provide_happen_next_desc": { + "type": "text", + "placeholders": {} + }, + "confirm_report_submit": "Ik begrijp het en dien in.", + "@confirm_report_submit": { + "type": "text", + "placeholders": {} + }, + "confirm_report_user_reported": "Gebruiker gemeld", + "@confirm_report_user_reported": { + "type": "text", + "placeholders": {} + }, + "confirm_report_community_reported": "Gemelde community", + "@confirm_report_community_reported": { + "type": "text", + "placeholders": {} + }, + "confirm_report_post_reported": "Gemelde post", + "@confirm_report_post_reported": { + "type": "text", + "placeholders": {} + }, + "confirm_report_post_comment_reported": "Gemelde post commentaar", + "@confirm_report_post_comment_reported": { + "type": "text", + "placeholders": {} + }, + "confirm_report_item_reported": "Gemelde item", + "@confirm_report_item_reported": { + "type": "text", + "placeholders": {} + }, + "community_moderated_objects": "Community gemodereerde objecten", + "@community_moderated_objects": { + "type": "text", + "placeholders": {} + }, + "globally_moderated_objects": "Globaal gemodereerde objecten", + "@globally_moderated_objects": { + "type": "text", + "placeholders": {} + }, + "tap_to_retry": "Tik om te proberen de items opnieuw te laden", + "@tap_to_retry": { + "type": "text", + "placeholders": {} + }, + "report_post_text": "Rapporteer bericht", + "@report_post_text": { + "type": "text", + "placeholders": {} + }, + "you_have_reported_post_text": "Je hebt dit bericht gerapporteerd", + "@you_have_reported_post_text": { + "type": "text", + "placeholders": {} + }, + "report_account_text": "Rapporteer account", + "@report_account_text": { + "type": "text", + "placeholders": {} + }, + "you_have_reported_account_text": "Je hebt dit account gerapporteerd", + "@you_have_reported_account_text": { + "type": "text", + "placeholders": {} + }, + "report_community_text": "Rapporteer community", + "@report_community_text": { + "type": "text", + "placeholders": {} + }, + "you_have_reported_community_text": "Je hebt deze community gerapporteerd", + "@you_have_reported_community_text": { + "type": "text", + "placeholders": {} + }, + "report_comment_text": "Rapporteer commentaar", + "@report_comment_text": { + "type": "text", + "placeholders": {} + }, + "you_have_reported_comment_text": "Je hebt dit commentaar gerapporteerd", + "@you_have_reported_comment_text": { + "type": "text", + "placeholders": {} + }, + "description_text": "Omschrijving", + "@description_text": { + "type": "text", + "placeholders": {} + }, + "no_description_text": "Geen omschrijving", + "@no_description_text": { + "type": "text", + "placeholders": {} + }, + "category_text": "Categorie", + "@category_text": { + "type": "text", + "placeholders": {} + }, + "reporter_text": "Rapporteur", + "@reporter_text": { + "type": "text", + "placeholders": {} + }, + "reports_preview_title": "Rapporten", + "@reports_preview_title": { + "type": "text", + "placeholders": {} + }, + "reports_preview_resource_reports": "rapporten", + "@reports_preview_resource_reports": { + "description": "Usage: See all reports..", + "type": "text", + "placeholders": {} + }, + "reports_see_all": "Zie alle {resourceCount} {resourceName}", + "@reports_see_all": { + "description": "Usage: See all 4 reports.", + "type": "text", + "placeholders": { + "resourceCount": {}, + "resourceName": {} + } + }, + "object_status_title": "Status", + "@object_status_title": { + "type": "text", + "placeholders": {} + }, + "my_moderation_tasks_title": "Wachtende moderatie-taken", + "@my_moderation_tasks_title": { + "type": "text", + "placeholders": {} + }, + "pending_moderation_tasks_singular": "wachtende moderatie-taak", + "@pending_moderation_tasks_singular": { + "type": "text", + "placeholders": {} + }, + "pending_moderation_tasks_plural": "wachtende moderatie-taken", + "@pending_moderation_tasks_plural": { + "description": "Eg. No pending moderation tasks found", + "type": "text", + "placeholders": {} + }, + "my_moderation_penalties_title": "Strafpunten", + "@my_moderation_penalties_title": { + "type": "text", + "placeholders": {} + }, + "my_moderation_penalties_resouce_singular": "strafpunt", + "@my_moderation_penalties_resouce_singular": { + "type": "text", + "placeholders": {} + }, + "my_moderation_penalties_resource_plural": "strafpunten", + "@my_moderation_penalties_resource_plural": { + "description": "See all moderation penalties, No moderation penalties found etc..", + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/nl/notifications.arb b/assets/i18n/nl/notifications.arb new file mode 100644 index 000000000..3cb05a946 --- /dev/null +++ b/assets/i18n/nl/notifications.arb @@ -0,0 +1,218 @@ +{ + "tab_general": "Algemeen", + "@tab_general": { + "type": "text", + "placeholders": {} + }, + "tab_requests": "Verzoeken", + "@tab_requests": { + "type": "text", + "placeholders": {} + }, + "settings_title": "Instellingen voor meldingen", + "@settings_title": { + "type": "text", + "placeholders": {} + }, + "general_title": "Meldingen", + "@general_title": { + "type": "text", + "placeholders": {} + }, + "general_desc": "Krijg een melding als iets gebeurt", + "@general_desc": { + "type": "text", + "placeholders": {} + }, + "follow_title": "Volg", + "@follow_title": { + "type": "text", + "placeholders": {} + }, + "follow_desc": "Melden wanneer iemand je begint te volgen", + "@follow_desc": { + "type": "text", + "placeholders": {} + }, + "connection_title": "Verbindingsverzoek", + "@connection_title": { + "type": "text", + "placeholders": {} + }, + "connection_desc": "Melden wanneer iemand met je wil verbinden", + "@connection_desc": { + "type": "text", + "placeholders": {} + }, + "comment_title": "Plaats commentaar", + "@comment_title": { + "type": "text", + "placeholders": {} + }, + "comment_desc": "Melden wanneer iemand commentaar geeft op een van je berichten of een bericht waarop je commentaar gegeven hebt", + "@comment_desc": { + "type": "text", + "placeholders": {} + }, + "comment_reply_title": "Plaats antwoord op commentaar", + "@comment_reply_title": { + "type": "text", + "placeholders": {} + }, + "comment_reply_desc": "Melden wanneer iemand antwoord geeft op een van jouw commentaren of een commentaar waarop je geantwoord hebt", + "@comment_reply_desc": { + "type": "text", + "placeholders": {} + }, + "comment_user_mention_title": "Bericht commentaar vermelding", + "@comment_user_mention_title": { + "type": "text", + "placeholders": {} + }, + "comment_user_mention_desc": "Krijg een melding als iemand je noemt in een commentaar", + "@comment_user_mention_desc": { + "type": "text", + "placeholders": {} + }, + "post_user_mention_title": "Berichtvermelding", + "@post_user_mention_title": { + "type": "text", + "placeholders": {} + }, + "post_user_mention_desc": "Wordt op de hoogte gesteld wanneer iemand je op een van hun berichten vermeldt", + "@post_user_mention_desc": { + "type": "text", + "placeholders": {} + }, + "comment_reaction_title": "Plaats commentaar reactie", + "@comment_reaction_title": { + "type": "text", + "placeholders": {} + }, + "comment_reaction_desc": "Melden wanneer iemand reageert op één van jouw bericht commentaren", + "@comment_reaction_desc": { + "type": "text", + "placeholders": {} + }, + "post_reaction_title": "Plaats reactie", + "@post_reaction_title": { + "type": "text", + "placeholders": {} + }, + "post_reaction_desc": "Melden wanneer iemand reageert op één van jouw berichten", + "@post_reaction_desc": { + "type": "text", + "placeholders": {} + }, + "community_invite_title": "Community uitnodiging", + "@community_invite_title": { + "type": "text", + "placeholders": {} + }, + "community_invite_desc": "Melden wanneer iemand je uitnodigt om lid te worden van een community", + "@community_invite_desc": { + "type": "text", + "placeholders": {} + }, + "mute_post_turn_on_post_notifications": "Meldingen voor berichten aanzetten", + "@mute_post_turn_on_post_notifications": { + "type": "text", + "placeholders": {} + }, + "mute_post_turn_off_post_notifications": "Meldingen voor berichten uitzetten", + "@mute_post_turn_off_post_notifications": { + "type": "text", + "placeholders": {} + }, + "mute_post_turn_on_post_comment_notifications": "Meldingen voor commentaren aanzetten", + "@mute_post_turn_on_post_comment_notifications": { + "type": "text", + "placeholders": {} + }, + "mute_post_turn_off_post_comment_notifications": "Meldingen voor commentaren uitzetten", + "@mute_post_turn_off_post_comment_notifications": { + "type": "text", + "placeholders": {} + }, + "connection_request_tile": "[name] [username] wil met je verbinden.", + "@connection_request_tile": { + "description": "Eg.: James @jamest wants to connect with you.", + "type": "text", + "placeholders": {} + }, + "accepted_connection_request_tile": "[name] [username] heeft jouw verbindingsverzoek geaccepteerd.", + "@accepted_connection_request_tile": { + "description": "Eg.: James @jamest accepted your connection request.", + "type": "text", + "placeholders": {} + }, + "reacted_to_post_tile": "[name] [username] reageerde op jouw bericht.", + "@reacted_to_post_tile": { + "description": "Eg.: James @jamest reacted to your post.", + "type": "text", + "placeholders": {} + }, + "reacted_to_post_comment_tile": "[name] [username] reageerde op jouw bericht commentaar.", + "@reacted_to_post_comment_tile": { + "description": "Eg.: James @jamest reacted to your post comment.", + "type": "text", + "placeholders": {} + }, + "following_you_tile": "[name] [username] volgt je nu.", + "@following_you_tile": { + "description": "Eg.: James @jamest is now following you.", + "type": "text", + "placeholders": {} + }, + "user_community_invite_tile": "[name] [username] heeft je uitgenodigd om deel te nemen aan de community /c/{communityName}.", + "@user_community_invite_tile": { + "description": "Eg.: James @jamest has invited you to join community /c/okuna.", + "type": "text", + "placeholders": { + "communityName": {} + } + }, + "comment_reply_notification_tile_user_replied": "[name] [username] antwoordde: {postCommentText}", + "@comment_reply_notification_tile_user_replied": { + "description": "For.eg. James @jamest replied.", + "type": "text", + "placeholders": { + "postCommentText": {} + } + }, + "comment_reply_notification_tile_user_also_replied": "[name] [username] heeft ook geantwoord: {postCommentText}", + "@comment_reply_notification_tile_user_also_replied": { + "type": "text", + "placeholders": { + "postCommentText": {} + } + }, + "comment_comment_notification_tile_user_commented": "[name] [username] had commentaar op jouw bericht: {postCommentText}", + "@comment_comment_notification_tile_user_commented": { + "type": "text", + "placeholders": { + "postCommentText": {} + } + }, + "comment_comment_notification_tile_user_also_commented": "[name] [username] heeft ook commentaar gegeven: {postCommentText}", + "@comment_comment_notification_tile_user_also_commented": { + "type": "text", + "placeholders": { + "postCommentText": {} + } + }, + "mentioned_in_post_comment_tile": "[name] [username] heeft je in een commentaar genoemd: {postCommentText}", + "@mentioned_in_post_comment_tile": { + "description": "Eg.: James @jamest mentioned you on a comment: hello @jamest", + "type": "text", + "placeholders": { + "postCommentText": {} + } + }, + "mentioned_in_post_tile": "[name] @[username] heeft je in een bericht genoemd.", + "@mentioned_in_post_tile": { + "description": "Eg.: James @jamest mentioned you on a post.", + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/nl/post.arb b/assets/i18n/nl/post.arb new file mode 100644 index 000000000..60186884a --- /dev/null +++ b/assets/i18n/nl/post.arb @@ -0,0 +1,591 @@ +{ + "open_post": "Open bericht", + "@open_post": { + "type": "text", + "placeholders": {} + }, + "close_post": "Sluit bericht", + "@close_post": { + "type": "text", + "placeholders": {} + }, + "post_opened": "Bericht geopend", + "@post_opened": { + "type": "text", + "placeholders": {} + }, + "post_closed": "Bericht gesloten ", + "@post_closed": { + "type": "text", + "placeholders": {} + }, + "comment_required_error": "Reactie kan niet leeg zijn.", + "@comment_required_error": { + "type": "text", + "placeholders": {} + }, + "comment_maxlength_error": "Een reactie mag niet langer zijn dan {maxLength} tekens.", + "@comment_maxlength_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "timeline_posts_all_loaded": "🎉 Alle berichten geladen", + "@timeline_posts_all_loaded": { + "type": "text", + "placeholders": {} + }, + "timeline_posts_refreshing_drhoo_title": "Nog even volhouden!", + "@timeline_posts_refreshing_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "timeline_posts_refreshing_drhoo_subtitle": "Je tijdlijn wordt geladen.", + "@timeline_posts_refreshing_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "timeline_posts_no_more_drhoo_title": "Je tijdlijn is leeg.", + "@timeline_posts_no_more_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "timeline_posts_no_more_drhoo_subtitle": "Volg gebruikers of word lid van een community om aan de slag te gaan!", + "@timeline_posts_no_more_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "timeline_posts_failed_drhoo_title": "Kan je tijdlijn niet laden.", + "@timeline_posts_failed_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "timeline_posts_failed_drhoo_subtitle": "Probeer het over enkele seconden opnieuw", + "@timeline_posts_failed_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "timeline_posts_default_drhoo_title": "Er klopt iets niet.", + "@timeline_posts_default_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "timeline_posts_default_drhoo_subtitle": "Probeer de tijdlijn te vernieuwen.", + "@timeline_posts_default_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "timeline_posts_refresh_posts": "Berichten vernieuwen", + "@timeline_posts_refresh_posts": { + "type": "text", + "placeholders": {} + }, + "no_circles_for": "Geen cirkels gevonden die overeenkomen met '{circlesSearchQuery}'.", + "@no_circles_for": { + "type": "text", + "placeholders": { + "circlesSearchQuery": {} + } + }, + "share_to_circles": "Deel naar kringen", + "@share_to_circles": { + "type": "text", + "placeholders": {} + }, + "profile_counts_post": " Bericht", + "@profile_counts_post": { + "type": "text", + "placeholders": {} + }, + "profile_counts_posts": " Berichten", + "@profile_counts_posts": { + "type": "text", + "placeholders": {} + }, + "profile_counts_followers": " Volgers", + "@profile_counts_followers": { + "type": "text", + "placeholders": {} + }, + "profile_counts_following": " Aan het volgen", + "@profile_counts_following": { + "type": "text", + "placeholders": {} + }, + "profile_counts_follower": " Volger", + "@profile_counts_follower": { + "type": "text", + "placeholders": {} + }, + "action_comment": "Reactie", + "@action_comment": { + "type": "text", + "placeholders": {} + }, + "action_react": "Reageren", + "@action_react": { + "type": "text", + "placeholders": {} + }, + "action_reply": "Antwoorden", + "@action_reply": { + "type": "text", + "placeholders": {} + }, + "share": "Deel", + "@share": { + "type": "text", + "placeholders": {} + }, + "share_to": "Delen met", + "@share_to": { + "type": "text", + "placeholders": {} + }, + "sharing_post_to": "Deel bericht met", + "@sharing_post_to": { + "type": "text", + "placeholders": {} + }, + "you_shared_with": "Je hebt gedeeld met", + "@you_shared_with": { + "type": "text", + "placeholders": {} + }, + "shared_privately_on": "Privé gedeeld op", + "@shared_privately_on": { + "description": "Eg. Shared privately on @shantanu's circles. See following string, usernames_circles . Will combine this in future, needs refactoring.", + "type": "text", + "placeholders": {} + }, + "usernames_circles": "@{postCreatorUsername}'s kringen", + "@usernames_circles": { + "type": "text", + "placeholders": { + "postCreatorUsername": {} + } + }, + "share_community": "Deel", + "@share_community": { + "type": "text", + "placeholders": {} + }, + "share_to_community": "Deel met community", + "@share_to_community": { + "type": "text", + "placeholders": {} + }, + "share_community_title": "Een community", + "@share_community_title": { + "type": "text", + "placeholders": {} + }, + "share_community_desc": "Deel het bericht met een community waar je lid van bent.", + "@share_community_desc": { + "type": "text", + "placeholders": {} + }, + "my_circles": "Mijn cirkels", + "@my_circles": { + "type": "text", + "placeholders": {} + }, + "my_circles_desc": "Deel het bericht met één of meer van je cirkels.", + "@my_circles_desc": { + "type": "text", + "placeholders": {} + }, + "world_circle_name": "Wereld", + "@world_circle_name": { + "type": "text", + "placeholders": {} + }, + "search_circles": "Doorzoek cirkels...", + "@search_circles": { + "type": "text", + "placeholders": {} + }, + "reaction_list_tap_retry": "Tik om opnieuw reacties te laden.", + "@reaction_list_tap_retry": { + "type": "text", + "placeholders": {} + }, + "create_new": "Nieuw bericht", + "@create_new": { + "type": "text", + "placeholders": {} + }, + "create_next": "Volgende", + "@create_next": { + "type": "text", + "placeholders": {} + }, + "create_photo": "Foto", + "@create_photo": { + "type": "text", + "placeholders": {} + }, + "create_video": "Video", + "@create_video": { + "type": "text", + "placeholders": {} + }, + "commenter_post_text": "Plaats commentaar", + "@commenter_post_text": { + "type": "text", + "placeholders": {} + }, + "commenter_write_something": "Schrijf iets...", + "@commenter_write_something": { + "type": "text", + "placeholders": {} + }, + "edit_title": "Wijzig bericht", + "@edit_title": { + "type": "text", + "placeholders": {} + }, + "edit_save": "Bewaren", + "@edit_save": { + "type": "text", + "placeholders": {} + }, + "commenter_expanded_save": "Bewaren", + "@commenter_expanded_save": { + "type": "text", + "placeholders": {} + }, + "commenter_expanded_join_conversation": "Deelnemen aan het gesprek...", + "@commenter_expanded_join_conversation": { + "type": "text", + "placeholders": {} + }, + "commenter_expanded_start_conversation": "Begin het gesprek...", + "@commenter_expanded_start_conversation": { + "type": "text", + "placeholders": {} + }, + "commenter_expanded_edit_comment": "Wijzig commentaar", + "@commenter_expanded_edit_comment": { + "type": "text", + "placeholders": {} + }, + "is_closed": "Gesloten bericht", + "@is_closed": { + "type": "text", + "placeholders": {} + }, + "comment_reply_expanded_reply_comment": "Reageer op commentaar", + "@comment_reply_expanded_reply_comment": { + "type": "text", + "placeholders": {} + }, + "comment_reply_expanded_post": "Beantwoord", + "@comment_reply_expanded_post": { + "type": "text", + "placeholders": {} + }, + "comment_reply_expanded_reply_hint_text": "Jouw antwoord...", + "@comment_reply_expanded_reply_hint_text": { + "type": "text", + "placeholders": {} + }, + "trending_posts_title": "Populaire berichten", + "@trending_posts_title": { + "type": "text", + "placeholders": {} + }, + "trending_posts_no_trending_posts": "Er zijn geen populaire berichten. Probeer opnieuw over een paar seconden.", + "@trending_posts_no_trending_posts": { + "type": "text", + "placeholders": {} + }, + "trending_posts_refresh": "Verversen", + "@trending_posts_refresh": { + "type": "text", + "placeholders": {} + }, + "comments_view_all_comments": "Bekijk alle {commentsCount} commentaren", + "@comments_view_all_comments": { + "type": "text", + "placeholders": { + "commentsCount": {} + } + }, + "comments_closed_post": "Gesloten bericht", + "@comments_closed_post": { + "type": "text", + "placeholders": {} + }, + "comments_disabled": "Commentaren uitgeschakeld", + "@comments_disabled": { + "type": "text", + "placeholders": {} + }, + "text_copied": "Tekst gekopieerd!", + "@text_copied": { + "type": "text", + "placeholders": {} + }, + "post_reactions_title": "Reageer", + "@post_reactions_title": { + "type": "text", + "placeholders": {} + }, + "have_not_shared_anything": "Je hebt nog niets gedeeld.", + "@have_not_shared_anything": { + "type": "text", + "placeholders": {} + }, + "user_has_not_shared_anything": "{name} heeft nog niets gedeeld.", + "@user_has_not_shared_anything": { + "type": "text", + "placeholders": { + "name": {} + } + }, + "comments_header_newest_replies": "Nieuwste antwoorden", + "@comments_header_newest_replies": { + "type": "text", + "placeholders": {} + }, + "comments_header_newer": "Nieuwer", + "@comments_header_newer": { + "type": "text", + "placeholders": {} + }, + "comments_header_view_newest_replies": "Bekijk nieuwste antwoorden", + "@comments_header_view_newest_replies": { + "type": "text", + "placeholders": {} + }, + "comments_header_see_newest_replies": "Bekijk nieuwste antwoorden", + "@comments_header_see_newest_replies": { + "type": "text", + "placeholders": {} + }, + "comments_header_oldest_replies": "Oudste antwoorden", + "@comments_header_oldest_replies": { + "type": "text", + "placeholders": {} + }, + "comments_header_older": "Ouder", + "@comments_header_older": { + "type": "text", + "placeholders": {} + }, + "comments_header_view_oldest_replies": "Bekijk oudste antwoorden", + "@comments_header_view_oldest_replies": { + "type": "text", + "placeholders": {} + }, + "comments_header_see_oldest_replies": "Bekijk oudste antwoorden", + "@comments_header_see_oldest_replies": { + "type": "text", + "placeholders": {} + }, + "comments_header_be_the_first_replies": "Antwoord als eerste", + "@comments_header_be_the_first_replies": { + "type": "text", + "placeholders": {} + }, + "comments_header_newest_comments": "Nieuwste commentaren", + "@comments_header_newest_comments": { + "type": "text", + "placeholders": {} + }, + "comments_header_view_newest_comments": "Bekijk nieuwste commentaren", + "@comments_header_view_newest_comments": { + "type": "text", + "placeholders": {} + }, + "comments_header_see_newest_comments": "Bekijk nieuwste commentaren", + "@comments_header_see_newest_comments": { + "type": "text", + "placeholders": {} + }, + "comments_header_oldest_comments": "Oudste commentaren", + "@comments_header_oldest_comments": { + "type": "text", + "placeholders": {} + }, + "comments_header_view_oldest_comments": "Bekijk oudste commentaren", + "@comments_header_view_oldest_comments": { + "type": "text", + "placeholders": {} + }, + "comments_header_see_oldest_comments": "Bekijk oudste commentaren", + "@comments_header_see_oldest_comments": { + "type": "text", + "placeholders": {} + }, + "comments_header_be_the_first_comments": "Geef als eerste commentaar", + "@comments_header_be_the_first_comments": { + "type": "text", + "placeholders": {} + }, + "comments_page_title": "Commentaren", + "@comments_page_title": { + "type": "text", + "placeholders": {} + }, + "comments_page_no_more_to_load": "Geen commentaren meer om te laden", + "@comments_page_no_more_to_load": { + "type": "text", + "placeholders": {} + }, + "comments_page_tap_to_retry": "Tik om commentaren opnieuw te laden.", + "@comments_page_tap_to_retry": { + "type": "text", + "placeholders": {} + }, + "comments_page_tap_to_retry_replies": "Tik om antwoorden opnieuw te laden.", + "@comments_page_tap_to_retry_replies": { + "type": "text", + "placeholders": {} + }, + "comments_page_no_more_replies_to_load": "Geen antwoorden meer om te laden", + "@comments_page_no_more_replies_to_load": { + "type": "text", + "placeholders": {} + }, + "comments_page_replies_title": "Antwoorden", + "@comments_page_replies_title": { + "type": "text", + "placeholders": {} + }, + "disable_post_comments": "Commentaren uitschakelen", + "@disable_post_comments": { + "type": "text", + "placeholders": {} + }, + "enable_post_comments": "Commentaren inschakelen", + "@enable_post_comments": { + "type": "text", + "placeholders": {} + }, + "comments_enabled_message": "Commentaren ingeschakeld voor bericht", + "@comments_enabled_message": { + "type": "text", + "placeholders": {} + }, + "comments_disabled_message": "Commentaren uitgeschakeld voor bericht", + "@comments_disabled_message": { + "type": "text", + "placeholders": {} + }, + "actions_delete": "Bericht verwijderen", + "@actions_delete": { + "type": "text", + "placeholders": {} + }, + "actions_deleted": "Bericht verwijderd", + "@actions_deleted": { + "type": "text", + "placeholders": {} + }, + "actions_delete_comment": "Commentaar verwijderen", + "@actions_delete_comment": { + "type": "text", + "placeholders": {} + }, + "actions_edit_comment": "Wijzig commentaar", + "@actions_edit_comment": { + "type": "text", + "placeholders": {} + }, + "actions_comment_deleted": "Commentaar verwijderd", + "@actions_comment_deleted": { + "type": "text", + "placeholders": {} + }, + "actions_report_text": "Rapporteer", + "@actions_report_text": { + "type": "text", + "placeholders": {} + }, + "actions_reported_text": "Gerapporteerd", + "@actions_reported_text": { + "type": "text", + "placeholders": {} + }, + "actions_show_more_text": "Meer tonen", + "@actions_show_more_text": { + "description": "Shown for posts with long text to expand the entire text.", + "type": "text", + "placeholders": {} + }, + "time_short_years": "j", + "@time_short_years": { + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3y. Keep it as short as possible", + "type": "text", + "placeholders": {} + }, + "time_short_one_year": "1jr", + "@time_short_one_year": { + "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", + "type": "text", + "placeholders": {} + }, + "time_short_weeks": "w", + "@time_short_weeks": { + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 5w.Keep it as short as possible ", + "type": "text", + "placeholders": {} + }, + "time_short_one_week": "1w", + "@time_short_one_week": { + "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", + "type": "text", + "placeholders": {} + }, + "time_short_days": "d", + "@time_short_days": { + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3d. Keep it as short as possible ", + "type": "text", + "placeholders": {} + }, + "time_short_one_day": "1d", + "@time_short_one_day": { + "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", + "type": "text", + "placeholders": {} + }, + "time_short_hours": "u", + "@time_short_hours": { + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3h.Keep it as short as possible ", + "type": "text", + "placeholders": {} + }, + "time_short_one_hour": "1u", + "@time_short_one_hour": { + "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", + "type": "text", + "placeholders": {} + }, + "time_short_minutes": "m", + "@time_short_minutes": { + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 13m.Keep it as short as possible ", + "type": "text", + "placeholders": {} + }, + "time_short_seconds": "s", + "@time_short_seconds": { + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 13s Keep it as short as possible ", + "type": "text", + "placeholders": {} + }, + "time_short_one_minute": "1m", + "@time_short_one_minute": { + "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", + "type": "text", + "placeholders": {} + }, + "time_short_now_text": "nu", + "@time_short_now_text": { + "description": "Shown when a post was immediately posted, as in time posted is 'now'.Should be as few characters as possible.", + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/nl/post_body_media.arb b/assets/i18n/nl/post_body_media.arb new file mode 100644 index 000000000..eefa47504 --- /dev/null +++ b/assets/i18n/nl/post_body_media.arb @@ -0,0 +1,7 @@ +{ + "unsupported": "Niet-ondersteund mediatype", + "@unsupported": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/nl/post_uploader.arb b/assets/i18n/nl/post_uploader.arb new file mode 100644 index 000000000..145c8c09d --- /dev/null +++ b/assets/i18n/nl/post_uploader.arb @@ -0,0 +1,47 @@ +{ + "generic_upload_failed": "Upload mislukt", + "@generic_upload_failed": { + "type": "text", + "placeholders": {} + }, + "creating_post": "Bericht maken...", + "@creating_post": { + "type": "text", + "placeholders": {} + }, + "compressing_media": "Media comprimeren...", + "@compressing_media": { + "type": "text", + "placeholders": {} + }, + "uploading_media": "Media uploaden...", + "@uploading_media": { + "type": "text", + "placeholders": {} + }, + "publishing": "Bericht publiceren...", + "@publishing": { + "type": "text", + "placeholders": {} + }, + "processing": "Bericht verwerken...", + "@processing": { + "type": "text", + "placeholders": {} + }, + "success": "Success!", + "@success": { + "type": "text", + "placeholders": {} + }, + "cancelling": "Bezig met annuleren", + "@cancelling": { + "type": "text", + "placeholders": {} + }, + "cancelled": "Geannuleerd!", + "@cancelled": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/nl/posts_stream.arb b/assets/i18n/nl/posts_stream.arb new file mode 100644 index 000000000..0a6cebdb5 --- /dev/null +++ b/assets/i18n/nl/posts_stream.arb @@ -0,0 +1,42 @@ +{ + "all_loaded": "🎉 Alle berichten geladen", + "@all_loaded": { + "type": "text", + "placeholders": {} + }, + "refreshing_drhoo_title": "Nog even volhouden!", + "@refreshing_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "refreshing_drhoo_subtitle": "Je tijdlijn wordt geladen.", + "@refreshing_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "empty_drhoo_subtitle": "Probeer over een paar seconden te verversen.", + "@empty_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "failed_drhoo_title": "Kan de stream niet laden.", + "@failed_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "failed_drhoo_subtitle": "Probeer het over enkele seconden opnieuw", + "@failed_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "status_tile_empty": "Geen berichten gevonden", + "@status_tile_empty": { + "type": "text", + "placeholders": {} + }, + "status_tile_no_more_to_load": "🎉 Alle berichten geladen", + "@status_tile_no_more_to_load": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/nl/user.arb b/assets/i18n/nl/user.arb new file mode 100644 index 000000000..f7f25c36b --- /dev/null +++ b/assets/i18n/nl/user.arb @@ -0,0 +1,980 @@ +{ + "thousand_postfix": "k", + "@thousand_postfix": { + "description": "For eg. communty has 3k members", + "type": "text", + "placeholders": {} + }, + "million_postfix": "M", + "@million_postfix": { + "description": "For eg. user has 3m followers", + "type": "text", + "placeholders": {} + }, + "billion_postfix": "b", + "@billion_postfix": { + "description": "For eg. World circle has 7.5b people", + "type": "text", + "placeholders": {} + }, + "translate_see_translation": "Bekijk vertaling", + "@translate_see_translation": { + "type": "text", + "placeholders": {} + }, + "translate_show_original": "Toon het origineel", + "@translate_show_original": { + "type": "text", + "placeholders": {} + }, + "follows_lists_account": "1 Account", + "@follows_lists_account": { + "type": "text", + "placeholders": {} + }, + "follows_lists_accounts": "{prettyUsersCount} Accounts", + "@follows_lists_accounts": { + "description": "prettyUsersCount will be 3m, 50k etc.. so we endup with final string 3k Accounts", + "type": "text", + "placeholders": { + "prettyUsersCount": {} + } + }, + "edit_profile_user_name_taken": "De gebruikersnaam @{username} is al bezet", + "@edit_profile_user_name_taken": { + "type": "text", + "placeholders": { + "username": {} + } + }, + "profile_action_deny_connection": "Negeer het verzoek tot connectie", + "@profile_action_deny_connection": { + "type": "text", + "placeholders": {} + }, + "profile_action_user_blocked": "Gebruiker geblokkeerd", + "@profile_action_user_blocked": { + "type": "text", + "placeholders": {} + }, + "profile_action_user_unblocked": "Gebruiker gedeblokkeerd", + "@profile_action_user_unblocked": { + "type": "text", + "placeholders": {} + }, + "profile_action_cancel_connection": "Annuleer verzoek tot connectie", + "@profile_action_cancel_connection": { + "type": "text", + "placeholders": {} + }, + "profile_url_invalid_error": "Geef een geldige URL op.", + "@profile_url_invalid_error": { + "type": "text", + "placeholders": {} + }, + "profile_location_length_error": "De locatie mag niet langer zijn dan {maxLength} tekens.", + "@profile_location_length_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "profile_bio_length_error": "De biografie kan niet langer zijn dan {maxLength} tekens.", + "@profile_bio_length_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "follow_button_follow_text": "Volg", + "@follow_button_follow_text": { + "type": "text", + "placeholders": {} + }, + "follow_button_unfollow_text": "Ontvolgen", + "@follow_button_unfollow_text": { + "type": "text", + "placeholders": {} + }, + "edit_profile_username": "Gebruikersnaam", + "@edit_profile_username": { + "type": "text", + "placeholders": {} + }, + "add_account_update_account_lists": "Accountlijsten bijwerken", + "@add_account_update_account_lists": { + "type": "text", + "placeholders": {} + }, + "add_account_to_lists": "Account toevoegen aan lijst", + "@add_account_to_lists": { + "type": "text", + "placeholders": {} + }, + "add_account_update_lists": "Lijsten bijwerken", + "@add_account_update_lists": { + "type": "text", + "placeholders": {} + }, + "add_account_save": "Opslaan", + "@add_account_save": { + "type": "text", + "placeholders": {} + }, + "add_account_done": "Voltooid", + "@add_account_done": { + "type": "text", + "placeholders": {} + }, + "add_account_success": "Geslaagd", + "@add_account_success": { + "type": "text", + "placeholders": {} + }, + "emoji_field_none_selected": "Geen emoji geselecteerd", + "@emoji_field_none_selected": { + "type": "text", + "placeholders": {} + }, + "emoji_search_none_found": "Geen emoji gevonden die overeenkomen met '{searchQuery}'.", + "@emoji_search_none_found": { + "type": "text", + "placeholders": { + "searchQuery": {} + } + }, + "follow_lists_title": "Mijn lijsten", + "@follow_lists_title": { + "type": "text", + "placeholders": {} + }, + "follow_lists_search_for": "Naar een lijst zoeken...", + "@follow_lists_search_for": { + "type": "text", + "placeholders": {} + }, + "follow_lists_no_list_found": "Geen lijst gevonden.", + "@follow_lists_no_list_found": { + "type": "text", + "placeholders": {} + }, + "follow_lists_no_list_found_for": "Geen lijst gevonden voor '{searchQuery}'", + "@follow_lists_no_list_found_for": { + "type": "text", + "placeholders": { + "searchQuery": {} + } + }, + "list_name_empty_error": "Het veld met de naam van de lijst mag niet leeg zijn.", + "@list_name_empty_error": { + "type": "text", + "placeholders": {} + }, + "list_name_range_error": "De naam van de lijst mag niet langer zijn dan {maxLength} tekens.", + "@list_name_range_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "circle_name_empty_error": "Het veld met de naam van de cirkel mag niet leeg zijn.", + "@circle_name_empty_error": { + "type": "text", + "placeholders": {} + }, + "circle_name_range_error": "De naam van de cirkel mag niet langer zijn dan {maxLength} tekens.", + "@circle_name_range_error": { + "type": "text", + "placeholders": { + "maxLength": {} + } + }, + "save_follows_list_name": "Naam", + "@save_follows_list_name": { + "type": "text", + "placeholders": {} + }, + "save_follows_list_hint_text": "bijv. Reizen, Fotografie", + "@save_follows_list_hint_text": { + "type": "text", + "placeholders": {} + }, + "save_follows_list_name_taken": "De naam van de lijst ‘{listName}’ is al bezet", + "@save_follows_list_name_taken": { + "type": "text", + "placeholders": { + "listName": {} + } + }, + "save_follows_list_emoji": "Emoji", + "@save_follows_list_emoji": { + "type": "text", + "placeholders": {} + }, + "save_follows_list_users": "Gebruikers", + "@save_follows_list_users": { + "type": "text", + "placeholders": {} + }, + "save_follows_list_edit": "Bewerk lijst", + "@save_follows_list_edit": { + "type": "text", + "placeholders": {} + }, + "save_follows_list_create": "Maak een lijst aan", + "@save_follows_list_create": { + "type": "text", + "placeholders": {} + }, + "save_follows_list_save": "Opslaan", + "@save_follows_list_save": { + "type": "text", + "placeholders": {} + }, + "save_follows_list_emoji_required_error": "Een emoji is vereist", + "@save_follows_list_emoji_required_error": { + "type": "text", + "placeholders": {} + }, + "follows_list_edit": "Wijzig", + "@follows_list_edit": { + "type": "text", + "placeholders": {} + }, + "follows_list_header_title": "Gebruikers", + "@follows_list_header_title": { + "type": "text", + "placeholders": {} + }, + "edit_profile_name": "Naam", + "@edit_profile_name": { + "type": "text", + "placeholders": {} + }, + "edit_profile_url": "URL", + "@edit_profile_url": { + "type": "text", + "placeholders": {} + }, + "edit_profile_location": "Locatie", + "@edit_profile_location": { + "type": "text", + "placeholders": {} + }, + "edit_profile_bio": "Bio", + "@edit_profile_bio": { + "type": "text", + "placeholders": {} + }, + "edit_profile_followers_count": "Aantal volgers", + "@edit_profile_followers_count": { + "type": "text", + "placeholders": {} + }, + "edit_profile_community_posts": "Community berichten", + "@edit_profile_community_posts": { + "type": "text", + "placeholders": {} + }, + "edit_profile_title": "Wijzig profiel", + "@edit_profile_title": { + "type": "text", + "placeholders": {} + }, + "edit_profile_save_text": "Opslaan", + "@edit_profile_save_text": { + "type": "text", + "placeholders": {} + }, + "edit_profile_pick_image": "Kies afbeelding", + "@edit_profile_pick_image": { + "type": "text", + "placeholders": {} + }, + "edit_profile_delete": "Verwijderen", + "@edit_profile_delete": { + "type": "text", + "placeholders": {} + }, + "edit_profile_pick_image_error_too_large": "Afbeelding is te groot (limiet: {limit} MB)", + "@edit_profile_pick_image_error_too_large": { + "type": "text", + "placeholders": { + "limit": {} + } + }, + "tile_following": " · Mijn volgers", + "@tile_following": { + "type": "text", + "placeholders": {} + }, + "following_text": "Aan het volgen", + "@following_text": { + "type": "text", + "placeholders": {} + }, + "following_resource_name": "gebruikers die ik volg", + "@following_resource_name": { + "description": "Eg: Search followed users.., No followed users found. etc ", + "type": "text", + "placeholders": {} + }, + "tile_delete": "Verwijderen", + "@tile_delete": { + "type": "text", + "placeholders": {} + }, + "invite": "Uitnodigen", + "@invite": { + "type": "text", + "placeholders": {} + }, + "uninvite": "Uitnodiging annuleren", + "@uninvite": { + "type": "text", + "placeholders": {} + }, + "invite_member": "Lid", + "@invite_member": { + "type": "text", + "placeholders": {} + }, + "invite_someone_message": "Hi, ik wil je graag uitnodigen voor Okuna. Download eerst de app in iTunes ({iosLink}) of de Play store ({androidLink}). Plak vervolgens deze gepersonaliseerde link met de uitnodiginging het formulier 'Aanmelden' in de Okuna App: {inviteLink}", + "@invite_someone_message": { + "type": "text", + "placeholders": { + "iosLink": {}, + "androidLink": {}, + "inviteLink": {} + } + }, + "connections_header_circle_desc": "De cirkel waar je all je connecties aan toegevoegd worden.", + "@connections_header_circle_desc": { + "type": "text", + "placeholders": {} + }, + "connections_header_users": "Gebruikers", + "@connections_header_users": { + "type": "text", + "placeholders": {} + }, + "connection_pending": "In behandeling", + "@connection_pending": { + "type": "text", + "placeholders": {} + }, + "connection_circle_edit": "Wijzig", + "@connection_circle_edit": { + "type": "text", + "placeholders": {} + }, + "connections_circle_delete": "Verwijderen", + "@connections_circle_delete": { + "type": "text", + "placeholders": {} + }, + "save_connection_circle_name": "Naam", + "@save_connection_circle_name": { + "type": "text", + "placeholders": {} + }, + "save_connection_circle_hint": "bijv. vrienden, familie, werk.", + "@save_connection_circle_hint": { + "type": "text", + "placeholders": {} + }, + "save_connection_circle_color_name": "Kleur", + "@save_connection_circle_color_name": { + "type": "text", + "placeholders": {} + }, + "save_connection_circle_color_hint": "(Klik om te wijzigen)", + "@save_connection_circle_color_hint": { + "type": "text", + "placeholders": {} + }, + "save_connection_circle_users": "Gebruikers", + "@save_connection_circle_users": { + "type": "text", + "placeholders": {} + }, + "save_connection_circle_edit": "Wijzig de cirkel", + "@save_connection_circle_edit": { + "type": "text", + "placeholders": {} + }, + "save_connection_circle_create": "Maak een cirkel", + "@save_connection_circle_create": { + "type": "text", + "placeholders": {} + }, + "save_connection_circle_save": "Opslaan", + "@save_connection_circle_save": { + "type": "text", + "placeholders": {} + }, + "update_connection_circle_save": "Opslaan", + "@update_connection_circle_save": { + "type": "text", + "placeholders": {} + }, + "update_connection_circle_updated": "Contact bijgewerkt", + "@update_connection_circle_updated": { + "type": "text", + "placeholders": {} + }, + "update_connection_circles_title": "Connectie cirkels bijwerken", + "@update_connection_circles_title": { + "type": "text", + "placeholders": {} + }, + "confirm_connection_with": "Bevestig connectie met {userName}", + "@confirm_connection_with": { + "type": "text", + "placeholders": { + "userName": {} + } + }, + "confirm_connection_add_connection": "Voeg connectie toe aan de cirkel", + "@confirm_connection_add_connection": { + "type": "text", + "placeholders": {} + }, + "confirm_connection_connection_confirmed": "Connectie bevestigd", + "@confirm_connection_connection_confirmed": { + "type": "text", + "placeholders": {} + }, + "confirm_connection_confirm_text": "Bevestig", + "@confirm_connection_confirm_text": { + "type": "text", + "placeholders": {} + }, + "connect_to_user_connect_with_username": "Verbind met {userName}", + "@connect_to_user_connect_with_username": { + "type": "text", + "placeholders": { + "userName": {} + } + }, + "connect_to_user_add_connection": "Voeg connectie toe aan de cirkel", + "@connect_to_user_add_connection": { + "type": "text", + "placeholders": {} + }, + "connect_to_user_done": "Voltooid", + "@connect_to_user_done": { + "type": "text", + "placeholders": {} + }, + "connect_to_user_request_sent": "Uitnodiging verzonden", + "@connect_to_user_request_sent": { + "type": "text", + "placeholders": {} + }, + "remove_account_from_list": "Account uit de lijst verwijderen", + "@remove_account_from_list": { + "type": "text", + "placeholders": {} + }, + "remove_account_from_list_success": "Geslaagd", + "@remove_account_from_list_success": { + "type": "text", + "placeholders": {} + }, + "confirm_block_user_title": "Bevestiging", + "@confirm_block_user_title": { + "type": "text", + "placeholders": {} + }, + "confirm_block_user_info": "Je ziet elkaars posts niet, noch ben je instaat om op welke wijze dan ook interactie met elkaar te hebben.", + "@confirm_block_user_info": { + "type": "text", + "placeholders": {} + }, + "confirm_block_user_yes": "Ja", + "@confirm_block_user_yes": { + "type": "text", + "placeholders": {} + }, + "confirm_block_user_no": "Nee", + "@confirm_block_user_no": { + "type": "text", + "placeholders": {} + }, + "confirm_block_user_blocked": "Gebruiker geblokkeerd.", + "@confirm_block_user_blocked": { + "type": "text", + "placeholders": {} + }, + "confirm_block_user_question": "Weet je zeker dat je @{username} wil blokkeren?", + "@confirm_block_user_question": { + "type": "text", + "placeholders": { + "username": {} + } + }, + "save_connection_circle_name_taken": "De naam van de cirkel ‘{takenConnectionsCircleName}’ is al bezet", + "@save_connection_circle_name_taken": { + "type": "text", + "placeholders": { + "takenConnectionsCircleName": {} + } + }, + "timeline_filters_title": "Tijdlijn filters", + "@timeline_filters_title": { + "type": "text", + "placeholders": {} + }, + "timeline_filters_search_desc": "Zoek naar cirkels en lijsten...", + "@timeline_filters_search_desc": { + "type": "text", + "placeholders": {} + }, + "timeline_filters_clear_all": "Wis alles", + "@timeline_filters_clear_all": { + "type": "text", + "placeholders": {} + }, + "timeline_filters_apply_all": "Filters toepassen", + "@timeline_filters_apply_all": { + "type": "text", + "placeholders": {} + }, + "timeline_filters_circles": "Kringen", + "@timeline_filters_circles": { + "type": "text", + "placeholders": {} + }, + "timeline_filters_lists": "Lijsten", + "@timeline_filters_lists": { + "type": "text", + "placeholders": {} + }, + "followers_title": "Volgers", + "@followers_title": { + "type": "text", + "placeholders": {} + }, + "follower_singular": "volger", + "@follower_singular": { + "type": "text", + "placeholders": {} + }, + "follower_plural": "volgers", + "@follower_plural": { + "type": "text", + "placeholders": {} + }, + "delete_account_title": "Verwijder account", + "@delete_account_title": { + "type": "text", + "placeholders": {} + }, + "delete_account_current_pwd": "Huidige wachtwoord", + "@delete_account_current_pwd": { + "type": "text", + "placeholders": {} + }, + "delete_account_current_pwd_hint": "Voer je huidige wachtwoord in", + "@delete_account_current_pwd_hint": { + "type": "text", + "placeholders": {} + }, + "delete_account_next": "Volgende", + "@delete_account_next": { + "type": "text", + "placeholders": {} + }, + "delete_account_confirmation_title": "Bevestiging", + "@delete_account_confirmation_title": { + "type": "text", + "placeholders": {} + }, + "delete_account_confirmation_desc": "Weet je zeker dat je je account wilt verwijderen?", + "@delete_account_confirmation_desc": { + "type": "text", + "placeholders": {} + }, + "delete_account_confirmation_desc_info": "Dit is een permanente actie en kan niet ongedaan worden gemaakt.", + "@delete_account_confirmation_desc_info": { + "type": "text", + "placeholders": {} + }, + "delete_account_confirmation_no": "Nee", + "@delete_account_confirmation_no": { + "type": "text", + "placeholders": {} + }, + "delete_account_confirmation_yes": "Ja", + "@delete_account_confirmation_yes": { + "type": "text", + "placeholders": {} + }, + "delete_account_confirmation_goodbye": "Tot ziens 😢", + "@delete_account_confirmation_goodbye": { + "type": "text", + "placeholders": {} + }, + "invites_create_create_title": "Een uitnodiging aanmaken", + "@invites_create_create_title": { + "type": "text", + "placeholders": {} + }, + "invites_create_edit_title": "Wijzig een uitnodiging", + "@invites_create_edit_title": { + "type": "text", + "placeholders": {} + }, + "invites_create_save": "Opslaan", + "@invites_create_save": { + "type": "text", + "placeholders": {} + }, + "invites_create_create": "Aanmaken", + "@invites_create_create": { + "type": "text", + "placeholders": {} + }, + "invites_create_name_title": "Bijnaam", + "@invites_create_name_title": { + "type": "text", + "placeholders": {} + }, + "invites_create_name_hint": "bijv. Pietje Puk", + "@invites_create_name_hint": { + "type": "text", + "placeholders": {} + }, + "invites_pending": "In behandeling", + "@invites_pending": { + "type": "text", + "placeholders": {} + }, + "invites_delete": "Verwijderen", + "@invites_delete": { + "type": "text", + "placeholders": {} + }, + "invites_invite_text": "Uitnodigen", + "@invites_invite_text": { + "type": "text", + "placeholders": {} + }, + "invites_share_yourself": "Deel zelf je uitnodiging", + "@invites_share_yourself": { + "type": "text", + "placeholders": {} + }, + "invites_share_yourself_desc": "Kies uit berichten apps, etc.", + "@invites_share_yourself_desc": { + "type": "text", + "placeholders": {} + }, + "invites_share_email": "Deel je uitnodiging via email", + "@invites_share_email": { + "type": "text", + "placeholders": {} + }, + "invites_email_text": "E-mail", + "@invites_email_text": { + "type": "text", + "placeholders": {} + }, + "invites_email_hint": "bijvoorbeeld v.vangogh@kwasten.nl", + "@invites_email_hint": { + "type": "text", + "placeholders": {} + }, + "invites_email_invite_text": "E-Mail uitnodiging", + "@invites_email_invite_text": { + "type": "text", + "placeholders": {} + }, + "invites_email_send_text": "Verzenden", + "@invites_email_send_text": { + "type": "text", + "placeholders": {} + }, + "invites_email_sent_text": "Uitnodigings-mail verzonden", + "@invites_email_sent_text": { + "type": "text", + "placeholders": {} + }, + "invites_share_email_desc": "Uit jouw naam sturen we een uitnodigings-mail met instructies", + "@invites_share_email_desc": { + "type": "text", + "placeholders": {} + }, + "invites_edit_text": "Bewerken", + "@invites_edit_text": { + "type": "text", + "placeholders": {} + }, + "invites_title": "Mijn uitnodigingen", + "@invites_title": { + "type": "text", + "placeholders": {} + }, + "invites_accepted_title": "Geaccepteerd", + "@invites_accepted_title": { + "type": "text", + "placeholders": {} + }, + "invites_accepted_group_name": "geaccepteerde uitnodigingen", + "@invites_accepted_group_name": { + "description": "Egs where this will end up: Accepted invites (capitalised title), Search accepted invites, See all accepted invites ", + "type": "text", + "placeholders": {} + }, + "invites_accepted_group_item_name": "geaccepteerde uitnodiging", + "@invites_accepted_group_item_name": { + "type": "text", + "placeholders": {} + }, + "invites_pending_group_name": "openstaande uitnodigingen", + "@invites_pending_group_name": { + "type": "text", + "placeholders": {} + }, + "invites_pending_group_item_name": "openstaande uitnodiging", + "@invites_pending_group_item_name": { + "type": "text", + "placeholders": {} + }, + "invites_none_used": "Het lijkt erop dat je geen uitnodiging hebt gebruikt.", + "@invites_none_used": { + "type": "text", + "placeholders": {} + }, + "invites_none_left": "Je hebt geen uitnodigingen meer.", + "@invites_none_left": { + "type": "text", + "placeholders": {} + }, + "invites_invite_a_friend": "Nodig een vriend uit", + "@invites_invite_a_friend": { + "type": "text", + "placeholders": {} + }, + "invites_refresh": "Verversen", + "@invites_refresh": { + "type": "text", + "placeholders": {} + }, + "language_settings_title": "Taalinstellingen", + "@language_settings_title": { + "type": "text", + "placeholders": {} + }, + "language_settings_save": "Opslaan", + "@language_settings_save": { + "type": "text", + "placeholders": {} + }, + "language_settings_saved_success": "Taal is succesvol gewijzigd", + "@language_settings_saved_success": { + "type": "text", + "placeholders": {} + }, + "groups_see_all": "Zie alle {groupName}", + "@groups_see_all": { + "description": "Can be, See all joined communities, See all pending invites, See all moderated communities etc. ", + "type": "text", + "placeholders": { + "groupName": {} + } + }, + "invites_joined_with": "Doet mee met gebruikersnaam @{username}", + "@invites_joined_with": { + "type": "text", + "placeholders": { + "username": {} + } + }, + "invites_pending_email": "In afwachting, uitnodigings-mail verzonden naar {email}", + "@invites_pending_email": { + "type": "text", + "placeholders": { + "email": {} + } + }, + "timeline_filters_no_match": "Geen resultaat voor '{searchQuery}'.", + "@timeline_filters_no_match": { + "type": "text", + "placeholders": { + "searchQuery": {} + } + }, + "clear_application_cache_text": "Cache wissen", + "@clear_application_cache_text": { + "type": "text", + "placeholders": {} + }, + "clear_application_cache_desc": "Verwijder ge-cache-te berichten, accounts, afbeeldingen en meer.", + "@clear_application_cache_desc": { + "type": "text", + "placeholders": {} + }, + "clear_application_cache_success": "Cache succesvol gewist", + "@clear_application_cache_success": { + "type": "text", + "placeholders": {} + }, + "clear_application_cache_failure": "Kon cache niet wissen", + "@clear_application_cache_failure": { + "type": "text", + "placeholders": {} + }, + "confirm_guidelines_reject_title": "Afwijzing van richtlijnen", + "@confirm_guidelines_reject_title": { + "type": "text", + "placeholders": {} + }, + "confirm_guidelines_reject_info": "Je kunt Okuna niet gebruiken totdat je de richtlijnen accepteert.", + "@confirm_guidelines_reject_info": { + "type": "text", + "placeholders": {} + }, + "confirm_guidelines_reject_chat_with_team": "Met het team chatten.", + "@confirm_guidelines_reject_chat_with_team": { + "type": "text", + "placeholders": {} + }, + "confirm_guidelines_reject_chat_immediately": "Start nu een chat.", + "@confirm_guidelines_reject_chat_immediately": { + "type": "text", + "placeholders": {} + }, + "confirm_guidelines_reject_chat_community": "Chat met de community.", + "@confirm_guidelines_reject_chat_community": { + "type": "text", + "placeholders": {} + }, + "confirm_guidelines_reject_join_slack": "Neem deel aan het Slack-kanaal.", + "@confirm_guidelines_reject_join_slack": { + "type": "text", + "placeholders": {} + }, + "confirm_guidelines_reject_go_back": "Terug", + "@confirm_guidelines_reject_go_back": { + "type": "text", + "placeholders": {} + }, + "confirm_guidelines_reject_delete_account": "Verwijder account", + "@confirm_guidelines_reject_delete_account": { + "type": "text", + "placeholders": {} + }, + "guidelines_desc": "Neem alstublieft een moment om onze richtlijnen te lezen en te aanvaarden.", + "@guidelines_desc": { + "type": "text", + "placeholders": {} + }, + "guidelines_accept": "Accepteren", + "@guidelines_accept": { + "type": "text", + "placeholders": {} + }, + "guidelines_reject": "Afwijzen", + "@guidelines_reject": { + "type": "text", + "placeholders": {} + }, + "change_email_title": "Verander e-mail", + "@change_email_title": { + "type": "text", + "placeholders": {} + }, + "change_email_email_text": "E-mail", + "@change_email_email_text": { + "type": "text", + "placeholders": {} + }, + "change_email_hint_text": "Voer je nieuwe e-mail in", + "@change_email_hint_text": { + "type": "text", + "placeholders": {} + }, + "change_email_error": "E-mail is al geregistreerd", + "@change_email_error": { + "type": "text", + "placeholders": {} + }, + "change_email_save": "Bewaren", + "@change_email_save": { + "type": "text", + "placeholders": {} + }, + "change_email_success_info": "We hebben een bevestigingslink naar je nieuwe e-mailadres gestuurd, klik erop om je nieuwe e-mailadres te verifiëren", + "@change_email_success_info": { + "type": "text", + "placeholders": {} + }, + "clear_app_preferences_title": "Verwijder voorkeuren", + "@clear_app_preferences_title": { + "type": "text", + "placeholders": {} + }, + "clear_app_preferences_desc": "Verwijder de applicatie voorkeuren. Momenteel is dit alleen de voorkeursvolgorde van commentaren.", + "@clear_app_preferences_desc": { + "type": "text", + "placeholders": {} + }, + "clear_app_preferences_cleared_successfully": "Voorkeuren succesvol gewist", + "@clear_app_preferences_cleared_successfully": { + "type": "text", + "placeholders": {} + }, + "email_verification_successful": "Hoera! Je e-mailadres is nu geverifieerd", + "@email_verification_successful": { + "type": "text", + "placeholders": {} + }, + "email_verification_error": "Oeps! Je token was niet geldig of verlopen, probeer het opnieuw", + "@email_verification_error": { + "type": "text", + "placeholders": {} + }, + "clear_app_preferences_error": "Kan voorkeuren niet wissen", + "@clear_app_preferences_error": { + "type": "text", + "placeholders": {} + }, + "disconnect_from_user_success": "Verbinding met succes verbroken", + "@disconnect_from_user_success": { + "type": "text", + "placeholders": {} + }, + "block_user": "Blokkeer Gebruiker", + "@block_user": { + "type": "text", + "placeholders": {} + }, + "unblock_user": "Gebruiker deblokkeren", + "@unblock_user": { + "type": "text", + "placeholders": {} + }, + "disconnect_from_user": "Verbinding verbreken met {userName}", + "@disconnect_from_user": { + "type": "text", + "placeholders": { + "userName": {} + } + }, + "circle_peoples_count": "{prettyUsersCount} mensen", + "@circle_peoples_count": { + "type": "text", + "placeholders": { + "prettyUsersCount": {} + } + }, + "follows_list_accounts_count": "{prettyUsersCount} accounts", + "@follows_list_accounts_count": { + "type": "text", + "placeholders": { + "prettyUsersCount": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/nl/user_search.arb b/assets/i18n/nl/user_search.arb new file mode 100644 index 000000000..84dd841b9 --- /dev/null +++ b/assets/i18n/nl/user_search.arb @@ -0,0 +1,76 @@ +{ + "search_text": "Zoeken...", + "@search_text": { + "type": "text", + "placeholders": {} + }, + "communities": "Communities", + "@communities": { + "type": "text", + "placeholders": {} + }, + "users": "Gebruikers", + "@users": { + "type": "text", + "placeholders": {} + }, + "list_search_text": "Zoek {resourcePluralName} ...", + "@list_search_text": { + "description": "resourcePluralName can take many forms foreg. Search members... , Search accepted invites, Search communities.. etc.", + "type": "text", + "placeholders": { + "resourcePluralName": {} + } + }, + "list_no_results_found": "{resourcePluralName} niet gevonden.", + "@list_no_results_found": { + "description": "Used in a generic list widget. Can be No users found. No communities found. No pending invites found. Its always a plural. ", + "type": "text", + "placeholders": { + "resourcePluralName": {} + } + }, + "list_refresh_text": "Ververs", + "@list_refresh_text": { + "type": "text", + "placeholders": {} + }, + "list_retry": "Tik om opnieuw te proberen.", + "@list_retry": { + "type": "text", + "placeholders": {} + }, + "cancel": "Annuleren", + "@cancel": { + "type": "text", + "placeholders": {} + }, + "searching_for": "Zoeken naar '{searchQuery}'", + "@searching_for": { + "type": "text", + "placeholders": { + "searchQuery": {} + } + }, + "no_results_for": "Geen resultaten voor '{searchQuery}' gevonden.", + "@no_results_for": { + "type": "text", + "placeholders": { + "searchQuery": {} + } + }, + "no_communities_for": "Geen communities gevonden voor '{searchQuery}'.", + "@no_communities_for": { + "type": "text", + "placeholders": { + "searchQuery": {} + } + }, + "no_users_for": "Geen gebruikers gevonden voor '{searchQuery}'.", + "@no_users_for": { + "type": "text", + "placeholders": { + "searchQuery": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/nl/video_picker.arb b/assets/i18n/nl/video_picker.arb new file mode 100644 index 000000000..e7918d3e6 --- /dev/null +++ b/assets/i18n/nl/video_picker.arb @@ -0,0 +1,12 @@ +{ + "from_gallery": "Uit Galerij", + "@from_gallery": { + "type": "text", + "placeholders": {} + }, + "from_camera": "Van camera", + "@from_camera": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/pt-BR/application_settings.arb b/assets/i18n/pt-BR/application_settings.arb new file mode 100644 index 000000000..8a6b91270 --- /dev/null +++ b/assets/i18n/pt-BR/application_settings.arb @@ -0,0 +1,82 @@ +{ + "videos": "Vídeos", + "@videos": { + "type": "text", + "placeholders": {} + }, + "link_previews": "Link previews", + "@link_previews": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay": "Reprodução automática", + "@videos_autoplay": { + "type": "text", + "placeholders": {} + }, + "link_previews_show": "Show", + "@link_previews_show": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_always": "Sempre", + "@videos_autoplay_always": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_wifi_only": "Somente Wi-Fi", + "@videos_autoplay_wifi_only": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_never": "Nunca", + "@videos_autoplay_never": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_always": "Always", + "@link_previews_autoplay_always": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_wifi_only": "Wifi only", + "@link_previews_autoplay_wifi_only": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_never": "Never", + "@link_previews_autoplay_never": { + "type": "text", + "placeholders": {} + }, + "videos_sound": "Som", + "@videos_sound": { + "type": "text", + "placeholders": {} + }, + "tap_to_change": "(Toque para alterar)", + "@tap_to_change": { + "type": "text", + "placeholders": {} + }, + "videos_sound_enabled": "Habilitado", + "@videos_sound_enabled": { + "type": "text", + "placeholders": {} + }, + "videos_sound_disabled": "Desabilitado", + "@videos_sound_disabled": { + "type": "text", + "placeholders": {} + }, + "comment_sort_newest_first": "Mais recentes", + "@comment_sort_newest_first": { + "type": "text", + "placeholders": {} + }, + "comment_sort_oldest_first": "Mais antigos", + "@comment_sort_oldest_first": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/pt-BR/auth.arb b/assets/i18n/pt-BR/auth.arb index e90e7a1f9..a55ecf6db 100644 --- a/assets/i18n/pt-BR/auth.arb +++ b/assets/i18n/pt-BR/auth.arb @@ -2,744 +2,530 @@ "headline": "Uma rede social melhor.", "@headline": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login": "Entrar", "@login": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "email_empty_error": "O email não pode ficar vazio.", "@email_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "email_invalid_error": "Por favor, forneça um email válido.", "@email_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "username_empty_error": "O nome de usuário não pode ficar vazio.", "@username_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "username_characters_error": "Um nome de usuário só pode conter caracteres alfanuméricos e underlines (_).", "@username_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "username_maxlength_error": "Um nome de usuário não pode ser maior que {maxLength} caracteres.", "@username_maxlength_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "create_account": "Cadastrar-se", "@create_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__lets_get_started": "Vamos começar", "@create_acc__lets_get_started": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__welcome_to_beta": "Bem-vindo(a) à Beta!", "@create_acc__welcome_to_beta": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__previous": "Voltar", "@create_acc__previous": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__next": "Avançar", "@create_acc__next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__create_account": "Criar uma conta", "@create_acc__create_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__paste_link": "Cole seu link de registro abaixo", "@create_acc__paste_link": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__paste_password_reset_link": "Cole o link de redefinição de senha abaixo", "@create_acc__paste_password_reset_link": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__paste_link_help_text": "Use o link do seu convite recebido por email.", "@create_acc__paste_link_help_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__link_empty_error": "O campo de link não pode ficar vazio.", "@create_acc__link_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__link_invalid_error": "Este link parece ser inválido.", "@create_acc__link_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "password_empty_error": "A senha não pode ficar vazia.", "@password_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "password_range_error": "A senha deve ter entre {minLength} e {maxLength} caracteres.", "@password_range_error": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, "name_empty_error": "O nome não pode ficar vazio.", "@name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "name_range_error": "O nome deve ter entre {minLength} e {maxLength} caracteres.", "@name_range_error": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, "description_empty_error": "A descrição não pode ficar vazia.", "@description_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "description_range_error": "A descrição deve ter entre {minLength} e {maxLength} caracteres.", "@description_range_error": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, "reset_password_success_title": "Tudo pronto!", "@reset_password_success_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reset_password_success_info": "Sua senha foi alterada com sucesso", "@reset_password_success_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__request_invite": "Sem convite? Solicite um aqui.", "@create_acc__request_invite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__subscribe": "Solicitar", "@create_acc__subscribe": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__subscribe_to_waitlist_text": "Solicitar um convite!", "@create_acc__subscribe_to_waitlist_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__congratulations": "Parabéns!", "@create_acc__congratulations": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__your_subscribed": "Você é o número {0} da lista de espera.", "@create_acc__your_subscribed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__almost_there": "Quase lá...", "@create_acc__almost_there": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_name": "Qual é o seu nome?", "@create_acc__what_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__name_placeholder": "Ayrton Senna", "@create_acc__name_placeholder": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__name_empty_error": "😱 Seu nome não pode ficar vazio.", "@create_acc__name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__name_length_error": "😱 Seu nome não pode ter mais de 50 caracteres. (Se ele tem, lamentamos muito.)", "@create_acc__name_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__name_characters_error": "😅 Um nome só pode conter caracteres alfanuméricos (por enquanto).", "@create_acc__name_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_username": "Escolha um nome de usuário", "@create_acc__what_username": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_placeholder": "santosdumont", "@create_acc__username_placeholder": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_empty_error": "😱 O nome de usuário não pode ficar vazio.", "@create_acc__username_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_length_error": "😅 Um nome de usuário não pode ter mais de 30 caracteres.", "@create_acc__username_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_characters_error": "😅 Um nome de usuário deve conter apenas caracteres alfanuméricos e underlines (_).", "@create_acc__username_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_taken_error": "😩 O nome de usuário @%s já está em uso.", "@create_acc__username_taken_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_server_error": "😭 Estamos com problemas em nossos servidores, por favor tente novamente em alguns minutos.", "@create_acc__username_server_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_email": "Qual é o seu email?", "@create_acc__what_email": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_placeholder": "gisele_bundchen@mail.com", "@create_acc__email_placeholder": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_empty_error": "😱 Seu email não pode ficar vazio", "@create_acc__email_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_invalid_error": "😅 Por favor, forneça um endereço de email válido.", "@create_acc__email_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_taken_error": "🤔 Já existe uma conta associada a esse email.", "@create_acc__email_taken_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_server_error": "😭 Estamos com problemas em nossos servidores, por favor tente novamente em alguns minutos.", "@create_acc__email_server_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_password": "Escolha uma senha", "@create_acc__what_password": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc_password_hint_text": "({minLength}-{maxLength} caracteres)", "@create_acc_password_hint_text": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, "create_acc__what_password_subtext": "(mín. 10 caracteres)", "@create_acc__what_password_subtext": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__password_empty_error": "😱 Sua senha não pode ficar vazia", "@create_acc__password_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__password_length_error": "😅 Uma senha precisa ter entre 8 e 64 caracteres.", + "create_acc__password_length_error": "😅 Sua senha precisa ter entre 10 e 100 caracteres.", "@create_acc__password_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_avatar": "Escolha uma imagem de perfil", "@create_acc__what_avatar": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_tap_to_change": "Toque para alterar", "@create_acc__avatar_tap_to_change": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_choose_camera": "Tirar uma foto", "@create_acc__avatar_choose_camera": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_choose_gallery": "Usar uma foto existente", "@create_acc__avatar_choose_gallery": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_remove_photo": "Remover foto", "@create_acc__avatar_remove_photo": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done": "Criar conta", "@create_acc__done": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_subtext": "Você pode mudar isso nas configurações de perfil.", "@create_acc__done_subtext": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_created": "Sua conta foi criada com o nome de usuário ", "@create_acc__done_created": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__submit_loading_title": "Segura aí!", + "create_acc__submit_loading_title": "Aguenta aí!", "@create_acc__submit_loading_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_loading_desc": "Estamos criando sua conta.", "@create_acc__submit_loading_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_error_title": "Ah não...", "@create_acc__submit_error_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_error_desc_server": "😭 Estamos com problemas em nossos servidores, por favor tente novamente em alguns minutos.", "@create_acc__submit_error_desc_server": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_error_desc_validation": "😅 Parece que algumas das informações não estavam corretas, por favor, verifique e tente novamente.", "@create_acc__submit_error_desc_validation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_title": "Aeee!", "@create_acc__done_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_description": "Sua conta foi criada com sucesso.", "@create_acc__done_description": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__your_username_is": "Seu nome de usuário é ", "@create_acc__your_username_is": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__can_change_username": "Se desejar, você pode alterá-lo a qualquer momento através da sua página de perfil.", "@create_acc__can_change_username": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_continue": "Entrar", "@create_acc__done_continue": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__one_last_thing": "Uma última coisa...", "@create_acc__one_last_thing": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__register": "Criar uma conta", + "create_acc__register": "Criar minha conta", "@create_acc__register": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__are_you_legal_age": "Você tem mais de 16 anos?", "@create_acc__are_you_legal_age": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__login": "Continuar", "@login__login": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__previous": "Voltar", "@login__previous": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__title": "Bem-vindo(a) de volta!", "@login__title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__subtitle": "Insira suas credenciais para continuar.", "@login__subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__forgot_password": "Esqueci a senha", "@login__forgot_password": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__forgot_password_subtitle": "Digite seu nome de usuário ou email", "@login__forgot_password_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_label": "Nome de usuário", "@login__username_label": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__password_label": "Senha", "@login__password_label": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__email_label": "Email", "@login__email_label": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__or_text": "Ou", "@login__or_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__password_empty_error": "A senha é necessária.", "@login__password_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "login__password_length_error": "Sua senha deve ter entre 8 e 64 caracteres.", + "login__password_length_error": "Sua senha deve ter entre 10 e 100 caracteres.", "@login__password_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_empty_error": "O nome de usuário é necessário.", "@login__username_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_length_error": "O nome de usuário não pode ter mais de 30 caracteres.", "@login__username_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_characters_error": "O nome de usuário só pode conter caracteres alfanuméricos e underlines (_).", "@login__username_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__credentials_mismatch_error": "As credenciais fornecidas não coincidem.", "@login__credentials_mismatch_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__server_error": "Ops... Estamos passando por problemas em nossos servidores. Por favor, tente novamente em alguns minutos.", "@login__server_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__connection_error": "Não conseguimos alcançar nossos servidores. Você está conectado à internet?", "@login__connection_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_title": "Alterar senha", "@change_password_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_current_pwd": "Senha atual", "@change_password_current_pwd": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "change_password_current_pwd_hint": "Digite a sua senha atual", + "change_password_current_pwd_hint": "Digite sua senha atual", "@change_password_current_pwd_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_current_pwd_incorrect": "A senha inserida está incorreta", "@change_password_current_pwd_incorrect": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_new_pwd": "Nova senha", "@change_password_new_pwd": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "change_password_new_pwd_hint": "Digite a sua nova senha", + "change_password_new_pwd_hint": "Digite sua nova senha", "@change_password_new_pwd_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_new_pwd_error": "Por favor, certifique-se de que a senha tenha entre 10 e 100 caracteres", "@change_password_new_pwd_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_save_text": "Salvar", "@change_password_save_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_save_success": "Tudo certo! Sua senha foi atualizada", "@change_password_save_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/pt-BR/community.arb b/assets/i18n/pt-BR/community.arb index a39f25e9c..77a70c846 100644 --- a/assets/i18n/pt-BR/community.arb +++ b/assets/i18n/pt-BR/community.arb @@ -2,475 +2,348 @@ "no": "Não", "@no": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "yes": "Sim", "@yes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "button_staff": "Equipe", "@button_staff": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "button_rules": "Regras", "@button_rules": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community": "comunidade", "@community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities": "comunidades", "@communities": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "type_public": "Pública", "@type_public": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "type_private": "Privada", "@type_private": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "member_capitalized": "Membro", "@member_capitalized": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "members_capitalized": "Membros", "@members_capitalized": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "admin_desc": "Isso permitirá que o membro edite os detalhes da comunidade, administradores, moderadores e usuários banidos.", "@admin_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirmation_title": "Confirmação", "@confirmation_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "retry_loading_posts": "Tentar novamente", + "@retry_loading_posts": { + "type": "text", + "placeholders": {} }, "admin_add_confirmation": "Você tem certeza de que deseja adicionar @{username} como administrador da comunidade?", "@admin_add_confirmation": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "ban_confirmation": "Você tem certeza de que deseja banir @{username}?", "@ban_confirmation": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "ban_desc": "Isso removerá o usuário da comunidade e impedirá que ele entre novamente.", "@ban_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderator_add_confirmation": "Você tem certeza de que deseja adicionar @{username} como moderador da comunidade?", "@moderator_add_confirmation": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "moderator_desc": "Isso permitirá que o membro edite os detalhes da comunidade, moderadores e usuários banidos.", "@moderator_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderators_you": "Você", "@moderators_you": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderators_title": "Moderadores", "@moderators_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "leave_desc": "Você não poderá mais ver as publicações desta comunidade, nem publicar nela.", "@leave_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "leave_confirmation": "Você tem certeza de que deseja sair da comunidade?", "@leave_confirmation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderator_resource_name": "moderador", "@moderator_resource_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderators_resource_name": "moderadores", "@moderators_resource_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_moderator_title": "Adicionar moderador", "@add_moderator_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_confirmation": "Você tem certeza de que deseja excluir a comunidade?", "@delete_confirmation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_desc": "Você não poderá mais ver as publicações desta comunidade, nem publicar nela.", "@delete_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_manage_text": "Gerenciar", "@actions_manage_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_title": "Gerenciar comunidade", "@manage_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_details_title": "Detalhes", "@manage_details_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_details_desc": "Alterar título, nome, avatar, foto de capa e mais.", "@manage_details_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_admins_title": "Administradores", "@manage_admins_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_admins_desc": "Ver, adicionar e remover administradores.", "@manage_admins_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_mods_title": "Moderadores", "@manage_mods_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_mods_desc": "Ver, adicionar e remover moderadores.", "@manage_mods_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_banned_title": "Usuários banidos", "@manage_banned_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_banned_desc": "Ver, adicionar e remover usuários banidos.", "@manage_banned_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "manage_mod_reports_title": "Reportado à moderação", + "manage_mod_reports_title": "Reportado para moderação", "@manage_mod_reports_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "manage_mod_reports_desc": "Revise as denúncias à moderação da comunidade.", + "manage_mod_reports_desc": "Revisar as denúncias para moderação da comunidade.", "@manage_mod_reports_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "manage_closed_posts_title": "Posts fechados", + "manage_closed_posts_title": "Publicações fechadas", "@manage_closed_posts_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "manage_closed_posts_desc": "Ver e gerenciar os posts fechados", + "manage_closed_posts_desc": "Ver e gerenciar as publicações fechadas", "@manage_closed_posts_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_invite_title": "Convidar pessoas", "@manage_invite_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "manage_invite_desc": "Convide suas conexões e seguidores para se juntar à comunidade.", + "manage_invite_desc": "Convidar suas conexões e seus seguidores para a comunidade.", "@manage_invite_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_delete_title": "Excluir comunidade", "@manage_delete_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_delete_desc": "Excluir a comunidade, para sempre.", "@manage_delete_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_leave_title": "Sair da comunidade", "@manage_leave_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_leave_desc": "Sair da comunidade.", "@manage_leave_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_add_favourite": "Adicionar a comunidade às suas favoritas", "@manage_add_favourite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_remove_favourite": "Remover a comunidade de suas favoritas", "@manage_remove_favourite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "is_private": "Essa comunidade é privada.", "@is_private": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invited_by_member": "Você deve ser convidado(a) por um membro.", "@invited_by_member": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invited_by_moderator": "Você deve ser convidado(a) por um moderador.", "@invited_by_moderator": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "refreshing": "Atualizando a comunidade", "@refreshing": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "posts": "Posts", "@posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "about": "Sobre", "@about": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "category": "categoria.", "@category": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "categories": "categorias.", "@categories": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_administrators_title": "Adicionar administrador.", "@add_administrators_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_members": "Membros da comunidade", "@community_members": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "member": "membro", "@member": { "description": "Currently not used in app, reserved for potential use. Could be used as: Showing 1 member", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "member_plural": "membros", "@member_plural": { "description": "See all members ,Search all members", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrators_title": "Administradores", "@administrators_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrator_text": "administrador", "@administrator_text": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 administrator", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrator_plural": "administradores", "@administrator_plural": { "description": "Egs. Search administrators, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrator_you": "Você", "@administrator_you": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "user_you_text": "Você", "@user_you_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "pick_upto_max": "Escolha até {max} categorias", "@pick_upto_max": { "type": "text", "placeholders": { - "max": { - - } + "max": {} } }, "pick_atleast_min_category": "Você deve escolher pelo menos {min} categoria.", @@ -478,9 +351,7 @@ "description": "You must pick at least 1 category", "type": "text", "placeholders": { - "min": { - - } + "min": {} } }, "pick_atleast_min_categories": "Você deve escolher pelo menos {min} categorias.", @@ -488,530 +359,386 @@ "description": "Eg. Variable min will be 3-5. You must pick at least (3-5) categories", "type": "text", "placeholders": { - "min": { - - } + "min": {} } }, "ban_user_title": "Banir usuário", "@ban_user_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "banned_users_title": "Usuários banidos", "@banned_users_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "banned_user_text": "usuário banido", "@banned_user_text": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 banned user", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "banned_users_text": "usuários banidos", "@banned_users_text": { "description": "Egs. Search banned users, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorites_title": "Favoritas", "@favorites_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorite_community": "comunidade favorita", "@favorite_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 favorite community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorite_communities": "comunidades favoritas", "@favorite_communities": { "description": "Egs. Search favorite communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrated_title": "Administradas", "@administrated_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrated_community": "comunidade administrada", "@administrated_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 administrated community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrated_communities": "comunidades administradas", "@administrated_communities": { "description": "Egs. Search administrated communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_title": "Moderadas", "@moderated_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_community": "comunidade moderada", "@moderated_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 moderated community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_communities": "comunidades moderadas", "@moderated_communities": { "description": "Egs. Search moderated communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "joined_title": "Ingressadas", "@joined_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "joined_community": "comunidade ingressada", "@joined_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 joined community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "joined_communities": "comunidades ingressadas", "@joined_communities": { "description": "Egs. Search joined communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "join_communities_desc": "Entre nas comunidades para ver esta aba ganhar vida!", "@join_communities_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "refresh_text": "Atualizar", "@refresh_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_none_found": "Nenhuma comunidade em alta encontrada. Tente novamente em alguns minutos.", "@trending_none_found": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_refresh": "Atualizar", "@trending_refresh": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_in_all": "Em alta em todas as categorias", "@trending_in_all": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_in_category": "Em alta em {categoryName}", "@trending_in_category": { "type": "text", "placeholders": { - "categoryName": { - - } + "categoryName": {} } }, "communities_title": "Comunidades", "@communities_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities_no_category_found": "Nenhuma categoria encontrada. Por favor, tente novamente em alguns minutos.", "@communities_no_category_found": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities_refresh_text": "Atualizar", "@communities_refresh_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities_all_text": "Todas", "@communities_all_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_to_community_title": "Convidar para a comunidade", "@invite_to_community_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_to_community_resource_singular": "conexão ou seguidor", "@invite_to_community_resource_singular": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 connection or follower", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_to_community_resource_plural": "conexões e seguidores", "@invite_to_community_resource_plural": { "description": "Egs. Search connections and followers, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorite_action": "Favoritar comunidade", "@favorite_action": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "unfavorite_action": "Desfavoritar comunidade", "@unfavorite_action": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_label_title": "Título", "@save_community_label_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_label_title_hint_text": "ex: Viagem, Fotografia, Jogos.", "@save_community_label_title_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_title": "Nome", "@save_community_name_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_title_hint_text": " ex: viagem, fotografia, jogos.", "@save_community_name_title_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "save_community_name_taken": "O nome de comunidade '{takenName}' já está em uso", + "save_community_name_taken": "O nome '{takenName}' já está sendo usado por outra comunidade", "@save_community_name_taken": { "type": "text", "placeholders": { - "takenName": { - - } + "takenName": {} } }, "save_community_name_label_color": "Cor", "@save_community_name_label_color": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_color_hint_text": "(Toque para alterar)", "@save_community_name_label_color_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_type": "Tipo", "@save_community_name_label_type": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_type_hint_text": "(Toque para alterar)", "@save_community_name_label_type_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_member_invites": "Convites de membros", "@save_community_name_member_invites": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_member_invites_subtitle": "Membros podem convidar pessoas para a comunidade", "@save_community_name_member_invites_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_category": "Categoria", "@save_community_name_category": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_desc_optional": "Descrição · Opcional", "@save_community_name_label_desc_optional": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_desc_optional_hint_text": "Sobre o que é a sua comunidade?", "@save_community_name_label_desc_optional_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_rules_optional": "Regras · Opcional", "@save_community_name_label_rules_optional": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_rules_optional_hint_text": "Há algo que você gostaria que seus usuários soubessem?", "@save_community_name_label_rules_optional_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_member_adjective": "Adjetivo para membro · Opcional", "@save_community_name_label_member_adjective": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_member_adjective_hint_text": "ex: viajante, fotógrafo, gamer.", "@save_community_name_label_member_adjective_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_members_adjective": "Adjetivo para membros · Opcional", "@save_community_name_label_members_adjective": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_members_adjective_hint_text": "ex: viajantes, fotógrafos, gamers.", "@save_community_name_label_members_adjective_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_edit_community": "Editar comunidade", "@save_community_edit_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_create_community": "Criar comunidade", "@save_community_create_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_save_text": "Salvar", "@save_community_save_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_create_text": "Criar", "@save_community_create_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "actions_invite_people_title": "Convide pessoas para a comunidade", + "actions_invite_people_title": "Convidar pessoas para a comunidade", "@actions_invite_people_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "join_community": "Entrar", "@join_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "leave_community": "Sair", "@leave_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_staff": "Equipe da comunidade", "@community_staff": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_singular": "post", "@post_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_plural": "posts", "@post_plural": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "rules_title": "Regras da comunidade", "@rules_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "rules_text": "Regras", "@rules_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "name_characters_error": "O nome só pode conter caracteres alfanuméricos e underlines (_).", "@name_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "name_range_error": "O nome não pode ser maior que {maxLength} caracteres.", "@name_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "name_empty_error": "O nome não pode ficar vazio.", "@name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "title_range_error": "O título não pode ser maior que {maxLength} caracteres.", "@title_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "title_empty_error": "O título não pode ficar vazio.", "@title_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "rules_range_error": "As regras não podem ser maiores que {maxLength} caracteres.", "@rules_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "rules_empty_error": "As regras não podem ficar vazias.", "@rules_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "description_range_error": "A descrição não pode ser maior que {maxLength} caracteres.", "@description_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "adjectives_range_error": "Os adjetivos não podem ser mais longos que {maxLength} caracteres.", @@ -1019,9 +746,7 @@ "description": "This refers to the customisable adjectives assigned to community members,eg. 1k travellers,5k photographers", "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } } } \ No newline at end of file diff --git a/assets/i18n/pt-BR/contextual_account_search_box.arb b/assets/i18n/pt-BR/contextual_account_search_box.arb index 9df038403..815fca6db 100644 --- a/assets/i18n/pt-BR/contextual_account_search_box.arb +++ b/assets/i18n/pt-BR/contextual_account_search_box.arb @@ -3,8 +3,6 @@ "@suggestions": { "description": "The title to display on the suggestions when searching for accounts when trying to mention someone.", "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/pt-BR/drawer.arb b/assets/i18n/pt-BR/drawer.arb index b3ddcd3e8..c32eaf360 100644 --- a/assets/i18n/pt-BR/drawer.arb +++ b/assets/i18n/pt-BR/drawer.arb @@ -2,304 +2,223 @@ "menu_title": "Menu", "@menu_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "main_title": "Minha Okuna", + "main_title": "Okuna", "@main_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_circles": "Meus círculos", "@my_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_lists": "Minhas listas", "@my_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_followers": "Meus seguidores", "@my_followers": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_following": "Meus seguidos", "@my_following": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_invites": "Meus convites", "@my_invites": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_pending_mod_tasks": "Minhas tarefas de moderação pendentes", "@my_pending_mod_tasks": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_mod_penalties": "Minhas penalidades", "@my_mod_penalties": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "app_account_text": "Aplicativo & Conta", "@app_account_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "themes": "Temas", "@themes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_moderation": "Moderação global", "@global_moderation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile": "Perfil", "@profile": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connections": "Minhas conexões", "@connections": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "lists": "Minhas listas", "@lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "settings": "Configurações", "@settings": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "application_settings": "Configurações do aplicativo", "@application_settings": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings": "Configurações da conta", "@account_settings": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "developer_settings": "Opções de desenvolvedor", + "@developer_settings": { + "type": "text", + "placeholders": {} }, "account_settings_change_email": "Alterar Email", "@account_settings_change_email": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_change_password": "Alterar Senha", "@account_settings_change_password": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_notifications": "Notificações", "@account_settings_notifications": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_language_text": "Idioma", "@account_settings_language_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_language": "Idioma ({currentUserLanguage})", "@account_settings_language": { "type": "text", "placeholders": { - "currentUserLanguage": { - - } + "currentUserLanguage": {} } }, "account_settings_blocked_users": "Usuários bloqueados", "@account_settings_blocked_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_delete_account": "Excluir a minha conta", "@account_settings_delete_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "help": "Suporte e Feedback", "@help": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "customize": "Personalizar", "@customize": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "logout": "Sair", "@logout": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_title": "Links úteis", "@useful_links_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines": "Diretrizes da Okuna", "@useful_links_guidelines": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_desc": "As diretrizes que todos esperamos seguir para uma coexistência saudável e amigável.", "@useful_links_guidelines_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_github": "Projeto no Github", "@useful_links_guidelines_github": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_github_desc": "Dê uma olhada no que estamos trabalhando atualmente", "@useful_links_guidelines_github_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_feature_requests": "Sugestões de recursos", "@useful_links_guidelines_feature_requests": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_feature_requests_desc": "Sugerir um recurso ou votar em sugestões existentes", "@useful_links_guidelines_feature_requests_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_bug_tracker": "Rastreador de bugs", "@useful_links_guidelines_bug_tracker": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_bug_tracker_desc": "Reportar um bug ou votar em bugs existentes", "@useful_links_guidelines_bug_tracker_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_handbook": "Manual da Okuna", "@useful_links_guidelines_handbook": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "useful_links_guidelines_handbook_desc": "Um livro com tudo o que há para saber sobre usar a plataforma", + "useful_links_guidelines_handbook_desc": "Um manual para aprender tudo sobre o uso da plataforma", "@useful_links_guidelines_handbook_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_support": "Apoie a Okuna", "@useful_links_support": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_support_desc": "Encontre uma maneira de nos apoiar em nossa jornada!", "@useful_links_support_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_slack_channel": "Canal da comunidade no Slack", "@useful_links_slack_channel": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_slack_channel_desc": "Um lugar para discutir tudo sobre a Okuna", "@useful_links_slack_channel_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/pt-BR/error.arb b/assets/i18n/pt-BR/error.arb index 63f691a4e..872b22957 100644 --- a/assets/i18n/pt-BR/error.arb +++ b/assets/i18n/pt-BR/error.arb @@ -2,15 +2,11 @@ "unknown_error": "Erro desconhecido", "@unknown_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "no_internet_connection": "Sem conexão com a internet", "@no_internet_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/pt-BR/image_picker.arb b/assets/i18n/pt-BR/image_picker.arb new file mode 100644 index 000000000..ad44604fb --- /dev/null +++ b/assets/i18n/pt-BR/image_picker.arb @@ -0,0 +1,19 @@ +{ + "from_gallery": "Galeria", + "@from_gallery": { + "type": "text", + "placeholders": {} + }, + "from_camera": "Câmera", + "@from_camera": { + "type": "text", + "placeholders": {} + }, + "error_too_large": "Arquivo muito grande (limite: {limit} MB)", + "@error_too_large": { + "type": "text", + "placeholders": { + "limit": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/pt-BR/moderation.arb b/assets/i18n/pt-BR/moderation.arb index 8e4f23cd3..ad975951e 100644 --- a/assets/i18n/pt-BR/moderation.arb +++ b/assets/i18n/pt-BR/moderation.arb @@ -2,502 +2,360 @@ "filters_title": "Filtros de moderação", "@filters_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_reset": "Redefinir", "@filters_reset": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_verified": "Verificado", "@filters_verified": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_apply": "Aplicar filtros", "@filters_apply": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_type": "Tipo", "@filters_type": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_status": "Status", "@filters_status": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_other": "Outros", "@filters_other": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_review": "Revisar", "@actions_review": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_chat_with_team": "Converse com a equipe", "@actions_chat_with_team": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_category_title": "Atualizar categoria", "@update_category_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_category_save": "Salvar", "@update_category_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_save": "Salvar", "@update_description_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_title": "Editar descrição", "@update_description_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_report_desc": "Descrição da denúncia", "@update_description_report_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_report_hint_text": "ex: O motivo da denúncia é...", "@update_description_report_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_status_save": "Salvar", "@update_status_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_status_title": "Atualizar status", "@update_status_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_title": "Revisar objeto moderado", "@community_review_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_title": "Objeto", "@moderated_object_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_status": "Status", "@moderated_object_status": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_reports_count": "Número de denúncias", "@moderated_object_reports_count": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_verified_by_staff": "Verificado pela equipe da Okuna", "@moderated_object_verified_by_staff": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_verified": "Verificado", "@moderated_object_verified": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_true_text": "Verdadeiro", "@moderated_object_true_text": { - "description": "Eg. Moderated object verified by staff? true \/ false", + "description": "Eg. Moderated object verified by staff? true / false", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_false_text": "Falso", "@moderated_object_false_text": { - "description": "Eg. Moderated object verified by staff? true \/ false", + "description": "Eg. Moderated object verified by staff? true / false", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_object": "Objeto", "@community_review_object": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_approve": "Aprovar", "@community_review_approve": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_reject": "rejeitar", "@community_review_reject": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_item_verified": "Este item foi verificado", "@community_review_item_verified": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_review_title": "Revisar objeto moderado", "@global_review_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_review_object_text": "Objeto", "@global_review_object_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_review_verify_text": "Verificar", "@global_review_verify_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_review_unverify_text": "Desverificar", "@global_review_unverify_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_title": "Enviar denúncia", "@confirm_report_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_details": "Você pode fornecer mais detalhes relevantes para a denúncia?", "@confirm_report_provide_details": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_optional_info": "(Opcional)", "@confirm_report_provide_optional_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_optional_hint_text": "Digite aqui...", "@confirm_report_provide_optional_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_happen_next": "Aqui está o que acontecerá a seguir:", "@confirm_report_provide_happen_next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_happen_next_desc": "- Sua denúncia será enviada anonimamente. \n- Se você estiver denunciando uma publicação ou comentário, a denúncia será enviada à equipe da Okuna e aos moderadores da comunidade (se aplicável), e o conteúdo denunciado ficará oculto do seu feed. \n- Se você estiver denunciando uma conta ou comunidade, a denúncia será enviada para a equipe da Okuna. \n- Vamos analisar a denúncia e, se aprovada, o conteúdo será excluído e as penalidades serão aplicadas às pessoas envolvidas, desde uma suspensão temporária até a exclusão da conta, dependendo da gravidade da transgressão. \n- Se a denúncia for apenas uma tentativa de prejudicar um membro ou comunidade que não cometeu a infração apontada por você, as penalidades serão aplicadas a você. \n", "@confirm_report_provide_happen_next_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_submit": "Eu entendo, envie.", "@confirm_report_submit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_user_reported": "Usuário denunciado", "@confirm_report_user_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_community_reported": "Comunidade denunciada", "@confirm_report_community_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_post_reported": "Publicação denunciada", "@confirm_report_post_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_post_comment_reported": "Comentário denunciado", "@confirm_report_post_comment_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_item_reported": "Item denunciado", "@confirm_report_item_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_moderated_objects": "Itens moderados por comunidades", "@community_moderated_objects": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "globally_moderated_objects": "Itens moderados globalmente", "@globally_moderated_objects": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "tap_to_retry": "Toque para tentar carregar os itens novamente", "@tap_to_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "report_post_text": "Denunciar publicação", + "report_post_text": "Denunciar post", "@report_post_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_post_text": "Você denunciou esta publicação", "@you_have_reported_post_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_account_text": "Denunciar conta", "@report_account_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_account_text": "Você denunciou esta conta", "@you_have_reported_account_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_community_text": "Denunciar comunidade", "@report_community_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_community_text": "Você denunciou esta comunidade", "@you_have_reported_community_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_comment_text": "Denunciar comentário", "@report_comment_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_comment_text": "Você denunciou este comentário", "@you_have_reported_comment_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "description_text": "Descrição", "@description_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "no_description_text": "Sem descrição", "@no_description_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "category_text": "Categoria", "@category_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reporter_text": "Denunciante", "@reporter_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reports_preview_title": "Denúncias", "@reports_preview_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reports_preview_resource_reports": "denúncias", "@reports_preview_resource_reports": { "description": "Usage: See all reports..", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reports_see_all": "Ver todas as {resourceCount} {resourceName}", "@reports_see_all": { "description": "Usage: See all 4 reports.", "type": "text", "placeholders": { - "resourceCount": { - - }, - "resourceName": { - - } + "resourceCount": {}, + "resourceName": {} } }, "object_status_title": "Status", "@object_status_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_tasks_title": "Tarefas de moderação pendentes", "@my_moderation_tasks_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "pending_moderation_tasks_singular": "tarefa de moderação pendente", "@pending_moderation_tasks_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "pending_moderation_tasks_plural": "tarefas de moderação pendentes", "@pending_moderation_tasks_plural": { "description": "Eg. No pending moderation tasks found", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_penalties_title": "Penalidades de moderação", "@my_moderation_penalties_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_penalties_resouce_singular": "penalidade de moderação", "@my_moderation_penalties_resouce_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_penalties_resource_plural": "penalidades de moderação", "@my_moderation_penalties_resource_plural": { "description": "See all moderation penalties, No moderation penalties found etc..", "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/pt-BR/notifications.arb b/assets/i18n/pt-BR/notifications.arb index b9f90a6fc..c25bf02d8 100644 --- a/assets/i18n/pt-BR/notifications.arb +++ b/assets/i18n/pt-BR/notifications.arb @@ -1,5 +1,15 @@ { - "settings_title": "Configurações de notificação", + "tab_general": "Gerais", + "@tab_general": { + "type": "text", + "placeholders": {} + }, + "tab_requests": "Pedidos", + "@tab_requests": { + "type": "text", + "placeholders": {} + }, + "settings_title": "Configurações de notificações", "@settings_title": { "type": "text", "placeholders": {} @@ -19,7 +29,7 @@ "type": "text", "placeholders": {} }, - "follow_desc": "Seja notificado(a) quando alguém começar a segui-lo(a)", + "follow_desc": "Seja notificado(a) quando alguém começar a seguir você", "@follow_desc": { "type": "text", "placeholders": {} @@ -39,7 +49,7 @@ "type": "text", "placeholders": {} }, - "comment_desc": "Seja notificado(a) quando alguém comentar uma das suas publicações ou uma que você também comentou.", + "comment_desc": "Seja notificado(a) quando alguém comentar uma das suas publicações ou uma que você também comentou", "@comment_desc": { "type": "text", "placeholders": {} @@ -49,7 +59,7 @@ "type": "text", "placeholders": {} }, - "comment_reply_desc": "Seja notificado(a) quando alguém responder a um dos seus comentários ou a um que você também respondeu.", + "comment_reply_desc": "Seja notificado(a) quando alguém responder a um dos seus comentários ou a um que você também respondeu", "@comment_reply_desc": { "type": "text", "placeholders": {} @@ -64,7 +74,7 @@ "type": "text", "placeholders": {} }, - "post_user_mention_title": "Menções em publicações", + "post_user_mention_title": "Menções em posts", "@post_user_mention_title": { "type": "text", "placeholders": {} @@ -74,12 +84,12 @@ "type": "text", "placeholders": {} }, - "comment_reaction_title": "Reações a comentários", + "comment_reaction_title": "Reações aos comentários", "@comment_reaction_title": { "type": "text", "placeholders": {} }, - "comment_reaction_desc": "Seja notificado(a) quando alguém reage a um dos seus comentários.", + "comment_reaction_desc": "Seja notificado(a) quando alguém reagir a um dos seus comentários", "@comment_reaction_desc": { "type": "text", "placeholders": {} @@ -89,7 +99,7 @@ "type": "text", "placeholders": {} }, - "post_reaction_desc": "Seja notificado(a) quando alguém reage a uma das suas publicações.", + "post_reaction_desc": "Seja notificado(a) quando alguém reagir a uma das suas publicações", "@post_reaction_desc": { "type": "text", "placeholders": {} @@ -99,7 +109,7 @@ "type": "text", "placeholders": {} }, - "community_invite_desc": "Seja notificado(a) quando alguém convida você para entrar em uma comunidade.", + "community_invite_desc": "Seja notificado(a) quando alguém convidar você para uma comunidade", "@community_invite_desc": { "type": "text", "placeholders": {} @@ -136,7 +146,7 @@ "type": "text", "placeholders": {} }, - "reacted_to_post_tile": "[name] [username] reagiu à sua publicação.", + "reacted_to_post_tile": "[name] [username] reagiu ao seu post.", "@reacted_to_post_tile": { "description": "Eg.: James @jamest reacted to your post.", "type": "text", @@ -154,9 +164,9 @@ "type": "text", "placeholders": {} }, - "user_community_invite_tile": "[name] [username] convidou você para se juntar à comunidade \/c\/{communityName}.", + "user_community_invite_tile": "[name] [username] convidou você para se juntar à comunidade /c/{communityName}.", "@user_community_invite_tile": { - "description": "Eg.: James @jamest has invited you to join community \/c\/okuna.", + "description": "Eg.: James @jamest has invited you to join community /c/okuna.", "type": "text", "placeholders": { "communityName": {} @@ -199,7 +209,7 @@ "postCommentText": {} } }, - "mentioned_in_post_tile": "[name] [username] mencionou você em uma publicação.", + "mentioned_in_post_tile": "[name] [username] mencionou você em um post.", "@mentioned_in_post_tile": { "description": "Eg.: James @jamest mentioned you on a post.", "type": "text", diff --git a/assets/i18n/pt-BR/post.arb b/assets/i18n/pt-BR/post.arb index c7c150aef..30b074c73 100644 --- a/assets/i18n/pt-BR/post.arb +++ b/assets/i18n/pt-BR/post.arb @@ -2,809 +2,600 @@ "open_post": "Abrir post", "@open_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "close_post": "Fechar post", "@close_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_opened": "Post aberto", "@post_opened": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_closed": "Post fechado ", "@post_closed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_required_error": "O comentário não pode ficar vazio.", "@comment_required_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_maxlength_error": "Um comentário não pode ter mais de {maxLength} caracteres.", "@comment_maxlength_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "timeline_posts_all_loaded": "🎉 Todas as publicações carregadas", "@timeline_posts_all_loaded": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_refreshing_drhoo_title": "Aguenta aí!", "@timeline_posts_refreshing_drhoo_title": { "type": "text", - "placeholders": { - - } - }, - "timeline_posts_refreshing_drhoo_subtitle": "Carregando sua linha do tempo.", - "@timeline_posts_refreshing_drhoo_subtitle": { - "type": "text", - "placeholders": { - - } - }, - "timeline_posts_no_more_drhoo_title": "Sua linha do tempo está vazia.", - "@timeline_posts_no_more_drhoo_title": { - "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_no_more_drhoo_subtitle": "Siga usuários ou junte-se a uma comunidade para começar!", "@timeline_posts_no_more_drhoo_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_failed_drhoo_title": "Não foi possível carregar sua linha do tempo.", "@timeline_posts_failed_drhoo_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_failed_drhoo_subtitle": "Tente novamente em alguns segundos", "@timeline_posts_failed_drhoo_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_default_drhoo_title": "Algo não está certo.", "@timeline_posts_default_drhoo_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_default_drhoo_subtitle": "Tente atualizar a linha do tempo.", "@timeline_posts_default_drhoo_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_refresh_posts": "Atualizar publicações", "@timeline_posts_refresh_posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "no_circles_for": "'Nenhum círculo encontrado para '{circlesSearchQuery}'.", + "no_circles_for": "Nenhum círculo encontrado para '{circlesSearchQuery}'.", "@no_circles_for": { "type": "text", "placeholders": { - "circlesSearchQuery": { - - } + "circlesSearchQuery": {} } }, "share_to_circles": "Compartilhar nos círculos", "@share_to_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_post": " Post", "@profile_counts_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_posts": " Posts", "@profile_counts_posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_followers": " Seguidores", "@profile_counts_followers": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_following": " Seguindo", "@profile_counts_following": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_follower": " Seguidor", "@profile_counts_follower": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "profile_retry_loading_posts": "Tentar novamente", + "@profile_retry_loading_posts": { + "type": "text", + "placeholders": {} }, "action_comment": "Comentar", "@action_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "action_react": "Reagir", "@action_react": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "action_reply": "Responder", "@action_reply": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share": "Compartilhar", "@share": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_to": "Compartilhar em", "@share_to": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "sharing_post_to": "Compartilhando post em", "@sharing_post_to": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_shared_with": "Você compartilhou com", "@you_shared_with": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "shared_privately_on": "Compartilhado nos", + "shared_privately_on": "Compartilhado em particular nos", "@shared_privately_on": { "description": "Eg. Shared privately on @shantanu's circles. See following string, usernames_circles . Will combine this in future, needs refactoring.", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "usernames_circles": "círculos de @{postCreatorUsername}", "@usernames_circles": { "type": "text", "placeholders": { - "postCreatorUsername": { - - } + "postCreatorUsername": {} } }, "share_community": "Compartilhar", "@share_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_to_community": "Compartilhar na comunidade", "@share_to_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_community_title": "Uma comunidade", "@share_community_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_community_desc": "Compartilhe a publicação com uma comunidade da qual você faz parte.", "@share_community_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_circles": "Meus círculos", "@my_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_circles_desc": "Compartilhe a publicação para um ou vários dos seus círculos.", "@my_circles_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "world_circle_name": "Mundo", "@world_circle_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "search_circles": "Procurar círculos...", "@search_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reaction_list_tap_retry": "Toque para tentar carregar as reações novamente.", "@reaction_list_tap_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_new": "Novo post", "@create_new": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "create_new_post_label": "Create new post", + "@create_new_post_label": { + "type": "text", + "placeholders": {} + }, + "create_new_community_post_label": "Create new communtiy post", + "@create_new_community_post_label": { + "type": "text", + "placeholders": {} + }, + "close_create_post_label": "Close create new post", + "@close_create_post_label": { + "type": "text", + "placeholders": {} }, "create_next": "Avançar", "@create_next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_photo": "Imagem", "@create_photo": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "create_video": "Vídeo", + "@create_video": { + "type": "text", + "placeholders": {} }, "commenter_post_text": "Enviar", "@commenter_post_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_write_something": "Escreva algo...", "@commenter_write_something": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "edit_title": "Editar publicação", + "edit_title": "Editar post", "@edit_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_save": "Salvar", "@edit_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_expanded_save": "Salvar", "@commenter_expanded_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_expanded_join_conversation": "Entrar na conversa...", "@commenter_expanded_join_conversation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_expanded_start_conversation": "Começar uma conversa...", "@commenter_expanded_start_conversation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_expanded_edit_comment": "Editar comentário", "@commenter_expanded_edit_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "is_closed": "Post fechado", "@is_closed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_reply_expanded_reply_comment": "Responder comentário", "@comment_reply_expanded_reply_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_reply_expanded_post": "Enviar", "@comment_reply_expanded_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_reply_expanded_reply_hint_text": "Sua resposta...", "@comment_reply_expanded_reply_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "trending_posts_title": "Posts em alta", + "trending_posts_title": "Publicações em alta", "@trending_posts_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_posts_no_trending_posts": "Não há publicações em alta. Tente atualizar em alguns segundos.", "@trending_posts_no_trending_posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_posts_refresh": "Atualizar", "@trending_posts_refresh": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "comments_view_all_comments": "Ver todos os {commentsCount} comentários", + "comments_view_all_comments": "Ver todos os comentários ({commentsCount})", "@comments_view_all_comments": { "type": "text", "placeholders": { - "commentsCount": { - - } + "commentsCount": {} } }, "comments_closed_post": "Post fechado", "@comments_closed_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_disabled": "Comentários desativados", "@comments_disabled": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "text_copied": "Texto copiado!", "@text_copied": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_reactions_title": "Reações ao post", "@post_reactions_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "have_not_shared_anything": "Você ainda não compartilhou nada.", "@have_not_shared_anything": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "user_has_not_shared_anything": "{name} ainda não compartilhou nada.", "@user_has_not_shared_anything": { "type": "text", "placeholders": { - "name": { - - } + "name": {} } }, - "comments_header_newest_replies": "Novas respostas", + "comments_header_newest_replies": "Respostas mais recentes", "@comments_header_newest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_newer": "Mais recentes", "@comments_header_newer": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "comments_header_view_newest_replies": "Ver respostas mais recentes", + "comments_header_view_newest_replies": "Mais recentes", "@comments_header_view_newest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "comments_header_see_newest_replies": "Ver respostas mais recentes", + "comments_header_see_newest_replies": "Mais recentes", "@comments_header_see_newest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_oldest_replies": "Respostas mais antigas", "@comments_header_oldest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_older": "Mais antigos", "@comments_header_older": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "comments_header_view_oldest_replies": "Ver respostas mais antigas", + "comments_header_view_oldest_replies": "Mais antigas", "@comments_header_view_oldest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "comments_header_see_oldest_replies": "Ver respostas mais antigas", + "comments_header_see_oldest_replies": "Mais antigas", "@comments_header_see_oldest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_be_the_first_replies": "Mande a primeira resposta", "@comments_header_be_the_first_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_newest_comments": "Comentários mais recentes", "@comments_header_newest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "comments_header_view_newest_comments": "Ver comentários mais recentes", + "comments_header_view_newest_comments": "Mais recentes", "@comments_header_view_newest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "comments_header_see_newest_comments": "Ver comentários mais recentes", + "comments_header_see_newest_comments": "Mais recentes", "@comments_header_see_newest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_oldest_comments": "Comentários mais antigos", "@comments_header_oldest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "comments_header_view_oldest_comments": "Ver comentários mais antigos", + "comments_header_view_oldest_comments": "Mais antigos", "@comments_header_view_oldest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "comments_header_see_oldest_comments": "Ver comentários mais antigos", + "comments_header_see_oldest_comments": "Mais antigos", "@comments_header_see_oldest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_be_the_first_comments": "Mande o primeiro comentário", "@comments_header_be_the_first_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_title": "Comentários", "@comments_page_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_no_more_to_load": "Sem mais comentários para carregar", "@comments_page_no_more_to_load": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_tap_to_retry": "Toque para tentar atualizar os comentários novamente.", "@comments_page_tap_to_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_tap_to_retry_replies": "Toque para tentar atualizar as respostas novamente.", "@comments_page_tap_to_retry_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_no_more_replies_to_load": "Sem mais respostas para carregar", "@comments_page_no_more_replies_to_load": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_replies_title": "Respostas", "@comments_page_replies_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "disable_post_comments": "Desativar comentários do post", "@disable_post_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "enable_post_comments": "Ativar comentários do post", "@enable_post_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_enabled_message": "Comentários ativados no post", "@comments_enabled_message": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_disabled_message": "Comentários desativados no post", "@comments_disabled_message": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_delete": "Excluir post", "@actions_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_deleted": "Post excluído", "@actions_deleted": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_delete_comment": "Excluir comentário", "@actions_delete_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_edit_comment": "Editar comentário", "@actions_edit_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_comment_deleted": "Comentário excluído", "@actions_comment_deleted": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_report_text": "Denunciar", "@actions_report_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_reported_text": "Denunciado", "@actions_reported_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_show_more_text": "Ver mais", "@actions_show_more_text": { "description": "Shown for posts with long text to expand the entire text.", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_years": "a", "@time_short_years": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 3y. Keep it as short as possible", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3y. Keep it as short as possible", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_year": "1a", "@time_short_one_year": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_weeks": "sem", "@time_short_weeks": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 5w.Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 5w.Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_week": "1sem", "@time_short_one_week": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_days": "d", "@time_short_days": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 3d. Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3d. Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_day": "1d", "@time_short_one_day": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_hours": "h", "@time_short_hours": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 3h.Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3h.Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_hour": "1h", "@time_short_one_hour": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_minutes": "min", "@time_short_minutes": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 13m.Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 13m.Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_seconds": "s", "@time_short_seconds": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 13s Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 13s Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_minute": "1min", "@time_short_one_minute": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_now_text": "agora", "@time_short_now_text": { "description": "Shown when a post was immediately posted, as in time posted is 'now'.Should be as few characters as possible.", "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/pt-BR/post_body_link_preview.arb b/assets/i18n/pt-BR/post_body_link_preview.arb new file mode 100644 index 000000000..fc41d5e67 --- /dev/null +++ b/assets/i18n/pt-BR/post_body_link_preview.arb @@ -0,0 +1,14 @@ +{ + "empty": "This link could not be previewed", + "@empty": { + "type": "text", + "placeholders": {} + }, + "error_with_description": "Failed to preview link with website error: {description}", + "@error_with_description": { + "type": "text", + "placeholders": { + "description": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/pt-BR/post_body_media.arb b/assets/i18n/pt-BR/post_body_media.arb new file mode 100644 index 000000000..dc7c9cc36 --- /dev/null +++ b/assets/i18n/pt-BR/post_body_media.arb @@ -0,0 +1,7 @@ +{ + "unsupported": "Tipo de mídia não suportado", + "@unsupported": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/pt-BR/post_uploader.arb b/assets/i18n/pt-BR/post_uploader.arb new file mode 100644 index 000000000..38a5a44e7 --- /dev/null +++ b/assets/i18n/pt-BR/post_uploader.arb @@ -0,0 +1,47 @@ +{ + "generic_upload_failed": "Falha ao enviar", + "@generic_upload_failed": { + "type": "text", + "placeholders": {} + }, + "creating_post": "Criando post...", + "@creating_post": { + "type": "text", + "placeholders": {} + }, + "compressing_media": "Comprimindo mídia...", + "@compressing_media": { + "type": "text", + "placeholders": {} + }, + "uploading_media": "Enviando mídia...", + "@uploading_media": { + "type": "text", + "placeholders": {} + }, + "publishing": "Publicando...", + "@publishing": { + "type": "text", + "placeholders": {} + }, + "processing": "Processando...", + "@processing": { + "type": "text", + "placeholders": {} + }, + "success": "Pronto!", + "@success": { + "type": "text", + "placeholders": {} + }, + "cancelling": "Cancelando", + "@cancelling": { + "type": "text", + "placeholders": {} + }, + "cancelled": "Cancelado!", + "@cancelled": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/pt-BR/posts_stream.arb b/assets/i18n/pt-BR/posts_stream.arb new file mode 100644 index 000000000..a09f46969 --- /dev/null +++ b/assets/i18n/pt-BR/posts_stream.arb @@ -0,0 +1,47 @@ +{ + "all_loaded": "🎉 Todas as publicações foram carregadas", + "@all_loaded": { + "type": "text", + "placeholders": {} + }, + "refreshing_drhoo_title": "Aguenta aí!", + "@refreshing_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "refreshing_drhoo_subtitle": "Atualizando as publicações.", + "@refreshing_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "empty_drhoo_title": "A linha do tempo está vazia.", + "@empty_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "empty_drhoo_subtitle": "Tente novamente em alguns segundos.", + "@empty_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "failed_drhoo_title": "Não foi possível carregar as publicações.", + "@failed_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "failed_drhoo_subtitle": "Tente novamente em alguns segundos", + "@failed_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "status_tile_empty": "Nenhuma publicação encontrada", + "@status_tile_empty": { + "type": "text", + "placeholders": {} + }, + "status_tile_no_more_to_load": "🎉 Todas as publicações foram carregadas", + "@status_tile_no_more_to_load": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/pt-BR/user.arb b/assets/i18n/pt-BR/user.arb index 632411b8e..7d7a79fc9 100644 --- a/assets/i18n/pt-BR/user.arb +++ b/assets/i18n/pt-BR/user.arb @@ -3,1345 +3,978 @@ "@thousand_postfix": { "description": "For eg. communty has 3k members", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "million_postfix": "M", "@million_postfix": { "description": "For eg. user has 3m followers", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "billion_postfix": "b", "@billion_postfix": { "description": "For eg. World circle has 7.5b people", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "translate_see_translation": "Mostrar tradução", "@translate_see_translation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "translate_show_original": "Mostrar original", "@translate_show_original": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_lists_account": "1 Conta", "@follows_lists_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_lists_accounts": "{prettyUsersCount} Contas", "@follows_lists_accounts": { "description": "prettyUsersCount will be 3m, 50k etc.. so we endup with final string 3k Accounts", "type": "text", "placeholders": { - "prettyUsersCount": { - - } + "prettyUsersCount": {} } }, "edit_profile_user_name_taken": "O nome de usuário @{username} já está em uso", "@edit_profile_user_name_taken": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "profile_action_deny_connection": "Recusar pedido de conexão", "@profile_action_deny_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_action_user_blocked": "Usuário bloqueado", "@profile_action_user_blocked": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_action_user_unblocked": "Usuário desbloqueado", "@profile_action_user_unblocked": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_action_cancel_connection": "Cancelar pedido de conexão", "@profile_action_cancel_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_url_invalid_error": "Por favor, forneça uma url válida.", "@profile_url_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_location_length_error": "O local não pode ser maior que {maxLength} caracteres.", "@profile_location_length_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "profile_bio_length_error": "A bio não pode ser maior que {maxLength} caracteres.", "@profile_bio_length_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "follow_button_follow_text": "Seguir", "@follow_button_follow_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "follow_button_unfollow_text": "Parar de seguir", + "follow_button_unfollow_text": "Deixar de seguir", "@follow_button_unfollow_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_username": "Nome de usuário", "@edit_profile_username": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_update_account_lists": "Atualizar listas de contas", "@add_account_update_account_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_to_lists": "Adicionar conta à lista", "@add_account_to_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_update_lists": "Atualizar listas", "@add_account_update_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_save": "Salvar", "@add_account_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_done": "Concluído", "@add_account_done": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_success": "Sucesso", "@add_account_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "emoji_field_none_selected": "Nenhum emoji selecionado", "@emoji_field_none_selected": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "emoji_search_none_found": "Nenhum emoji encontrado para '{searchQuery}'.", "@emoji_search_none_found": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "follow_lists_title": "Minhas listas", "@follow_lists_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_lists_search_for": "Procurar por uma lista...", "@follow_lists_search_for": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_lists_no_list_found": "Nenhuma lista encontrada.", "@follow_lists_no_list_found": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_lists_no_list_found_for": "Nenhuma lista encontrada para '{searchQuery}'", "@follow_lists_no_list_found_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "list_name_empty_error": "O nome da lista não pode ficar vazio.", "@list_name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "list_name_range_error": "O nome da lista não deve ter mais de {maxLength} caracteres.", "@list_name_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "circle_name_empty_error": "O nome do círculo não pode ficar vazio.", "@circle_name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "circle_name_range_error": "O nome do círculo não deve ter mais de {maxLength} caracteres.", "@circle_name_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "save_follows_list_name": "Nome", "@save_follows_list_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_hint_text": "ex: Viagem, Fotografia", "@save_follows_list_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_name_taken": "O nome de lista '{listName}' já está sendo usado", "@save_follows_list_name_taken": { "type": "text", "placeholders": { - "listName": { - - } + "listName": {} } }, "save_follows_list_emoji": "Emoji", "@save_follows_list_emoji": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_users": "Usuários", "@save_follows_list_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_edit": "Editar lista", "@save_follows_list_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_create": "Criar lista", "@save_follows_list_create": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_save": "Salvar", "@save_follows_list_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_emoji_required_error": "Emoji necessário", "@save_follows_list_emoji_required_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_list_edit": "Editar", "@follows_list_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_list_header_title": "Usuários", "@follows_list_header_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_name": "Nome", "@edit_profile_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_url": "Url", "@edit_profile_url": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_location": "Localização", "@edit_profile_location": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_bio": "Bio", "@edit_profile_bio": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_followers_count": "Número de seguidores", "@edit_profile_followers_count": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "edit_profile_community_posts": "Publicações em comunidades", + "@edit_profile_community_posts": { + "type": "text", + "placeholders": {} }, "edit_profile_title": "Editar perfil", "@edit_profile_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_save_text": "Salvar", "@edit_profile_save_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_pick_image": "Escolher imagem", "@edit_profile_pick_image": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_delete": "Excluir", "@edit_profile_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_pick_image_error_too_large": "Imagem muito grande (limite: {limit} MB)", "@edit_profile_pick_image_error_too_large": { "type": "text", "placeholders": { - "limit": { - - } + "limit": {} } }, "tile_following": " · Seguindo", "@tile_following": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "following_text": "Seguindo", "@following_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "following_resource_name": "usuários seguidos", "@following_resource_name": { "description": "Eg: Search followed users.., No followed users found. etc ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "tile_delete": "Excluir", "@tile_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite": "Convidar", "@invite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "uninvite": "Cancelar convite", "@uninvite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_member": "Membro", "@invite_member": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_someone_message": "Ei! Eu gostaria de convidar você para a Okuna. Primeiro, baixe o app no iTunes ({iosLink}) ou na Play Store ({androidLink}). Depois, copie e cole o seguinte link de convite no formulário de criação de conta no app da Okuna: {inviteLink}", "@invite_someone_message": { "type": "text", "placeholders": { - "iosLink": { - - }, - "androidLink": { - - }, - "inviteLink": { - - } + "iosLink": {}, + "androidLink": {}, + "inviteLink": {} } }, "connections_header_circle_desc": "O círculo com todas as suas conexões é adicionado.", "@connections_header_circle_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connections_header_users": "Usuários", "@connections_header_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connection_pending": "Pendente", "@connection_pending": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connection_circle_edit": "Editar", "@connection_circle_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connections_circle_delete": "Excluir", "@connections_circle_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_name": "Nome", "@save_connection_circle_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_hint": "ex: Amigos, Família, Trabalho.", "@save_connection_circle_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_color_name": "Cor", "@save_connection_circle_color_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_color_hint": "(Toque para alterar)", "@save_connection_circle_color_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_users": "Usuários", "@save_connection_circle_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_edit": "Editar círculo", "@save_connection_circle_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_create": "Criar círculo", "@save_connection_circle_create": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_save": "Salvar", "@save_connection_circle_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_connection_circle_save": "Salvar", "@update_connection_circle_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_connection_circle_updated": "Conexão atualizada", "@update_connection_circle_updated": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_connection_circles_title": "Atualizar círculos de conexão", "@update_connection_circles_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_connection_with": "Confirmar a conexão com {userName}", "@confirm_connection_with": { "type": "text", "placeholders": { - "userName": { - - } + "userName": {} } }, "confirm_connection_add_connection": "Adicionar conexão ao círculo", "@confirm_connection_add_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_connection_connection_confirmed": "Conexão confirmada", "@confirm_connection_connection_confirmed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_connection_confirm_text": "Confirmar", "@confirm_connection_confirm_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connect_to_user_connect_with_username": "Conectar-se com {userName}", "@connect_to_user_connect_with_username": { "type": "text", "placeholders": { - "userName": { - - } + "userName": {} } }, "connect_to_user_add_connection": "Adicionar conexão ao círculo", "@connect_to_user_add_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connect_to_user_done": "Pronto", "@connect_to_user_done": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connect_to_user_request_sent": "Pedido de conexão enviado", "@connect_to_user_request_sent": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "remove_account_from_list": "Remover conta das listas", "@remove_account_from_list": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "remove_account_from_list_success": "Sucesso", "@remove_account_from_list_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_title": "Confirmação", "@confirm_block_user_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_info": "Vocês não verão os posts um do outro nem serão capazes de interagir de qualquer forma.", "@confirm_block_user_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_yes": "Sim", "@confirm_block_user_yes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_no": "Não", "@confirm_block_user_no": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_blocked": "Usuário bloqueado.", "@confirm_block_user_blocked": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_question": "Tem certeza de que deseja bloquear @{username}?", "@confirm_block_user_question": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "save_connection_circle_name_taken": "O nome de círculo '{takenConnectionsCircleName}' já está em uso", "@save_connection_circle_name_taken": { "type": "text", "placeholders": { - "takenConnectionsCircleName": { - - } + "takenConnectionsCircleName": {} } }, "timeline_filters_title": "Filtros da linha do tempo", "@timeline_filters_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_search_desc": "Procurar por círculos e listas...", "@timeline_filters_search_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_clear_all": "Limpar tudo", "@timeline_filters_clear_all": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_apply_all": "Aplicar filtros", "@timeline_filters_apply_all": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_circles": "Círculos", "@timeline_filters_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_lists": "Listas", "@timeline_filters_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "followers_title": "Seguidores", "@followers_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follower_singular": "seguidor", "@follower_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follower_plural": "seguidores", "@follower_plural": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_title": "Excluir a minha conta", "@delete_account_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_current_pwd": "Senha atual", "@delete_account_current_pwd": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_current_pwd_hint": "Digite a sua senha atual", "@delete_account_current_pwd_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_next": "Avançar", "@delete_account_next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_title": "Confirmação", "@delete_account_confirmation_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_desc": "Tem certeza de que deseja excluir sua conta?", "@delete_account_confirmation_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_desc_info": "Esta é uma ação permanente e não pode ser desfeita.", "@delete_account_confirmation_desc_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_no": "Não", "@delete_account_confirmation_no": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_yes": "Sim", "@delete_account_confirmation_yes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_goodbye": "Adeus 😢", "@delete_account_confirmation_goodbye": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_create_title": "Criar convite", "@invites_create_create_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_edit_title": "Editar convite", "@invites_create_edit_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_save": "Salvar", "@invites_create_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_create": "Criar", "@invites_create_create": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_name_title": "Apelido", "@invites_create_name_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_name_hint": "ex: Joãozinho", "@invites_create_name_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_pending": "Pendente", "@invites_pending": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_delete": "Excluir", "@invites_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_invite_text": "Convidar", "@invites_invite_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_yourself": "Compartilhe o convite você mesmo", "@invites_share_yourself": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_yourself_desc": "Escolha um app de mensagens, etc.", "@invites_share_yourself_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_email": "Compartilhe o convite por email", "@invites_share_email": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_text": "Email", "@invites_email_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_hint": "ex: joaozinho@email.com", "@invites_email_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_invite_text": "Convite por email", "@invites_email_invite_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_send_text": "Enviar", "@invites_email_send_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_sent_text": "Email de convite enviado", "@invites_email_sent_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_email_desc": "Enviaremos um email de convite com instruções em seu nome", "@invites_share_email_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_edit_text": "Editar", "@invites_edit_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_title": "Meus convites", "@invites_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_accepted_title": "Aceitos", "@invites_accepted_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_accepted_group_name": "convites aceitos", "@invites_accepted_group_name": { "description": "Egs where this will end up: Accepted invites (capitalised title), Search accepted invites, See all accepted invites ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_accepted_group_item_name": "convite aceito", "@invites_accepted_group_item_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_pending_group_name": "convites pendentes", "@invites_pending_group_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_pending_group_item_name": "convite pendente", "@invites_pending_group_item_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_none_used": "Parece que você não usou nenhum convite.", "@invites_none_used": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_none_left": "Você não tem convites disponíveis.", "@invites_none_left": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_invite_a_friend": "Convidar um amigo", "@invites_invite_a_friend": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_refresh": "Atualizar", "@invites_refresh": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "language_settings_title": "Configurações de idioma", "@language_settings_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "language_settings_save": "Salvar", "@language_settings_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "language_settings_saved_success": "Idioma alterado com sucesso", "@language_settings_saved_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "groups_see_all": "Ver {groupName}", "@groups_see_all": { "description": "Can be, See all joined communities, See all pending invites, See all moderated communities etc. ", "type": "text", "placeholders": { - "groupName": { - - } + "groupName": {} } }, "invites_joined_with": "Entrou com o nome de usuário @{username}", "@invites_joined_with": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "invites_pending_email": "Pendente, convite enviado para o email {email}", "@invites_pending_email": { "type": "text", "placeholders": { - "email": { - - } + "email": {} } }, "timeline_filters_no_match": "Nada encontrado para '{searchQuery}'.", "@timeline_filters_no_match": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "clear_application_cache_text": "Limpar cache", "@clear_application_cache_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_application_cache_desc": "Limpar cache de posts, contas, imagens e mais.", "@clear_application_cache_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_application_cache_success": "Cache limpo com sucesso", "@clear_application_cache_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_application_cache_failure": "Não foi possível limpar o cache", "@clear_application_cache_failure": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_title": "Rejeição das diretrizes", "@confirm_guidelines_reject_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_info": "Você não pode usar a Okuna até aceitar as diretrizes.", "@confirm_guidelines_reject_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_chat_with_team": "Converse com a equipe.", "@confirm_guidelines_reject_chat_with_team": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_chat_immediately": "Inicie o chat agora.", "@confirm_guidelines_reject_chat_immediately": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_chat_community": "Converse com a comunidade.", "@confirm_guidelines_reject_chat_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_join_slack": "Junte-se ao canal no Slack.", "@confirm_guidelines_reject_join_slack": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_go_back": "Voltar", "@confirm_guidelines_reject_go_back": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_delete_account": "Excluir a minha conta", "@confirm_guidelines_reject_delete_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "guidelines_desc": "Por favor, dedique este momento para ler e aceitar as nossas diretrizes.", "@guidelines_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "guidelines_accept": "Aceitar", "@guidelines_accept": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "guidelines_reject": "Rejeitar", "@guidelines_reject": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_title": "Alterar Email", "@change_email_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_email_text": "Email", "@change_email_email_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_hint_text": "Digite seu novo email", "@change_email_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_error": "Este email já está registrado", "@change_email_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_save": "Salvar", "@change_email_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_success_info": "Enviamos um link de confirmação para seu novo endereço de email, clique nele para verificar seu novo email", "@change_email_success_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_title": "Limpar preferências", "@clear_app_preferences_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_desc": "Limpe as preferências do aplicativo. Atualmente, isso influencia apenas a ordem preferida dos comentários.", "@clear_app_preferences_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_cleared_successfully": "Preferências limpas com sucesso", "@clear_app_preferences_cleared_successfully": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "email_verification_successful": "Incrível! Seu email foi verificado", "@email_verification_successful": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "email_verification_error": "Opa! Seu token não era válido ou expirou, por favor tente novamente", "@email_verification_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_error": "Não foi possível limpar as preferências", "@clear_app_preferences_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "disconnect_from_user_success": "Desconectado com sucesso", "@disconnect_from_user_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "block_user": "Bloquear usuário", "@block_user": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "unblock_user": "Desbloquear usuário", "@unblock_user": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "disconnect_from_user": "Desconectar-se de {userName}", "@disconnect_from_user": { "type": "text", "placeholders": { - "userName": { - - } + "userName": {} } }, "circle_peoples_count": "{prettyUsersCount} pessoas", "@circle_peoples_count": { "type": "text", "placeholders": { - "prettyUsersCount": { - - } + "prettyUsersCount": {} } }, "follows_list_accounts_count": "{prettyUsersCount} contas", "@follows_list_accounts_count": { "type": "text", "placeholders": { - "prettyUsersCount": { - - } + "prettyUsersCount": {} } } } \ No newline at end of file diff --git a/assets/i18n/pt-BR/user_search.arb b/assets/i18n/pt-BR/user_search.arb index 900468509..dd061d27c 100644 --- a/assets/i18n/pt-BR/user_search.arb +++ b/assets/i18n/pt-BR/user_search.arb @@ -2,32 +2,24 @@ "search_text": "Pesquisar...", "@search_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities": "Comunidades", "@communities": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "users": "Usuários", "@users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "list_search_text": "Pesquisar {resourcePluralName} ...", "@list_search_text": { "description": "resourcePluralName can take many forms foreg. Search members... , Search accepted invites, Search communities.. etc.", "type": "text", "placeholders": { - "resourcePluralName": { - - } + "resourcePluralName": {} } }, "list_no_results_found": "Sem {resourcePluralName}.", @@ -35,66 +27,50 @@ "description": "Used in a generic list widget. Can be No users found. No communities found. No pending invites found. Its always a plural. ", "type": "text", "placeholders": { - "resourcePluralName": { - - } + "resourcePluralName": {} } }, "list_refresh_text": "Atualizar", "@list_refresh_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "list_retry": "Toque para tentar novamente.", "@list_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "cancel": "Cancelar", "@cancel": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "searching_for": "Procurando por '{searchQuery}'", "@searching_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "no_results_for": "Nenhum resultado para '{searchQuery}'.", "@no_results_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "no_communities_for": "Nenhuma comunidade encontrada para '{searchQuery}'.", "@no_communities_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "no_users_for": "Nenhum usuário encontrado para '{searchQuery}'.", "@no_users_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } } } \ No newline at end of file diff --git a/assets/i18n/pt-BR/video_picker.arb b/assets/i18n/pt-BR/video_picker.arb new file mode 100644 index 000000000..c3c1cda88 --- /dev/null +++ b/assets/i18n/pt-BR/video_picker.arb @@ -0,0 +1,12 @@ +{ + "from_gallery": "Galeria", + "@from_gallery": { + "type": "text", + "placeholders": {} + }, + "from_camera": "Câmera", + "@from_camera": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/sv-SE/application_settings.arb b/assets/i18n/sv-SE/application_settings.arb new file mode 100644 index 000000000..a6f5762cb --- /dev/null +++ b/assets/i18n/sv-SE/application_settings.arb @@ -0,0 +1,82 @@ +{ + "videos": "Videor", + "@videos": { + "type": "text", + "placeholders": {} + }, + "link_previews": "Förhandsgranskning av länkar", + "@link_previews": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay": "Automatisk uppspelning", + "@videos_autoplay": { + "type": "text", + "placeholders": {} + }, + "link_previews_show": "Visa", + "@link_previews_show": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_always": "Alltid", + "@videos_autoplay_always": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_wifi_only": "Endast Wifi", + "@videos_autoplay_wifi_only": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_never": "Aldrig", + "@videos_autoplay_never": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_always": "Alltid", + "@link_previews_autoplay_always": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_wifi_only": "Endast Wifi", + "@link_previews_autoplay_wifi_only": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_never": "Aldrig", + "@link_previews_autoplay_never": { + "type": "text", + "placeholders": {} + }, + "videos_sound": "Ljud", + "@videos_sound": { + "type": "text", + "placeholders": {} + }, + "tap_to_change": "(Tryck för att ändra)", + "@tap_to_change": { + "type": "text", + "placeholders": {} + }, + "videos_sound_enabled": "Aktiverat", + "@videos_sound_enabled": { + "type": "text", + "placeholders": {} + }, + "videos_sound_disabled": "Inaktiverat", + "@videos_sound_disabled": { + "type": "text", + "placeholders": {} + }, + "comment_sort_newest_first": "Nyast först", + "@comment_sort_newest_first": { + "type": "text", + "placeholders": {} + }, + "comment_sort_oldest_first": "Äldst först", + "@comment_sort_oldest_first": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/sv-SE/auth.arb b/assets/i18n/sv-SE/auth.arb index c7d62a013..ab8120ef7 100644 --- a/assets/i18n/sv-SE/auth.arb +++ b/assets/i18n/sv-SE/auth.arb @@ -1,745 +1,531 @@ { - "headline": "Bättre socialt.", + "headline": "Better social.", "@headline": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login": "Logga in", "@login": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "email_empty_error": "Du måste ange en e-postadress.", "@email_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "email_invalid_error": "Vänligen ange en giltig e-postadress.", "@email_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "username_empty_error": "Du måste ange ett användarnamn.", "@username_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "username_characters_error": "Ett användarnamn kan bara innehålla alfanumeriska tecken och understreck.", "@username_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "username_maxlength_error": "Ett användarnamn kan inte vara längre än {maxLength} tecken.", "@username_maxlength_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "create_account": "Registrera dig", "@create_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__lets_get_started": "Låt oss komma igång", "@create_acc__lets_get_started": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__welcome_to_beta": "Välkommen till betan!", "@create_acc__welcome_to_beta": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__previous": "Tillbaka", "@create_acc__previous": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__next": "Nästa", "@create_acc__next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__create_account": "Skapa konto", "@create_acc__create_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__paste_link": "Klistra in din registreringslänk nedan", "@create_acc__paste_link": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__paste_password_reset_link": "Klistra in din lösenordsåterställningslänk nedan", "@create_acc__paste_password_reset_link": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__paste_link_help_text": "Använd länken från Join Okuna-knappen i din inbjudan.", "@create_acc__paste_link_help_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__link_empty_error": "Du måste ange en länk.", "@create_acc__link_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__link_invalid_error": "Länken verkar vara ogiltig.", "@create_acc__link_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "password_empty_error": "Du måste ange ett lösenord.", "@password_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "password_range_error": "Lösenordet måste vara mellan {minLength} och {maxLength} tecken.", "@password_range_error": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, "name_empty_error": "Du måste ange ett namn.", "@name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "name_range_error": "Namnet måste vara mellan {minLength} och {maxLength} tecken.", "@name_range_error": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, "description_empty_error": "Du måste skriva en beskrivning.", "@description_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "description_range_error": "Beskrivningen måste vara mellan {minLength} och {maxLength} tecken.", "@description_range_error": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, "reset_password_success_title": "Allt klart!", "@reset_password_success_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reset_password_success_info": "Ditt lösenord har uppdaterats", "@reset_password_success_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__request_invite": "Ingen inbjudan? Be om en här.", "@create_acc__request_invite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__subscribe": "Begär", "@create_acc__subscribe": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__subscribe_to_waitlist_text": "Be om en inbjudan!", "@create_acc__subscribe_to_waitlist_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__congratulations": "Gratulerar!", "@create_acc__congratulations": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__your_subscribed": "Du är {0} på väntelistan.", "@create_acc__your_subscribed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__almost_there": "Nästan klart...", "@create_acc__almost_there": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_name": "Vad heter du?", "@create_acc__what_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__name_placeholder": "James Bond", "@create_acc__name_placeholder": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__name_empty_error": "😱 Du måste ange ett namn.", "@create_acc__name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__name_length_error": "😱 Ditt namn får inte vara längre än 50 tecken. (Vi är ledsna om det är det.)", "@create_acc__name_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__name_characters_error": "😅 Ett namn kan bara innehålla alfanumeriska tecken (för tillfället).", "@create_acc__name_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_username": "Välj ett användarnamn", "@create_acc__what_username": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_placeholder": "pablopicasso", "@create_acc__username_placeholder": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_empty_error": "😱 Du måste ange ett användarnamn.", "@create_acc__username_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_length_error": "😅 Ett användarnamn kan inte vara längre än 30 tecken.", "@create_acc__username_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_characters_error": "😅 Ett användarnamn kan bara innehålla alfanumeriska tecken och understreck.", "@create_acc__username_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_taken_error": "😩 Användarnamnet @%s är upptaget.", "@create_acc__username_taken_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_server_error": "😭 Vi har serverproblem, vänligen försök igen om några minuter.", "@create_acc__username_server_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_email": "Vad är din e-post?", "@create_acc__what_email": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_placeholder": "john_travolta@mail.com", "@create_acc__email_placeholder": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_empty_error": "😱 Du måste ange en e-postadress", "@create_acc__email_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_invalid_error": "😅 Vänligen ange en giltig e-postadress.", "@create_acc__email_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_taken_error": "🤔 Det finns redan ett konto med den e-postadressen.", "@create_acc__email_taken_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_server_error": "😭 Vi har serverproblem, vänligen försök igen om några minuter.", "@create_acc__email_server_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_password": "Välj ett lösenord", "@create_acc__what_password": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc_password_hint_text": "({minLength}-{maxLength} tecken)", "@create_acc_password_hint_text": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, "create_acc__what_password_subtext": "(minst 10 tecken)", "@create_acc__what_password_subtext": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__password_empty_error": "😱 Du måste ange ett lösenord", "@create_acc__password_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__password_length_error": "😅 Ett lösenord måste vara mellan 8 och 64 tecken.", "@create_acc__password_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_avatar": "Välj en profilbild", "@create_acc__what_avatar": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_tap_to_change": "Tryck för att ändra", "@create_acc__avatar_tap_to_change": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_choose_camera": "Ta ett foto", "@create_acc__avatar_choose_camera": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_choose_gallery": "Använd ett existerande foto", "@create_acc__avatar_choose_gallery": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_remove_photo": "Ta bort foto", "@create_acc__avatar_remove_photo": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done": "Skapa konto", "@create_acc__done": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_subtext": "Du kan ändra detta i dina profilinställningar.", "@create_acc__done_subtext": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_created": "Ditt konto har skapats med användarnamnet ", "@create_acc__done_created": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_loading_title": "Håll ut!", "@create_acc__submit_loading_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_loading_desc": "Vi skapar ditt konto.", "@create_acc__submit_loading_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_error_title": "Åh, nej...", "@create_acc__submit_error_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_error_desc_server": "😭 Vi har serverproblem, vänligen försök igen om några minuter.", "@create_acc__submit_error_desc_server": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_error_desc_validation": "😅 Det ser ut som att en del av informationen var felaktig, vänligen kontrollera den och försök igen.", "@create_acc__submit_error_desc_validation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_title": "Hurra!", "@create_acc__done_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_description": "Ditt konto har skapats.", "@create_acc__done_description": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__your_username_is": "Ditt användarnamn är ", "@create_acc__your_username_is": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__can_change_username": "Om du vill så kan du ändra det när som helst från din profilsida.", "@create_acc__can_change_username": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_continue": "Logga in", "@create_acc__done_continue": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__one_last_thing": "En sista sak...", "@create_acc__one_last_thing": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__register": "Registrera", "@create_acc__register": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__are_you_legal_age": "Är du äldre än 16 år?", "@create_acc__are_you_legal_age": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__login": "Fortsätt", "@login__login": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__previous": "Tillbaka", "@login__previous": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__title": "Välkommen tillbaka!", "@login__title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__subtitle": "Ange dina inloggningsuppgifter för att fortsätta.", "@login__subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__forgot_password": "Glömt lösenordet", "@login__forgot_password": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__forgot_password_subtitle": "Ange ditt användarnamn eller e-postadress", "@login__forgot_password_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_label": "Användarnamn", "@login__username_label": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__password_label": "Lösenord", "@login__password_label": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__email_label": "E-postadress", "@login__email_label": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__or_text": "Eller", "@login__or_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__password_empty_error": "Ett lösenord krävs.", "@login__password_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__password_length_error": "Lösenordet måste vara mellan 8 och 64 tecken.", "@login__password_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_empty_error": "Ett användarnamn krävs.", "@login__username_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_length_error": "Användarnamnet kan inte vara längre än 30 tecken.", "@login__username_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_characters_error": "Användarnamnet kan bara innehålla alfanumeriska tecken och understreck.", "@login__username_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__credentials_mismatch_error": "De angivna uppgifterna matchar inte.", "@login__credentials_mismatch_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__server_error": "Åh nej.. Vi har serverproblem. Vänligen försök igen om några minuter.", "@login__server_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__connection_error": "Vi kan inte nå våra servrar. Är du uppkopplad mot internet?", "@login__connection_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_title": "Ändra lösenord", "@change_password_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_current_pwd": "Nuvarande lösenord", "@change_password_current_pwd": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_current_pwd_hint": "Ange ditt nuvarande lösenord", "@change_password_current_pwd_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_current_pwd_incorrect": "Det angivna lösenordet var felaktigt", "@change_password_current_pwd_incorrect": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_new_pwd": "Nytt lösenord", "@change_password_new_pwd": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_new_pwd_hint": "Ange ditt nya lösenord", "@change_password_new_pwd_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_new_pwd_error": "Vänligen se till att lösenordet är mellan 10 och 100 tecken långt", "@change_password_new_pwd_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_save_text": "Spara", "@change_password_save_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_save_success": "Allt klart! Ditt lösenord har uppdaterats", "@change_password_save_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/sv-SE/community.arb b/assets/i18n/sv-SE/community.arb index ca388fb2e..d8f380519 100644 --- a/assets/i18n/sv-SE/community.arb +++ b/assets/i18n/sv-SE/community.arb @@ -2,475 +2,348 @@ "no": "Nej", "@no": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "yes": "Ja", "@yes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "button_staff": "Personal", "@button_staff": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "button_rules": "Regler", "@button_rules": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community": "gemenskap", "@community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities": "gemenskaper", "@communities": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "type_public": "Offentlig", "@type_public": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "type_private": "Privat", "@type_private": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "member_capitalized": "Medlem", "@member_capitalized": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "members_capitalized": "Medlemmar", "@members_capitalized": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "admin_desc": "Detta kommer tillåta medlemmen att redigera gemenskapens information, administratörer, moderatorer och bannade användare.", "@admin_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirmation_title": "Bekräftelse", "@confirmation_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "retry_loading_posts": "Tryck för att försöka igen", + "@retry_loading_posts": { + "type": "text", + "placeholders": {} }, "admin_add_confirmation": "Är du säker på att du vill lägga till @{username} som administratör för gemenskapen?", "@admin_add_confirmation": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "ban_confirmation": "Är du säker på att du vill banna @{username}?", "@ban_confirmation": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "ban_desc": "Detta kommer ta bort användaren från gemenskapen och hindra dem från att gå med igen.", "@ban_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderator_add_confirmation": "Är du säker på att du vill lägga till @{username} som gemenskapsmoderator?", "@moderator_add_confirmation": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "moderator_desc": "Detta kommer tillåta medlemmen att redigera gemenskapens information, moderatorer och bannade användare.", "@moderator_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderators_you": "Du", "@moderators_you": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderators_title": "Moderatorer", "@moderators_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "leave_desc": "Du kommer inte se dess inlägg i din tidslinje eller kunna skapa nya inlägg i den längre.", "@leave_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "leave_confirmation": "Är du säker på att du vill lämna gemenskapen?", "@leave_confirmation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderator_resource_name": "moderator", "@moderator_resource_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderators_resource_name": "moderatorer", "@moderators_resource_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_moderator_title": "Lägg till moderator", "@add_moderator_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_confirmation": "Är du säker på att du vill ta bort gemenskapen?", "@delete_confirmation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_desc": "Du kommer inte se dess inlägg i din tidslinje eller kunna skapa nya inlägg i den längre.", "@delete_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_manage_text": "Hantera", "@actions_manage_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_title": "Hantera gemenskap", "@manage_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_details_title": "Detaljer", "@manage_details_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_details_desc": "Ändra titel, namn, avatar, omslagsfoto och mer.", "@manage_details_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_admins_title": "Administratörer", "@manage_admins_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_admins_desc": "Se, lägg till och ta bort administratörer.", "@manage_admins_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_mods_title": "Moderatorer", "@manage_mods_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_mods_desc": "Se, lägg till och ta bort moderatorer.", "@manage_mods_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_banned_title": "Bannade användare", "@manage_banned_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_banned_desc": "Se, lägg till och ta bort bannade användare.", "@manage_banned_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_mod_reports_title": "Anmälningar", "@manage_mod_reports_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_mod_reports_desc": "Granska gemenskapens anmälningar.", "@manage_mod_reports_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_closed_posts_title": "Stängda inlägg", "@manage_closed_posts_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_closed_posts_desc": "Se och hantera stängda inlägg", "@manage_closed_posts_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_invite_title": "Bjud in folk", "@manage_invite_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_invite_desc": "Bjud in dina kontakter och följare till gemenskapen.", "@manage_invite_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_delete_title": "Ta bort gemenskapen", "@manage_delete_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_delete_desc": "Ta bort gemenskapen, för alltid.", "@manage_delete_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_leave_title": "Lämna gemenskapen", "@manage_leave_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_leave_desc": "Lämna gemenskapen.", "@manage_leave_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_add_favourite": "Lägg till gemenskapen bland dina favoriter", "@manage_add_favourite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_remove_favourite": "Ta bort gemenskapen från dina favoriter", "@manage_remove_favourite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "is_private": "Den här gemenskapen är privat.", "@is_private": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invited_by_member": "Du måste bli inbjuden av en medlem.", "@invited_by_member": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invited_by_moderator": "Du måste bli inbjuden av en moderator.", "@invited_by_moderator": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "refreshing": "Uppdaterar gemenskap", "@refreshing": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "posts": "Inlägg", "@posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "about": "Om", "@about": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "category": "kategori.", "@category": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "categories": "kategorier.", "@categories": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_administrators_title": "Lägg till administratör.", "@add_administrators_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_members": "Gemenskapens medlemmar", "@community_members": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "member": "medlem", "@member": { "description": "Currently not used in app, reserved for potential use. Could be used as: Showing 1 member", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "member_plural": "medlemmar", "@member_plural": { "description": "See all members ,Search all members", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrators_title": "Administratörer", "@administrators_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrator_text": "administratör", "@administrator_text": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 administrator", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrator_plural": "administratörer", "@administrator_plural": { "description": "Egs. Search administrators, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrator_you": "Du", "@administrator_you": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "user_you_text": "Du", "@user_you_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "pick_upto_max": "Välj upp till {max} kategorier", "@pick_upto_max": { "type": "text", "placeholders": { - "max": { - - } + "max": {} } }, "pick_atleast_min_category": "Du måste välja åtminstone {min} kategori.", @@ -478,9 +351,7 @@ "description": "You must pick at least 1 category", "type": "text", "placeholders": { - "min": { - - } + "min": {} } }, "pick_atleast_min_categories": "Du måste välja åtminstone {min} kategorier.", @@ -488,530 +359,386 @@ "description": "Eg. Variable min will be 3-5. You must pick at least (3-5) categories", "type": "text", "placeholders": { - "min": { - - } + "min": {} } }, "ban_user_title": "Banna användare", "@ban_user_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "banned_users_title": "Bannade användare", "@banned_users_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "banned_user_text": "bannad användare", "@banned_user_text": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 banned user", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "banned_users_text": "bannade användare", "@banned_users_text": { "description": "Egs. Search banned users, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorites_title": "Favoriter", "@favorites_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorite_community": "favoritgemenskap", "@favorite_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 favorite community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorite_communities": "favoritgemenskaper", "@favorite_communities": { "description": "Egs. Search favorite communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrated_title": "Administrerade", "@administrated_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrated_community": "administrerad gemenskap", "@administrated_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 administrated community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrated_communities": "administrerade gemenskaper", "@administrated_communities": { "description": "Egs. Search administrated communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_title": "Modererade", "@moderated_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_community": "modererad gemenskap", "@moderated_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 moderated community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_communities": "modererade gemenskaper", "@moderated_communities": { "description": "Egs. Search moderated communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "joined_title": "Medlem i", "@joined_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "joined_community": "gemenskap du är medlem i", "@joined_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 joined community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "joined_communities": "gemenskaper du är medlem i", "@joined_communities": { "description": "Egs. Search joined communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "join_communities_desc": "Gå med i gemenskaper för att se den här fliken komma till liv!", "@join_communities_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "refresh_text": "Uppdatera", "@refresh_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_none_found": "Inga trendiga gemenskaper hittades. Försök igen om några minuter.", "@trending_none_found": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_refresh": "Uppdatera", "@trending_refresh": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_in_all": "Trendiga från alla kategorier", "@trending_in_all": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_in_category": "Trendiga i {categoryName}", "@trending_in_category": { "type": "text", "placeholders": { - "categoryName": { - - } + "categoryName": {} } }, "communities_title": "Gemenskaper", "@communities_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities_no_category_found": "Inga kategorier hittades. Vänligen försök igen om några minuter.", "@communities_no_category_found": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities_refresh_text": "Uppdatera", "@communities_refresh_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities_all_text": "Alla", "@communities_all_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_to_community_title": "Bjud in till gemenskapen", "@invite_to_community_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_to_community_resource_singular": "kontakt eller följare", "@invite_to_community_resource_singular": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 connection or follower", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_to_community_resource_plural": "kontakter och följare", "@invite_to_community_resource_plural": { "description": "Egs. Search connections and followers, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorite_action": "Markera gemenskap som favorit", "@favorite_action": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "unfavorite_action": "Ta bort gemenskap från favoriter", "@unfavorite_action": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_label_title": "Titel", "@save_community_label_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_label_title_hint_text": "t. ex. Resor, Fotografering, Datorspel.", "@save_community_label_title_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_title": "Namn", "@save_community_name_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_title_hint_text": " t. ex. resor, fotografering, datorspel.", "@save_community_name_title_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_taken": "Gemenskapsnamnet '{takenName}' är upptaget", "@save_community_name_taken": { "type": "text", "placeholders": { - "takenName": { - - } + "takenName": {} } }, "save_community_name_label_color": "Färg", "@save_community_name_label_color": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_color_hint_text": "(Tryck för att ändra)", "@save_community_name_label_color_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_type": "Typ", "@save_community_name_label_type": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_type_hint_text": "(Tryck för att ändra)", "@save_community_name_label_type_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_member_invites": "Medlemsinbjudningar", "@save_community_name_member_invites": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_member_invites_subtitle": "Medlemmar kan bjuda in folk till gemenskapen", "@save_community_name_member_invites_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_category": "Kategori", "@save_community_name_category": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_desc_optional": "Beskrivning · Valfri", "@save_community_name_label_desc_optional": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_desc_optional_hint_text": "Vad handlar din gemenskap om?", "@save_community_name_label_desc_optional_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_rules_optional": "Regler · Valfritt", "@save_community_name_label_rules_optional": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_rules_optional_hint_text": "Finns det något som du vill att dina användare känner till?", "@save_community_name_label_rules_optional_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_member_adjective": "Medlem-adjektiv · Valfritt", "@save_community_name_label_member_adjective": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_member_adjective_hint_text": "t. ex. resenär, fotograf, gamer.", "@save_community_name_label_member_adjective_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_members_adjective": "Medlemmar-adjektiv · Valfritt", "@save_community_name_label_members_adjective": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_members_adjective_hint_text": "t. ex. resenärer, fotografer, gamers.", "@save_community_name_label_members_adjective_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_edit_community": "Redigera gemenskap", "@save_community_edit_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_create_community": "Skapa gemenskap", "@save_community_create_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_save_text": "Spara", "@save_community_save_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_create_text": "Skapa", "@save_community_create_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_invite_people_title": "Bjud in folk till gemenskapen", "@actions_invite_people_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "join_community": "Gå med", "@join_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "leave_community": "Lämna", "@leave_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_staff": "Gemenskapens personal", "@community_staff": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_singular": "inlägg", "@post_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_plural": "inlägg", "@post_plural": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "rules_title": "Gemenskapens regler", "@rules_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "rules_text": "Regler", "@rules_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "name_characters_error": "Ett namn kan bara innehålla alfanumeriska tecken och understreck.", "@name_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "name_range_error": "Namnet får inte vara längre än {maxLength} tecken.", "@name_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "name_empty_error": "Du måste ange ett namn.", "@name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "title_range_error": "Titeln får inte vara längre än {maxLength} tecken.", "@title_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "title_empty_error": "Du måste ange en titel.", "@title_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "rules_range_error": "Reglerna får inte vara längre än {maxLength} tecken.", "@rules_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "rules_empty_error": "Regelfältet kan inte vara tomt.", "@rules_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "description_range_error": "Beskrivningen kan inte vara längre än {maxLength} tecken.", "@description_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "adjectives_range_error": "Adjektiv får inte vara längre än {maxLength} tecken.", @@ -1019,9 +746,7 @@ "description": "This refers to the customisable adjectives assigned to community members,eg. 1k travellers,5k photographers", "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } } } \ No newline at end of file diff --git a/assets/i18n/sv-SE/contextual_account_search_box.arb b/assets/i18n/sv-SE/contextual_account_search_box.arb new file mode 100644 index 000000000..a4f64f337 --- /dev/null +++ b/assets/i18n/sv-SE/contextual_account_search_box.arb @@ -0,0 +1,8 @@ +{ + "suggestions": "Förslag", + "@suggestions": { + "description": "The title to display on the suggestions when searching for accounts when trying to mention someone.", + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/sv-SE/drawer.arb b/assets/i18n/sv-SE/drawer.arb index dae115338..0bda6b302 100644 --- a/assets/i18n/sv-SE/drawer.arb +++ b/assets/i18n/sv-SE/drawer.arb @@ -2,304 +2,223 @@ "menu_title": "Meny", "@menu_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "main_title": "Mitt Okuna", "@main_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_circles": "Mina cirklar", "@my_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_lists": "Mina listor", "@my_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_followers": "Mina följare", "@my_followers": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_following": "Mitt följande", "@my_following": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_invites": "Mina inbjudningar", "@my_invites": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_pending_mod_tasks": "Mina väntande modereringsuppgifter", "@my_pending_mod_tasks": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_mod_penalties": "Mina modereringsstraff", "@my_mod_penalties": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "app_account_text": "App & Konto", "@app_account_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "themes": "Teman", "@themes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_moderation": "Global moderering", "@global_moderation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile": "Profil", "@profile": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connections": "Mina kontakter", "@connections": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "lists": "Mina listor", "@lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "settings": "Inställningar", "@settings": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "application_settings": "Programinställningar", "@application_settings": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings": "Kontoinställningar", "@account_settings": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "developer_settings": "Utvecklarinställningar", + "@developer_settings": { + "type": "text", + "placeholders": {} }, "account_settings_change_email": "Ändra e-post", "@account_settings_change_email": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_change_password": "Ändra lösenord", "@account_settings_change_password": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_notifications": "Aviseringar", "@account_settings_notifications": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_language_text": "Språk", "@account_settings_language_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_language": "Språk ({currentUserLanguage})", "@account_settings_language": { "type": "text", "placeholders": { - "currentUserLanguage": { - - } + "currentUserLanguage": {} } }, "account_settings_blocked_users": "Blockerade användare", "@account_settings_blocked_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_delete_account": "Ta bort konto", "@account_settings_delete_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "help": "Hjälp och feedback", "@help": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "customize": "Anpassa", "@customize": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "logout": "Logga ut", "@logout": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_title": "Användbara länkar", "@useful_links_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines": "Okunas riktlinjer", "@useful_links_guidelines": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_desc": "Riktlinjerna vi alla förväntas att följa för en hälsosam och vänlig samvaro.", "@useful_links_guidelines_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_github": "Projekttavla på Github", "@useful_links_guidelines_github": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_github_desc": "Ta en titt på vad vi arbetar på just nu", "@useful_links_guidelines_github_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_feature_requests": "Funktionsförslag", "@useful_links_guidelines_feature_requests": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_feature_requests_desc": "Föreslå en ny funktion eller rösta för existerande förslag", "@useful_links_guidelines_feature_requests_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_bug_tracker": "Felrapportering", "@useful_links_guidelines_bug_tracker": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_bug_tracker_desc": "Rapportera ett fel eller rösta för existerande rapporter", "@useful_links_guidelines_bug_tracker_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_handbook": "Okunas handbok", "@useful_links_guidelines_handbook": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_handbook_desc": "En bok med allt du behöver veta om att använda plattformen", "@useful_links_guidelines_handbook_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_support": "Stöd Okuna", "@useful_links_support": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_support_desc": "Hitta ett sätt på vilket du kan hjälpa oss under vår resa!", "@useful_links_support_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_slack_channel": "Gemenskapens Slack-kanal", "@useful_links_slack_channel": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_slack_channel_desc": "En plats för diskussioner om allt om Okuna", "@useful_links_slack_channel_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/sv-SE/error.arb b/assets/i18n/sv-SE/error.arb index d368cb835..38952107d 100644 --- a/assets/i18n/sv-SE/error.arb +++ b/assets/i18n/sv-SE/error.arb @@ -2,15 +2,11 @@ "unknown_error": "Okänt fel", "@unknown_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "no_internet_connection": "Ingen internetuppkoppling", "@no_internet_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/sv-SE/image_picker.arb b/assets/i18n/sv-SE/image_picker.arb new file mode 100644 index 000000000..bf9495732 --- /dev/null +++ b/assets/i18n/sv-SE/image_picker.arb @@ -0,0 +1,19 @@ +{ + "from_gallery": "Från galleriet", + "@from_gallery": { + "type": "text", + "placeholders": {} + }, + "from_camera": "Från kameran", + "@from_camera": { + "type": "text", + "placeholders": {} + }, + "error_too_large": "Filen är för stor (gräns: {limit} MB)", + "@error_too_large": { + "type": "text", + "placeholders": { + "limit": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/sv-SE/moderation.arb b/assets/i18n/sv-SE/moderation.arb index 6d9c87088..c227a0515 100644 --- a/assets/i18n/sv-SE/moderation.arb +++ b/assets/i18n/sv-SE/moderation.arb @@ -2,502 +2,360 @@ "filters_title": "Modereringsfilter", "@filters_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_reset": "Återställ", "@filters_reset": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_verified": "Verifierad", "@filters_verified": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_apply": "Applicera filter", "@filters_apply": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_type": "Typ", "@filters_type": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_status": "Status", "@filters_status": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_other": "Övrigt", "@filters_other": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_review": "Granska", "@actions_review": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_chat_with_team": "Chatta med teamet", "@actions_chat_with_team": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_category_title": "Uppdatera kategori", "@update_category_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_category_save": "Spara", "@update_category_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_save": "Spara", "@update_description_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_title": "Redigera beskrivning", "@update_description_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_report_desc": "Anmäl beskrivning", "@update_description_report_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_report_hint_text": "t. ex. anmälan var...", "@update_description_report_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_status_save": "Spara", "@update_status_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_status_title": "Uppdatera status", "@update_status_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_title": "Granska modererat objekt", "@community_review_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_title": "Objekt", "@moderated_object_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_status": "Status", "@moderated_object_status": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_reports_count": "Antal anmälningar", "@moderated_object_reports_count": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_verified_by_staff": "Verifierad av Okunas personal", "@moderated_object_verified_by_staff": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_verified": "Verifierad", "@moderated_object_verified": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_true_text": "Sant", "@moderated_object_true_text": { - "description": "Eg. Moderated object verified by staff? true \/ false", + "description": "Eg. Moderated object verified by staff? true / false", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_false_text": "Falskt", "@moderated_object_false_text": { - "description": "Eg. Moderated object verified by staff? true \/ false", + "description": "Eg. Moderated object verified by staff? true / false", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_object": "Objekt", "@community_review_object": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_approve": "Godkänn", "@community_review_approve": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_reject": "avvisa", "@community_review_reject": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_item_verified": "Den här anmälan har verifierats", "@community_review_item_verified": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_review_title": "Granska modererat objekt", "@global_review_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_review_object_text": "Objekt", "@global_review_object_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_review_verify_text": "Verifiera", "@global_review_verify_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_review_unverify_text": "Av-verifiera", "@global_review_unverify_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_title": "Skicka anmälan", "@confirm_report_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_details": "Kan du delge extra information som kan vara relevant för anmälan?", "@confirm_report_provide_details": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_optional_info": "(Valfritt)", "@confirm_report_provide_optional_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_optional_hint_text": "Skriv här...", "@confirm_report_provide_optional_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_happen_next": "Detta kommer hända härnäst:", "@confirm_report_provide_happen_next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_happen_next_desc": "- Din anmälan skickas in anonymt.\n- Om du anmäler ett inlägg eller en kommentar så kommer anmälan skickas till Okunas personal och, om tillämpligt, gemenskapens moderatorer, och inlägget kommer döljas från ditt flöde.\n- Om du anmäler ett konto eller en gemenskap kommer anmälan skickas till Okunas personal.\n- Vi granskar anmälan och om den godkänns kommer innehållet tas bort och straff utmätas till de som är inblandade, från tillfällig avstängning till borttagning av konto beroende på hur allvarlig överträdelsen var.\n- Om anmälan bedöms vara gjord för att försöka skada en annan medlem eller gemenskap på plattformen utan att den angivna överträdelsen har skett kommer straff istället utmätas mot dig. \n", "@confirm_report_provide_happen_next_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_submit": "Jag förstår, skicka.", "@confirm_report_submit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_user_reported": "Användare anmäld", "@confirm_report_user_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_community_reported": "Gemenskap anmäld", "@confirm_report_community_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_post_reported": "Inlägg anmält", "@confirm_report_post_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_post_comment_reported": "Inläggskommentar anmäld", "@confirm_report_post_comment_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_item_reported": "Objekt anmält", "@confirm_report_item_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_moderated_objects": "Gemenskapens modererade objekt", "@community_moderated_objects": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "globally_moderated_objects": "Globalt modererade objekt", "@globally_moderated_objects": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "tap_to_retry": "Tryck för att försöka läsa in poster igen", "@tap_to_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_post_text": "Anmäl inlägg", "@report_post_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_post_text": "Du har anmält det här inlägget", "@you_have_reported_post_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_account_text": "Anmäl konto", "@report_account_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_account_text": "Du har anmält det här kontot", "@you_have_reported_account_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_community_text": "Anmäl gemenskap", "@report_community_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_community_text": "Du har anmält den här gemenskapen", "@you_have_reported_community_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_comment_text": "Anmäl kommentar", "@report_comment_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_comment_text": "Du har anmält den här kommentaren", "@you_have_reported_comment_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "description_text": "Beskrivning", "@description_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "no_description_text": "Ingen beskrivning", "@no_description_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "category_text": "Kategori", "@category_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reporter_text": "Anmälare", "@reporter_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reports_preview_title": "Anmälningar", "@reports_preview_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reports_preview_resource_reports": "anmälningar", "@reports_preview_resource_reports": { "description": "Usage: See all reports..", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reports_see_all": "Visa alla {resourceCount} {resourceName}", "@reports_see_all": { "description": "Usage: See all 4 reports.", "type": "text", "placeholders": { - "resourceCount": { - - }, - "resourceName": { - - } + "resourceCount": {}, + "resourceName": {} } }, "object_status_title": "Status", "@object_status_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_tasks_title": "Väntande modereringsuppgifter", "@my_moderation_tasks_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "pending_moderation_tasks_singular": "väntande modereringsuppgift", "@pending_moderation_tasks_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "pending_moderation_tasks_plural": "väntande modereringsuppgifter", "@pending_moderation_tasks_plural": { "description": "Eg. No pending moderation tasks found", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_penalties_title": "Modereringsstraff", "@my_moderation_penalties_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_penalties_resouce_singular": "modereringsstraff", "@my_moderation_penalties_resouce_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_penalties_resource_plural": "modereringsstraff", "@my_moderation_penalties_resource_plural": { "description": "See all moderation penalties, No moderation penalties found etc..", "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/sv-SE/notifications.arb b/assets/i18n/sv-SE/notifications.arb index 3d1d6554b..35c9e985c 100644 --- a/assets/i18n/sv-SE/notifications.arb +++ b/assets/i18n/sv-SE/notifications.arb @@ -1,4 +1,14 @@ { + "tab_general": "Allmänna", + "@tab_general": { + "type": "text", + "placeholders": {} + }, + "tab_requests": "Förfrågningar", + "@tab_requests": { + "type": "text", + "placeholders": {} + }, "settings_title": "Aviseringsinställningar", "@settings_title": { "type": "text", @@ -154,9 +164,9 @@ "type": "text", "placeholders": {} }, - "user_community_invite_tile": "[name] [username] har bjudit in dig till gemenskapen \/c\/{communityName}.", + "user_community_invite_tile": "[name] [username] har bjudit in dig till gemenskapen /c/{communityName}.", "@user_community_invite_tile": { - "description": "Eg.: James @jamest has invited you to join community \/c\/okuna.", + "description": "Eg.: James @jamest has invited you to join community /c/okuna.", "type": "text", "placeholders": { "communityName": {} diff --git a/assets/i18n/sv-SE/post.arb b/assets/i18n/sv-SE/post.arb index 802ec094c..95a7c4e4e 100644 --- a/assets/i18n/sv-SE/post.arb +++ b/assets/i18n/sv-SE/post.arb @@ -2,809 +2,600 @@ "open_post": "Öppna inlägg", "@open_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "close_post": "Stäng inlägg", "@close_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_opened": "Inlägg öppnat", "@post_opened": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_closed": "Inlägg stängt ", "@post_closed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_required_error": "Kommentaren kan inte vara tom.", "@comment_required_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_maxlength_error": "En kommentar kan inte vara längre än {maxLength} tecken.", "@comment_maxlength_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "timeline_posts_all_loaded": "🎉 Alla inlägg inlästa", "@timeline_posts_all_loaded": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_refreshing_drhoo_title": "Håll ut!", "@timeline_posts_refreshing_drhoo_title": { "type": "text", - "placeholders": { - - } - }, - "timeline_posts_refreshing_drhoo_subtitle": "Läser in din tidslinje.", - "@timeline_posts_refreshing_drhoo_subtitle": { - "type": "text", - "placeholders": { - - } - }, - "timeline_posts_no_more_drhoo_title": "Din tidslinje är tom.", - "@timeline_posts_no_more_drhoo_title": { - "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_no_more_drhoo_subtitle": "Följ användare eller gå med i en gemenskap för att komma igång!", "@timeline_posts_no_more_drhoo_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_failed_drhoo_title": "Din tidslinje kunde inte läsas in.", "@timeline_posts_failed_drhoo_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_failed_drhoo_subtitle": "Försök igen om några sekunder", "@timeline_posts_failed_drhoo_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_default_drhoo_title": "Det är något som inte stämmer.", "@timeline_posts_default_drhoo_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_default_drhoo_subtitle": "Försök läsa in tidslinjen igen.", "@timeline_posts_default_drhoo_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_refresh_posts": "Läs in inlägg", "@timeline_posts_refresh_posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "no_circles_for": "Inga kretsar hittades som matchar '{circlesSearchQuery}'.", "@no_circles_for": { "type": "text", "placeholders": { - "circlesSearchQuery": { - - } + "circlesSearchQuery": {} } }, "share_to_circles": "Dela med kretsar", "@share_to_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_post": " Inlägg", "@profile_counts_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_posts": " Inlägg", "@profile_counts_posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_followers": " Följare", "@profile_counts_followers": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_following": " Följer", "@profile_counts_following": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_follower": " Följare", "@profile_counts_follower": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "profile_retry_loading_posts": "Tryck för att försöka igen", + "@profile_retry_loading_posts": { + "type": "text", + "placeholders": {} }, "action_comment": "Kommentera", "@action_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "action_react": "Reagera", "@action_react": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "action_reply": "Svara", "@action_reply": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share": "Dela", "@share": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_to": "Dela med", "@share_to": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "sharing_post_to": "Delar inlägg med", "@sharing_post_to": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_shared_with": "Du delade med", "@you_shared_with": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "shared_privately_on": "Delat privat i", "@shared_privately_on": { "description": "Eg. Shared privately on @shantanu's circles. See following string, usernames_circles . Will combine this in future, needs refactoring.", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "usernames_circles": "@{postCreatorUsername}s kretsar", "@usernames_circles": { "type": "text", "placeholders": { - "postCreatorUsername": { - - } + "postCreatorUsername": {} } }, "share_community": "Dela", "@share_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_to_community": "Dela med en gemenskap", "@share_to_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_community_title": "En gemenskap", "@share_community_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_community_desc": "Dela inlägget med en gemenskap du är del av.", "@share_community_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_circles": "Mina kretsar", "@my_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_circles_desc": "Dela inlägget med en eller flera av dina kretsar.", "@my_circles_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "world_circle_name": "Världen", "@world_circle_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "search_circles": "Sök kretsar...", "@search_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reaction_list_tap_retry": "Tryck för att försöka läsa in reaktionerna igen.", "@reaction_list_tap_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_new": "Nytt inlägg", "@create_new": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "create_new_post_label": "Skapa ett nytt inlägg", + "@create_new_post_label": { + "type": "text", + "placeholders": {} + }, + "create_new_community_post_label": "Skapa ett nytt gemenskapsinlägg", + "@create_new_community_post_label": { + "type": "text", + "placeholders": {} + }, + "close_create_post_label": "Stäng nytt inlägg-rutan", + "@close_create_post_label": { + "type": "text", + "placeholders": {} }, "create_next": "Nästa", "@create_next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_photo": "Foto", "@create_photo": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "create_video": "Video", + "@create_video": { + "type": "text", + "placeholders": {} }, "commenter_post_text": "Skicka", "@commenter_post_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_write_something": "Skriv något...", "@commenter_write_something": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_title": "Redigera inlägg", "@edit_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_save": "Spara", "@edit_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_expanded_save": "Spara", "@commenter_expanded_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_expanded_join_conversation": "Gå med i konversationen...", "@commenter_expanded_join_conversation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_expanded_start_conversation": "Starta en konversation...", "@commenter_expanded_start_conversation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_expanded_edit_comment": "Redigera kommentar", "@commenter_expanded_edit_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "is_closed": "Stängt inlägg", "@is_closed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_reply_expanded_reply_comment": "Svar på kommentar", "@comment_reply_expanded_reply_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_reply_expanded_post": "Skicka", "@comment_reply_expanded_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_reply_expanded_reply_hint_text": "Ditt svar...", "@comment_reply_expanded_reply_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_posts_title": "Trendiga inlägg", "@trending_posts_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_posts_no_trending_posts": "Det finns inga trendiga inlägg. Försök uppdatera om några sekunder.", "@trending_posts_no_trending_posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_posts_refresh": "Uppdatera", "@trending_posts_refresh": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_view_all_comments": "Visa alla {commentsCount} kommentarer", "@comments_view_all_comments": { "type": "text", "placeholders": { - "commentsCount": { - - } + "commentsCount": {} } }, "comments_closed_post": "Stängt inlägg", "@comments_closed_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_disabled": "Kommentarsfältet avstängt", "@comments_disabled": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "text_copied": "Text kopierad!", "@text_copied": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_reactions_title": "Reaktioner på inlägget", "@post_reactions_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "have_not_shared_anything": "Du har inte delat något ännu.", "@have_not_shared_anything": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "user_has_not_shared_anything": "{name} har inte delat något ännu.", "@user_has_not_shared_anything": { "type": "text", "placeholders": { - "name": { - - } + "name": {} } }, "comments_header_newest_replies": "Senaste svaren", "@comments_header_newest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_newer": "Senare", "@comments_header_newer": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_view_newest_replies": "Visa de senaste svaren", "@comments_header_view_newest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_see_newest_replies": "Visa de senaste svaren", "@comments_header_see_newest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_oldest_replies": "Äldsta svaren", "@comments_header_oldest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_older": "Äldre", "@comments_header_older": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_view_oldest_replies": "Visa de äldsta svaren", "@comments_header_view_oldest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_see_oldest_replies": "Visa de äldsta svaren", "@comments_header_see_oldest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_be_the_first_replies": "Bli den första som skriver ett svar", "@comments_header_be_the_first_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_newest_comments": "Senaste kommentarerna", "@comments_header_newest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_view_newest_comments": "Visa de senaste kommentarerna", "@comments_header_view_newest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_see_newest_comments": "Visa de senaste kommentarerna", "@comments_header_see_newest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_oldest_comments": "Äldsta kommentarerna", "@comments_header_oldest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_view_oldest_comments": "Visa de äldsta kommentarerna", "@comments_header_view_oldest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_see_oldest_comments": "Visa de äldsta kommentarerna", "@comments_header_see_oldest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_be_the_first_comments": "Bli den första som skriver en kommentar", "@comments_header_be_the_first_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_title": "Inläggskommentarer", "@comments_page_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_no_more_to_load": "Inga fler kommentarer att läsa in", "@comments_page_no_more_to_load": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_tap_to_retry": "Tryck för att försöka läsa in kommentarerna igen.", "@comments_page_tap_to_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_tap_to_retry_replies": "Tryck för att försöka läsa in svaren igen.", "@comments_page_tap_to_retry_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_no_more_replies_to_load": "Inga fler svar att läsa in", "@comments_page_no_more_replies_to_load": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_replies_title": "Inläggssvar", "@comments_page_replies_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "disable_post_comments": "Stäng kommentarsfältet", "@disable_post_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "enable_post_comments": "Öppna kommentarsfältet", "@enable_post_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_enabled_message": "Kommentarer aktiverade för inlägget", "@comments_enabled_message": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_disabled_message": "Kommentarer inaktiverade för inlägget", "@comments_disabled_message": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_delete": "Ta bort inlägg", "@actions_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_deleted": "Inlägg borttaget", "@actions_deleted": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_delete_comment": "Ta bort kommentar", "@actions_delete_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_edit_comment": "Redigera kommentar", "@actions_edit_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_comment_deleted": "Kommentar borttagen", "@actions_comment_deleted": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_report_text": "Anmäl", "@actions_report_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_reported_text": "Anmäld", "@actions_reported_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_show_more_text": "Visa mer", "@actions_show_more_text": { "description": "Shown for posts with long text to expand the entire text.", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_years": "å", "@time_short_years": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 3y. Keep it as short as possible", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3y. Keep it as short as possible", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_year": "1å", "@time_short_one_year": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_weeks": "v", "@time_short_weeks": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 5w.Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 5w.Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_week": "1v", "@time_short_one_week": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_days": "d", "@time_short_days": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 3d. Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3d. Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_day": "1d", "@time_short_one_day": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_hours": "h", "@time_short_hours": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 3h.Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3h.Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_hour": "1h", "@time_short_one_hour": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_minutes": "m", "@time_short_minutes": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 13m.Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 13m.Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_seconds": "s", "@time_short_seconds": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 13s Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 13s Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_minute": "1m", "@time_short_one_minute": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_now_text": "nu", "@time_short_now_text": { "description": "Shown when a post was immediately posted, as in time posted is 'now'.Should be as few characters as possible.", "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/sv-SE/post_body_link_preview.arb b/assets/i18n/sv-SE/post_body_link_preview.arb new file mode 100644 index 000000000..1923da298 --- /dev/null +++ b/assets/i18n/sv-SE/post_body_link_preview.arb @@ -0,0 +1,14 @@ +{ + "empty": "Länken kunde inte förhandsvisas", + "@empty": { + "type": "text", + "placeholders": {} + }, + "error_with_description": "Webbsidan svarade med ett fel vid förhandsgranskning av länken: {description}", + "@error_with_description": { + "type": "text", + "placeholders": { + "description": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/sv-SE/post_body_media.arb b/assets/i18n/sv-SE/post_body_media.arb new file mode 100644 index 000000000..3a0b86e61 --- /dev/null +++ b/assets/i18n/sv-SE/post_body_media.arb @@ -0,0 +1,7 @@ +{ + "unsupported": "Mediatypen stöds inte", + "@unsupported": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/sv-SE/post_uploader.arb b/assets/i18n/sv-SE/post_uploader.arb new file mode 100644 index 000000000..9f92c1b36 --- /dev/null +++ b/assets/i18n/sv-SE/post_uploader.arb @@ -0,0 +1,47 @@ +{ + "generic_upload_failed": "Uppladdningen misslyckades", + "@generic_upload_failed": { + "type": "text", + "placeholders": {} + }, + "creating_post": "Skapar inlägget...", + "@creating_post": { + "type": "text", + "placeholders": {} + }, + "compressing_media": "Komprimerar media...", + "@compressing_media": { + "type": "text", + "placeholders": {} + }, + "uploading_media": "Laddar upp media...", + "@uploading_media": { + "type": "text", + "placeholders": {} + }, + "publishing": "Publicerar inlägget...", + "@publishing": { + "type": "text", + "placeholders": {} + }, + "processing": "Bearbetar inlägget...", + "@processing": { + "type": "text", + "placeholders": {} + }, + "success": "Klart!", + "@success": { + "type": "text", + "placeholders": {} + }, + "cancelling": "Avbryter", + "@cancelling": { + "type": "text", + "placeholders": {} + }, + "cancelled": "Avbrutet!", + "@cancelled": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/sv-SE/posts_stream.arb b/assets/i18n/sv-SE/posts_stream.arb new file mode 100644 index 000000000..75c8ff683 --- /dev/null +++ b/assets/i18n/sv-SE/posts_stream.arb @@ -0,0 +1,47 @@ +{ + "all_loaded": "🎉 Alla inlägg inlästa", + "@all_loaded": { + "type": "text", + "placeholders": {} + }, + "refreshing_drhoo_title": "Håll ut!", + "@refreshing_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "refreshing_drhoo_subtitle": "Uppdaterar flödet.", + "@refreshing_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "empty_drhoo_title": "Det här flödet är tomt.", + "@empty_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "empty_drhoo_subtitle": "Försök igen om några sekunder.", + "@empty_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "failed_drhoo_title": "Kunde inte läsa in flödet.", + "@failed_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "failed_drhoo_subtitle": "Försök igen om några sekunder", + "@failed_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "status_tile_empty": "Inga inlägg hittades", + "@status_tile_empty": { + "type": "text", + "placeholders": {} + }, + "status_tile_no_more_to_load": "🎉 Alla inlägg inlästa", + "@status_tile_no_more_to_load": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/sv-SE/user.arb b/assets/i18n/sv-SE/user.arb index c57d14a28..e2f9ac4ca 100644 --- a/assets/i18n/sv-SE/user.arb +++ b/assets/i18n/sv-SE/user.arb @@ -3,1345 +3,978 @@ "@thousand_postfix": { "description": "For eg. communty has 3k members", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "million_postfix": "mn", "@million_postfix": { "description": "For eg. user has 3m followers", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "billion_postfix": "md", "@billion_postfix": { "description": "For eg. World circle has 7.5b people", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "translate_see_translation": "Visa översättning", "@translate_see_translation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "translate_show_original": "Visa original", "@translate_show_original": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_lists_account": "1 Konto", "@follows_lists_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_lists_accounts": "{prettyUsersCount} Konton", "@follows_lists_accounts": { "description": "prettyUsersCount will be 3m, 50k etc.. so we endup with final string 3k Accounts", "type": "text", "placeholders": { - "prettyUsersCount": { - - } + "prettyUsersCount": {} } }, "edit_profile_user_name_taken": "Användarnamnet @{username} är upptaget", "@edit_profile_user_name_taken": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "profile_action_deny_connection": "Neka kontaktförfrågan", "@profile_action_deny_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_action_user_blocked": "Användare blockerad", "@profile_action_user_blocked": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_action_user_unblocked": "Användare avblockerad", "@profile_action_user_unblocked": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_action_cancel_connection": "Avbryt kontaktförfrågan", "@profile_action_cancel_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_url_invalid_error": "Vänligen ange en giltig URL.", "@profile_url_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_location_length_error": "En plats kan inte vara längre än {maxLength} tecken.", "@profile_location_length_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "profile_bio_length_error": "Bion kan inte vara längre än {maxLength} tecken.", "@profile_bio_length_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "follow_button_follow_text": "Följ", "@follow_button_follow_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_button_unfollow_text": "Sluta följa", "@follow_button_unfollow_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_username": "Användarnamn", "@edit_profile_username": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_update_account_lists": "Uppdatera kontolistor", "@add_account_update_account_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_to_lists": "Lägg till konto i lista", "@add_account_to_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_update_lists": "Uppdatera listor", "@add_account_update_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_save": "Spara", "@add_account_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_done": "Klar", "@add_account_done": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_success": "Kontot lades till", "@add_account_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "emoji_field_none_selected": "Ingen emoji vald", "@emoji_field_none_selected": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "emoji_search_none_found": "Ingen emoji hittades som matchar '{searchQuery}'.", "@emoji_search_none_found": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "follow_lists_title": "Mina listor", "@follow_lists_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_lists_search_for": "Sök efter en lista...", "@follow_lists_search_for": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_lists_no_list_found": "Inga listor hittades.", "@follow_lists_no_list_found": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_lists_no_list_found_for": "Inga listor hittades för '{searchQuery}'", "@follow_lists_no_list_found_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "list_name_empty_error": "Du måste ge listan ett namn.", "@list_name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "list_name_range_error": "Listans namn får inte vara längre än {maxLength} tecken.", "@list_name_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "circle_name_empty_error": "Du måste ge kretsen ett namn.", "@circle_name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "circle_name_range_error": "Kretsens namn får inte vara längre än {maxLength} tecken.", "@circle_name_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "save_follows_list_name": "Namn", "@save_follows_list_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_hint_text": "t. ex. Resor, Fotografering", "@save_follows_list_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_name_taken": "Listnamnet '{listName}' är upptaget", "@save_follows_list_name_taken": { "type": "text", "placeholders": { - "listName": { - - } + "listName": {} } }, "save_follows_list_emoji": "Emoji", "@save_follows_list_emoji": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_users": "Användare", "@save_follows_list_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_edit": "Redigera lista", "@save_follows_list_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_create": "Skapa lista", "@save_follows_list_create": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_save": "Spara", "@save_follows_list_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_emoji_required_error": "En emoji krävs", "@save_follows_list_emoji_required_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_list_edit": "Redigera", "@follows_list_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_list_header_title": "Användare", "@follows_list_header_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_name": "Namn", "@edit_profile_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_url": "Url", "@edit_profile_url": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_location": "Plats", "@edit_profile_location": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_bio": "Bio", "@edit_profile_bio": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_followers_count": "Följarantal", "@edit_profile_followers_count": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "edit_profile_community_posts": "Gemenskapsinlägg", + "@edit_profile_community_posts": { + "type": "text", + "placeholders": {} }, "edit_profile_title": "Redigera profil", "@edit_profile_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_save_text": "Spara", "@edit_profile_save_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_pick_image": "Välj bild", "@edit_profile_pick_image": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_delete": "Ta bort", "@edit_profile_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_pick_image_error_too_large": "Bilden är för stor (gräns: {limit} MB)", "@edit_profile_pick_image_error_too_large": { "type": "text", "placeholders": { - "limit": { - - } + "limit": {} } }, "tile_following": " · Följer", "@tile_following": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "following_text": "Följer", "@following_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "following_resource_name": "följda användare", "@following_resource_name": { "description": "Eg: Search followed users.., No followed users found. etc ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "tile_delete": "Ta bort", "@tile_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite": "Bjud in", "@invite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "uninvite": "Avbryt inbjudan", "@uninvite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_member": "Medlem", "@invite_member": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_someone_message": "Hej, jag vill bjuda in dig till Okuna. Först, ladda ner appen från iTunes ({iosLink}) eller Play Store ({androidLink}). Sedan klistrar du in din personliga inbjudningslänk i 'Registrera dig'-formuläret i Okuna-appen: {inviteLink}", "@invite_someone_message": { "type": "text", "placeholders": { - "iosLink": { - - }, - "androidLink": { - - }, - "inviteLink": { - - } + "iosLink": {}, + "androidLink": {}, + "inviteLink": {} } }, "connections_header_circle_desc": "Kretsen alla dina kontakter läggs till i.", "@connections_header_circle_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connections_header_users": "Användare", "@connections_header_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connection_pending": "Väntande", "@connection_pending": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connection_circle_edit": "Redigera", "@connection_circle_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connections_circle_delete": "Ta bort", "@connections_circle_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_name": "Namn", "@save_connection_circle_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_hint": "t. ex. Vänner, Familj, Jobb.", "@save_connection_circle_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_color_name": "Färg", "@save_connection_circle_color_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_color_hint": "(Tryck för att ändra)", "@save_connection_circle_color_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_users": "Användare", "@save_connection_circle_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_edit": "Redigera krets", "@save_connection_circle_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_create": "Skapa krets", "@save_connection_circle_create": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_save": "Spara", "@save_connection_circle_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_connection_circle_save": "Spara", "@update_connection_circle_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_connection_circle_updated": "Kontakt uppdaterad", "@update_connection_circle_updated": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_connection_circles_title": "Uppdatera kontaktkretsar", "@update_connection_circles_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_connection_with": "Bekräfta {userName}s kontaktförfrågan", "@confirm_connection_with": { "type": "text", "placeholders": { - "userName": { - - } + "userName": {} } }, "confirm_connection_add_connection": "Lägg till kontakt i krets", "@confirm_connection_add_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_connection_connection_confirmed": "Kontaktförfrågan bekräftad", "@confirm_connection_connection_confirmed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_connection_confirm_text": "Bekräfta", "@confirm_connection_confirm_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connect_to_user_connect_with_username": "Lägg till {userName} som kontakt", "@connect_to_user_connect_with_username": { "type": "text", "placeholders": { - "userName": { - - } + "userName": {} } }, "connect_to_user_add_connection": "Lägg till kontakt i krets", "@connect_to_user_add_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connect_to_user_done": "Klar", "@connect_to_user_done": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connect_to_user_request_sent": "Kontaktförfrågan skickad", "@connect_to_user_request_sent": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "remove_account_from_list": "Ta bort konto från listor", "@remove_account_from_list": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "remove_account_from_list_success": "Konto borttaget från listor", "@remove_account_from_list_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_title": "Bekräftelse", "@confirm_block_user_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_info": "Ni kommer inte kunna se varandras inlägg eller kunna interagera med varandra.", "@confirm_block_user_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_yes": "Ja", "@confirm_block_user_yes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_no": "Nej", "@confirm_block_user_no": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_blocked": "Användare blockerad.", "@confirm_block_user_blocked": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_question": "Är du säker på att du vill blockera @{username}?", "@confirm_block_user_question": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "save_connection_circle_name_taken": "Kretsnamnet '{takenConnectionsCircleName}' är upptaget", "@save_connection_circle_name_taken": { "type": "text", "placeholders": { - "takenConnectionsCircleName": { - - } + "takenConnectionsCircleName": {} } }, "timeline_filters_title": "Tidslinjefilter", "@timeline_filters_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_search_desc": "Sök efter kretsar och listor...", "@timeline_filters_search_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_clear_all": "Återställ", "@timeline_filters_clear_all": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_apply_all": "Applicera filter", "@timeline_filters_apply_all": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_circles": "Kretsar", "@timeline_filters_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_lists": "Listor", "@timeline_filters_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "followers_title": "Följare", "@followers_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follower_singular": "följare", "@follower_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follower_plural": "följare", "@follower_plural": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_title": "Ta bort konto", "@delete_account_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_current_pwd": "Nuvarande lösenord", "@delete_account_current_pwd": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_current_pwd_hint": "Ange ditt nuvarande lösenord", "@delete_account_current_pwd_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_next": "Nästa", "@delete_account_next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_title": "Bekräftelse", "@delete_account_confirmation_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_desc": "Är du säker på att du vill ta bort ditt konto?", "@delete_account_confirmation_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_desc_info": "Detta är permanent och kan inte ångras senare.", "@delete_account_confirmation_desc_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_no": "Nej", "@delete_account_confirmation_no": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_yes": "Ja", "@delete_account_confirmation_yes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_goodbye": "Hej då 😢", "@delete_account_confirmation_goodbye": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_create_title": "Skapa inbjudan", "@invites_create_create_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_edit_title": "Redigera inbjudan", "@invites_create_edit_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_save": "Spara", "@invites_create_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_create": "Skapa", "@invites_create_create": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_name_title": "Smeknamn", "@invites_create_name_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_name_hint": "t. ex. Sven Svensson", "@invites_create_name_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_pending": "Väntande", "@invites_pending": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_delete": "Ta bort", "@invites_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_invite_text": "Bjud in", "@invites_invite_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_yourself": "Dela inbjudan själv", "@invites_share_yourself": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_yourself_desc": "Välj mellan meddelandeappar, etc.", "@invites_share_yourself_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_email": "Dela inbjudan via e-post", "@invites_share_email": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_text": "E-post", "@invites_email_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_hint": "t. ex. svensvensson@email.com", "@invites_email_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_invite_text": "E-postinbjudan", "@invites_email_invite_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_send_text": "Skicka", "@invites_email_send_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_sent_text": "E-postinbjudan skickad", "@invites_email_sent_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_email_desc": "Vi kommer skicka en inbjudan med instruktioner å dina vägnar", "@invites_share_email_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_edit_text": "Redigera", "@invites_edit_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_title": "Mina inbjudningar", "@invites_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "invites_accepted_title": "Accepterad", + "invites_accepted_title": "Accepterade", "@invites_accepted_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_accepted_group_name": "accepterade inbjudningar", "@invites_accepted_group_name": { "description": "Egs where this will end up: Accepted invites (capitalised title), Search accepted invites, See all accepted invites ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_accepted_group_item_name": "accepterad inbjudan", "@invites_accepted_group_item_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_pending_group_name": "väntande inbjudningar", "@invites_pending_group_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_pending_group_item_name": "väntande inbjudan", "@invites_pending_group_item_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_none_used": "Det ser ut som att du inte använt några inbjudningar.", "@invites_none_used": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_none_left": "Du har inga inbjudningar tillgängliga.", "@invites_none_left": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_invite_a_friend": "Bjud in en vän", "@invites_invite_a_friend": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_refresh": "Uppdatera", "@invites_refresh": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "language_settings_title": "Språkinställningar", "@language_settings_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "language_settings_save": "Spara", "@language_settings_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "language_settings_saved_success": "Språket har uppdaterats", "@language_settings_saved_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "groups_see_all": "Visa alla {groupName}", "@groups_see_all": { "description": "Can be, See all joined communities, See all pending invites, See all moderated communities etc. ", "type": "text", "placeholders": { - "groupName": { - - } + "groupName": {} } }, "invites_joined_with": "Gick med under användarnamnet @{username}", "@invites_joined_with": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "invites_pending_email": "Väntande, inbjudan skickad till {email}", "@invites_pending_email": { "type": "text", "placeholders": { - "email": { - - } + "email": {} } }, "timeline_filters_no_match": "Inga resultat hittades för '{searchQuery}'.", "@timeline_filters_no_match": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "clear_application_cache_text": "Rensa cacheminnet", "@clear_application_cache_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_application_cache_desc": "Rensa cachelagrade inlägg, konton, bilder & mer.", "@clear_application_cache_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_application_cache_success": "Cacheminnet har rensats", "@clear_application_cache_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_application_cache_failure": "Kunde inte rensa cacheminnet", "@clear_application_cache_failure": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_title": "Avvisande av riktlinjer", "@confirm_guidelines_reject_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_info": "Du kan inte använda Okuna förrän du har godkänt riktlinjerna.", "@confirm_guidelines_reject_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_chat_with_team": "Chatta med teamet.", "@confirm_guidelines_reject_chat_with_team": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_chat_immediately": "Starta en chat direkt.", "@confirm_guidelines_reject_chat_immediately": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_chat_community": "Chatta med gemenskapen.", "@confirm_guidelines_reject_chat_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_join_slack": "Gå med i Slack-kanalen.", "@confirm_guidelines_reject_join_slack": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_go_back": "Tillbaka", "@confirm_guidelines_reject_go_back": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_delete_account": "Ta bort konto", "@confirm_guidelines_reject_delete_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "guidelines_desc": "Vänligen lägg en stund på att läsa igenom och godkänna våra riktlinjer.", "@guidelines_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "guidelines_accept": "Godkänn", "@guidelines_accept": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "guidelines_reject": "Avvisa", "@guidelines_reject": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_title": "Ändra e-postadress", "@change_email_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_email_text": "E-post", "@change_email_email_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_hint_text": "Ange din nya e-postadress", "@change_email_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_error": "E-postadressen är redan registrerad", "@change_email_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_save": "Spara", "@change_email_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_success_info": "Vi har skickat en bekräftelselänk till din nya e-postadress, klicka på den för att verifiera din nya e-post", "@change_email_success_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_title": "Rensa inställningar", "@clear_app_preferences_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_desc": "Rensa applikationsinställningarna. Just nu är detta enbart den föredragna kommentarsordningen.", "@clear_app_preferences_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_cleared_successfully": "Inställningarna har rensats", "@clear_app_preferences_cleared_successfully": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "email_verification_successful": "Häftigt! Din e-post har verifierats", "@email_verification_successful": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "email_verification_error": "Hoppsan! Din kod är ogiltigt eller har gått ut, vänligen försök igen", "@email_verification_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_error": "Inställningarna kunde inte rensas", "@clear_app_preferences_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "disconnect_from_user_success": "Er kontakt har brutits", "@disconnect_from_user_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "block_user": "Blockera användare", "@block_user": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "unblock_user": "Avblockera användare", "@unblock_user": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "disconnect_from_user": "Ta bort {userName} som kontakt", "@disconnect_from_user": { "type": "text", "placeholders": { - "userName": { - - } + "userName": {} } }, "circle_peoples_count": "{prettyUsersCount} personer", "@circle_peoples_count": { "type": "text", "placeholders": { - "prettyUsersCount": { - - } + "prettyUsersCount": {} } }, "follows_list_accounts_count": "{prettyUsersCount} konton", "@follows_list_accounts_count": { "type": "text", "placeholders": { - "prettyUsersCount": { - - } + "prettyUsersCount": {} } } } \ No newline at end of file diff --git a/assets/i18n/sv-SE/user_search.arb b/assets/i18n/sv-SE/user_search.arb index 0b334df6b..be99add68 100644 --- a/assets/i18n/sv-SE/user_search.arb +++ b/assets/i18n/sv-SE/user_search.arb @@ -2,32 +2,24 @@ "search_text": "Sök...", "@search_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities": "Gemenskaper", "@communities": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "users": "Användare", "@users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "list_search_text": "Sök {resourcePluralName} ...", "@list_search_text": { "description": "resourcePluralName can take many forms foreg. Search members... , Search accepted invites, Search communities.. etc.", "type": "text", "placeholders": { - "resourcePluralName": { - - } + "resourcePluralName": {} } }, "list_no_results_found": "Inga {resourcePluralName} hittades.", @@ -35,66 +27,50 @@ "description": "Used in a generic list widget. Can be No users found. No communities found. No pending invites found. Its always a plural. ", "type": "text", "placeholders": { - "resourcePluralName": { - - } + "resourcePluralName": {} } }, "list_refresh_text": "Uppdatera", "@list_refresh_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "list_retry": "Tryck för att försöka igen.", "@list_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "cancel": "Avbryt", "@cancel": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "searching_for": "Söker efter '{searchQuery}'", "@searching_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "no_results_for": "Inga resultat hittades för '{searchQuery}'.", "@no_results_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "no_communities_for": "Inga gemenskaper hittades för '{searchQuery}'.", "@no_communities_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "no_users_for": "Inga användare hittades för '{searchQuery}'.", "@no_users_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } } } \ No newline at end of file diff --git a/assets/i18n/sv-SE/video_picker.arb b/assets/i18n/sv-SE/video_picker.arb new file mode 100644 index 000000000..c03bb4a8d --- /dev/null +++ b/assets/i18n/sv-SE/video_picker.arb @@ -0,0 +1,12 @@ +{ + "from_gallery": "Från galleriet", + "@from_gallery": { + "type": "text", + "placeholders": {} + }, + "from_camera": "Från kameran", + "@from_camera": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/tr/application_settings.arb b/assets/i18n/tr/application_settings.arb new file mode 100644 index 000000000..77ad1ce1c --- /dev/null +++ b/assets/i18n/tr/application_settings.arb @@ -0,0 +1,82 @@ +{ + "videos": "Videolar", + "@videos": { + "type": "text", + "placeholders": {} + }, + "link_previews": "Bağlantı önizlemeleri", + "@link_previews": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay": "Otomatik Oynat", + "@videos_autoplay": { + "type": "text", + "placeholders": {} + }, + "link_previews_show": "Göster", + "@link_previews_show": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_always": "Her Zaman", + "@videos_autoplay_always": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_wifi_only": "Yalnızca WiFi", + "@videos_autoplay_wifi_only": { + "type": "text", + "placeholders": {} + }, + "videos_autoplay_never": "Asla", + "@videos_autoplay_never": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_always": "Her Zaman", + "@link_previews_autoplay_always": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_wifi_only": "Yalnızca WiFi", + "@link_previews_autoplay_wifi_only": { + "type": "text", + "placeholders": {} + }, + "link_previews_autoplay_never": "Asla", + "@link_previews_autoplay_never": { + "type": "text", + "placeholders": {} + }, + "videos_sound": "Ses", + "@videos_sound": { + "type": "text", + "placeholders": {} + }, + "tap_to_change": "(Değiştirmek için dokunun)", + "@tap_to_change": { + "type": "text", + "placeholders": {} + }, + "videos_sound_enabled": "Etkin", + "@videos_sound_enabled": { + "type": "text", + "placeholders": {} + }, + "videos_sound_disabled": "Devre Dışı", + "@videos_sound_disabled": { + "type": "text", + "placeholders": {} + }, + "comment_sort_newest_first": "Önce en yeni", + "@comment_sort_newest_first": { + "type": "text", + "placeholders": {} + }, + "comment_sort_oldest_first": "Önce en eski", + "@comment_sort_oldest_first": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/tr/auth.arb b/assets/i18n/tr/auth.arb index d0f3f0fe0..1c1003744 100644 --- a/assets/i18n/tr/auth.arb +++ b/assets/i18n/tr/auth.arb @@ -2,744 +2,530 @@ "headline": "Daha iyi bir sosyal ağ.", "@headline": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login": "Oturum aç", "@login": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "email_empty_error": "Eposta boş bırakılamaz.", + "email_empty_error": "E-posta boş bırakılamaz.", "@email_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "email_invalid_error": "Lütfen geçerli bir e-posta adresi girin.", "@email_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "username_empty_error": "Kullanıcı adı boş olamaz.", + "username_empty_error": "Kullanıcı adı boş bırakılamaz.", "@username_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "username_characters_error": "Bir kullanıcı ismi yalnızca alfasayısal karakterler ve alt çizgiler içerebilir.", + "username_characters_error": "Bir kullanıcı adı yalnızca alfasayısal karakterler ve alt çizgiler içerebilir.", "@username_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "username_maxlength_error": "Bir kullanıcı adı {maxLength} karakterden daha uzun olamaz.", "@username_maxlength_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "create_account": "Kayıt ol", "@create_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__lets_get_started": "Haydi başlayalım", "@create_acc__lets_get_started": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__welcome_to_beta": "Betaya hoş geldiniz!", "@create_acc__welcome_to_beta": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__previous": "Geri", "@create_acc__previous": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__next": "İleri", "@create_acc__next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__create_account": "Hesap oluştur", "@create_acc__create_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__paste_link": "Kayıt bağlantınızı aşağıya yapıştırın", "@create_acc__paste_link": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__paste_password_reset_link": "Şifre sıfırlama bağlantınızı aşağıya yapıştırın", "@create_acc__paste_password_reset_link": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__paste_link_help_text": "Davet e-postanızdaki Openbook'a Katıl düğmesini tıklayın.", "@create_acc__paste_link_help_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__link_empty_error": "Link boş olamaz.", + "create_acc__link_empty_error": "Link boş bırakılamaz.", "@create_acc__link_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__link_invalid_error": "Bu bağlantı geçersiz görünüyor.", "@create_acc__link_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "password_empty_error": "Parola boş bırakılamaz.", "@password_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "password_range_error": "Parola karakter sayısı {minLength} ve {maxLength} uzunluğu arasında olmalıdır.", + "password_range_error": "Parola karakteri sayısı {minLength} ile {maxLength} uzunluğu arasında olmalıdır.", "@password_range_error": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, - "name_empty_error": "İsim boş olamaz.", + "name_empty_error": "İsim boş bırakılamaz.", "@name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "name_range_error": "İsim karakter sayısı {minLength} ve {maxLength} uzunluğu arasında olmalıdır.", "@name_range_error": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, - "description_empty_error": "Açıklama boş olamaz.", + "description_empty_error": "Açıklama boş bırakılmaz.", "@description_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "description_range_error": "Açıklama karakter sayısı {minLength} ve {maxLength} uzunluğu arasında olmalıdır.", "@description_range_error": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, "reset_password_success_title": "Her şey tamam!", "@reset_password_success_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reset_password_success_info": "Şifreniz başarıyla güncellendi", "@reset_password_success_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__request_invite": "Davet yok mu? Buradan bir tane isteyin.", "@create_acc__request_invite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__subscribe": "İste", + "create_acc__subscribe": "Talep et", "@create_acc__subscribe": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__subscribe_to_waitlist_text": "Davet et!", "@create_acc__subscribe_to_waitlist_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__congratulations": "Tebrikler!", "@create_acc__congratulations": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__your_subscribed": "{0}. bekleme listesindesin.", "@create_acc__your_subscribed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__almost_there": "Neredeyse tamamlandı...", "@create_acc__almost_there": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_name": "İsminiz nedir?", "@create_acc__what_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__name_placeholder": "James Bond", + "create_acc__name_placeholder": "İsminizi Yazın", "@create_acc__name_placeholder": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__name_empty_error": "😱 İsim kısmı boş olamaz.", + "create_acc__name_empty_error": "😱 İsim kısmını boş bırakamazsın.", "@create_acc__name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__name_length_error": "😱 Adınız 50 karakterden uzun olamaz. (Öyleyse, çok üzgünüz.)", + "create_acc__name_length_error": "😱 Adınız 50 karakterden uzun olamaz. (Öyle ise, çok üzgünüz.)", "@create_acc__name_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__name_characters_error": "😅 Bir isim sadece alfanümerik karakterler içerebilir (şimdilik).", "@create_acc__name_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_username": "Bir kullanıcı adı seç", "@create_acc__what_username": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__username_placeholder": "pablopicasso", + "create_acc__username_placeholder": "nuribilgeceylan", "@create_acc__username_placeholder": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__username_empty_error": "😱 Kullanıcı ismi boş olamaz.", + "create_acc__username_empty_error": "😱 Kullanıcı ismi boş bırakılamaz.", "@create_acc__username_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_length_error": "😅 Bir kullanıcı ismi 30 karakterden uzun olamaz.", "@create_acc__username_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_characters_error": "😅 Bir kullanıcı ismi yalnızca alfasayısal karakterler ve alt çizgiler içerebilir.", "@create_acc__username_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__username_taken_error": "😩 @%s kullanıcı ismi daha önce alınmıştır.", + "create_acc__username_taken_error": "😩 @%s kullanıcı ismi daha önce alınmış.", "@create_acc__username_taken_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__username_server_error": "😭 Sunucularımızla ilgili sorunlar yaşıyoruz, lütfen birkaç dakika içinde tekrar deneyin.", "@create_acc__username_server_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_email": "E-posta adresin nedir?", "@create_acc__what_email": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__email_placeholder": "john_travolta@mail.com", + "create_acc__email_placeholder": "örnekpostaadresi@mail.com", "@create_acc__email_placeholder": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__email_empty_error": "😱 E-posta kısmı boş olamaz", + "create_acc__email_empty_error": "😱 E-posta kısmı boş bırakılmaz", "@create_acc__email_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_invalid_error": "😅 Lütfen geçerli bir e-posta adresi girin.", "@create_acc__email_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_taken_error": "🤔 Bu e-postaya kayıtlı zaten bir hesap bulunuyor.", "@create_acc__email_taken_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__email_server_error": "😭 Sunucularımızla ilgili sorunlar yaşıyoruz, lütfen birkaç dakika içinde tekrar deneyin.", "@create_acc__email_server_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_password": "Bir parola seçin", "@create_acc__what_password": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc_password_hint_text": "({minLength}-{maxLength} karakter)", "@create_acc_password_hint_text": { "type": "text", "placeholders": { - "minLength": { - - }, - "maxLength": { - - } + "minLength": {}, + "maxLength": {} } }, "create_acc__what_password_subtext": "(en az 10 karakter)", "@create_acc__what_password_subtext": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__password_empty_error": "😱 Şifre kısmı boş bırakılamaz", "@create_acc__password_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__password_length_error": "😅 Bir şifre 8 ile 64 karakter arasında olmalıdır.", "@create_acc__password_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__what_avatar": "Profil fotoğrafı seçin", "@create_acc__what_avatar": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_tap_to_change": "Değiştirmek için dokunun", "@create_acc__avatar_tap_to_change": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_choose_camera": "Bir fotoğraf çekin", "@create_acc__avatar_choose_camera": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_choose_gallery": "Mevcut bir fotoğrafı kullan", "@create_acc__avatar_choose_gallery": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__avatar_remove_photo": "Fotoğrafı sil", "@create_acc__avatar_remove_photo": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done": "Hesap oluştur", "@create_acc__done": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__done_subtext": "Bunu profil ayarlarından değiştirebilirsiniz.", + "create_acc__done_subtext": "Bunu profil ayarlarından değiştirebilirsin.", "@create_acc__done_subtext": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_created": "Hesabınız kullanıcı adıyla oluşturuldu ", "@create_acc__done_created": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_loading_title": "Az kaldı!", "@create_acc__submit_loading_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "create_acc__submit_loading_desc": "Hesabınızı yaratıyoruz.", + "create_acc__submit_loading_desc": "Hesabınızı oluşturuyoruz.", "@create_acc__submit_loading_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_error_title": "Oh hayır...", "@create_acc__submit_error_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_error_desc_server": "😭 Sunucularımızla ilgili sorunlar yaşıyoruz, lütfen birkaç dakika içinde tekrar deneyin.", "@create_acc__submit_error_desc_server": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__submit_error_desc_validation": "😅 Bazı bilgiler doğru değil gibi görünüyor, lütfen kontrol edin ve tekrar deneyin.", "@create_acc__submit_error_desc_validation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_title": "Yaşasın!", "@create_acc__done_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_description": "Hesabınız oluşturuldu.", "@create_acc__done_description": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__your_username_is": "Kullanıcı adınız ", "@create_acc__your_username_is": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__can_change_username": "İsterseniz profil sayfanızdan istediğiniz zaman değiştirebilirsiniz.", "@create_acc__can_change_username": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__done_continue": "Oturum aç", "@create_acc__done_continue": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__one_last_thing": "Son bir şey...", "@create_acc__one_last_thing": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__register": "Kayıt Ol", "@create_acc__register": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_acc__are_you_legal_age": "16 yaşından büyük müsünüz?", "@create_acc__are_you_legal_age": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__login": "Devam et", "@login__login": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__previous": "Önceki", "@login__previous": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__title": "Tekrar Hoşgeldin!", "@login__title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__subtitle": "Devam etmek için kimlik bilgilerinizi girin.", "@login__subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__forgot_password": "Şifreyi unuttum", "@login__forgot_password": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__forgot_password_subtitle": "Kullanıcı adınızı veya e-posta adresinizi girin", "@login__forgot_password_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "login__username_label": "Kullanıcı ismi", + "login__username_label": "Kullanıcı adı", "@login__username_label": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__password_label": "Şifre", "@login__password_label": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__email_label": "E-Posta", "@login__email_label": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__or_text": "ya da", "@login__or_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__password_empty_error": "Şifre gereklidir.", "@login__password_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__password_length_error": "Şifre 8 ile 64 karakter arasında olmalıdır.", "@login__password_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_empty_error": "Kullanıcı adı gereklidir.", "@login__username_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_length_error": "Kullanıcı adı 30 karakterden uzun olamaz.", "@login__username_length_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__username_characters_error": "Kullanıcı adı yalnızca alfasayısal karakterler ve alt çizgiler içerebilir.", "@login__username_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__credentials_mismatch_error": "Verdiğiniz kimlik bilgileri uyuşmuyor.", "@login__credentials_mismatch_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__server_error": "Ah.. Sunucu sorunları yaşıyoruz. Lütfen birkaç dakika içinde tekrar deneyin.", "@login__server_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "login__connection_error": "Sunucularımıza ulaşamıyoruz. İnternete bağlı mısınız?", "@login__connection_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_title": "Şifreyi değiştir", "@change_password_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_current_pwd": "Şimdiki şifreniz", "@change_password_current_pwd": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_current_pwd_hint": "Geçerli şifrenizi giriniz", "@change_password_current_pwd_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_current_pwd_incorrect": "Girilen şifre hatalı", "@change_password_current_pwd_incorrect": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_new_pwd": "Yeni şifre", "@change_password_new_pwd": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_new_pwd_hint": "Yeni şifrenizi girin", "@change_password_new_pwd_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_new_pwd_error": "Lütfen şifrenizin 10 ila 100 karakter uzunluğunda olduğundan emin olun", "@change_password_new_pwd_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_password_save_text": "Kaydet", "@change_password_save_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "change_password_save_success": "Hepsi iyi! şifreniz güncellenmiştir", + "change_password_save_success": "Hepsi iyi! şifreniz güncellendi", "@change_password_save_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/tr/community.arb b/assets/i18n/tr/community.arb index e5dbbc1c9..9f3acfe6c 100644 --- a/assets/i18n/tr/community.arb +++ b/assets/i18n/tr/community.arb @@ -2,475 +2,348 @@ "no": "Hayır", "@no": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "yes": "Evet", "@yes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "button_staff": "Personel", "@button_staff": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "button_rules": "Kurallar", "@button_rules": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community": "topluluk", "@community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities": "topluluklar", "@communities": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "type_public": "Herkese Açık", "@type_public": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "type_private": "Özel", "@type_private": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "member_capitalized": "Üye", "@member_capitalized": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "members_capitalized": "Üyeler", "@members_capitalized": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "admin_desc": "Bu, üyenin topluluk ayrıntılarını, yöneticileri, moderatörleri ve engelli kullanıcıları düzenlemesini sağlar.", "@admin_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirmation_title": "Onay", "@confirmation_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "retry_loading_posts": "Tekrar denemek için dokunun", + "@retry_loading_posts": { + "type": "text", + "placeholders": {} }, "admin_add_confirmation": "Topluluk yöneticisi olarak @{username} adlı kullanıcıyı eklemek istediğinizden emin misiniz?", "@admin_add_confirmation": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "ban_confirmation": "@{username} adlı kullanıcıyı engellemek istediğinizden emin misiniz?", "@ban_confirmation": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "ban_desc": "Bu, kullanıcıyı topluluktan kaldırır ve tekrar katılmalarına izin vermez.", "@ban_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderator_add_confirmation": "@{username} adlı kişiyi topluluk yöneticisi olarak eklemek istediğinden emin misin?", "@moderator_add_confirmation": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "moderator_desc": "Bu, üyenin topluluk ayrıntılarını, moderatörleri ve engelli kullanıcıları düzenlemesini sağlar.", "@moderator_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderators_you": "Sen", "@moderators_you": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderators_title": "Moderatörler", "@moderators_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "leave_desc": "Bu zaman çizelgesinde mesajları göremezsiniz ya da artık yayınlamak mümkün değildir.", "@leave_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "leave_confirmation": "Topluluktan ayrılmak istediğinden emin misin?", "@leave_confirmation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderator_resource_name": "moderatör", "@moderator_resource_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderators_resource_name": "yöneticiler", "@moderators_resource_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_moderator_title": "Yönetici ekle", "@add_moderator_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_confirmation": "Topluluğu silmek istediğinden emin misin?", "@delete_confirmation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_desc": "Bu zaman çizelgesinde mesajları göremezsiniz ya da artık yayınlamak mümkün değildir.", "@delete_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_manage_text": "Yönet", "@actions_manage_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_title": "Topluluğu yönet", "@manage_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_details_title": "Ayrıntılar", "@manage_details_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_details_desc": "Başlığı, ismi, avatarı, kapak fotoğrafını ve daha fazlasını değiştirin.", "@manage_details_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_admins_title": "Yöneticiler", "@manage_admins_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_admins_desc": "Yöneticileri görün, ekleyin ve kaldırın.", "@manage_admins_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_mods_title": "Moderatörler", "@manage_mods_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_mods_desc": "Moderatörleri görün, ekleyin ve kaldırın.", "@manage_mods_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_banned_title": "Engellenen kullanıcılar", "@manage_banned_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_banned_desc": "Engelli kullanıcıları görün, ekleyin ve kaldırın.", "@manage_banned_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_mod_reports_title": "Denetim raporları", "@manage_mod_reports_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_mod_reports_desc": "Topluluk denetim raporlarını gözden geçirin.", "@manage_mod_reports_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_closed_posts_title": "Kapalı yayınlar", "@manage_closed_posts_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_closed_posts_desc": "Kapalı yayınları görün ve yönetin", "@manage_closed_posts_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_invite_title": "İnsanları davet et", "@manage_invite_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_invite_desc": "Bağlantılarınızı ve takipçilerinizi topluluğa katılmaya davet edin.", "@manage_invite_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_delete_title": "Topluluğu sil", "@manage_delete_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_delete_desc": "Sonsuza dek Topluluğu sil.", "@manage_delete_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_leave_title": "Topluluktan ayrıl", "@manage_leave_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_leave_desc": "Topluluktan ayrıl.", "@manage_leave_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_add_favourite": "Topluluğu favorilerinize ekleyin", "@manage_add_favourite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "manage_remove_favourite": "Topluluğu favorilerinizden kaldırın", "@manage_remove_favourite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "is_private": "Bu topluluk özel.", "@is_private": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invited_by_member": "Bir üye tarafından davet edilmelisin.", "@invited_by_member": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invited_by_moderator": "Bir moderatör tarafından davet edilmen gerekiyor.", "@invited_by_moderator": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "refreshing": "Ferahlatıcı topluluk", "@refreshing": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "posts": "Gönderiler", "@posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "about": "Hakkında", "@about": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "category": "kategori.", "@category": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "categories": "kategoriler.", "@categories": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_administrators_title": "Yönetici ekle.", "@add_administrators_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_members": "Topluluk üyeleri", "@community_members": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "member": "üye", "@member": { "description": "Currently not used in app, reserved for potential use. Could be used as: Showing 1 member", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "member_plural": "üyeler", "@member_plural": { "description": "See all members ,Search all members", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrators_title": "Yöneticiler", "@administrators_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrator_text": "yönetici", "@administrator_text": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 administrator", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrator_plural": "yöneticiler", "@administrator_plural": { "description": "Egs. Search administrators, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrator_you": "Sen", "@administrator_you": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "user_you_text": "Sen", "@user_you_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "pick_upto_max": "{max} kategoriye kadar seç", "@pick_upto_max": { "type": "text", "placeholders": { - "max": { - - } + "max": {} } }, "pick_atleast_min_category": "En az {min} kategori seçmelisin.", @@ -478,9 +351,7 @@ "description": "You must pick at least 1 category", "type": "text", "placeholders": { - "min": { - - } + "min": {} } }, "pick_atleast_min_categories": "En az {min} kategori seçmelisin.", @@ -488,530 +359,386 @@ "description": "Eg. Variable min will be 3-5. You must pick at least (3-5) categories", "type": "text", "placeholders": { - "min": { - - } + "min": {} } }, "ban_user_title": "Kullanıcıyı engelle", "@ban_user_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "banned_users_title": "Engellenen kullanıcılar", "@banned_users_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "banned_user_text": "engellenen kullanıcı", "@banned_user_text": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 banned user", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "banned_users_text": "engellenen kullanıcılar", "@banned_users_text": { "description": "Egs. Search banned users, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorites_title": "Favoriler", "@favorites_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorite_community": "favori topluluk", "@favorite_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 favorite community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorite_communities": "favori topluluklar", "@favorite_communities": { "description": "Egs. Search favorite communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrated_title": "Yönetilen", "@administrated_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrated_community": "yönetilen topluluk", "@administrated_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 administrated community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "administrated_communities": "yönetilen topluluklar", "@administrated_communities": { "description": "Egs. Search administrated communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_title": "Denetlediğin", "@moderated_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_community": "denetlediğin topluluk", "@moderated_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 moderated community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_communities": "denetlediğin topluluklar", "@moderated_communities": { "description": "Egs. Search moderated communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "joined_title": "Katıldın", "@joined_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "joined_community": "topluluğa katıldın", "@joined_community": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 joined community", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "joined_communities": "topluluklara katıldın", "@joined_communities": { "description": "Egs. Search joined communities, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "join_communities_desc": "Bu sekmeyi canlandırmak için topluluklara katılın!", "@join_communities_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "refresh_text": "Yenile", "@refresh_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_none_found": "Hiç trend olan bir topluluk bulunamadı. Birkaç dakika sonra tekrar deneyin.", "@trending_none_found": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_refresh": "Yenile", "@trending_refresh": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_in_all": "Tüm kategorilerdeki trendler", "@trending_in_all": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_in_category": "{categoryName} kategorisindeki trend", "@trending_in_category": { "type": "text", "placeholders": { - "categoryName": { - - } + "categoryName": {} } }, "communities_title": "Topluluklar", "@communities_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities_no_category_found": "Kategori bulunamadı. Lütfen birkaç dakika içinde tekrar deneyin.", "@communities_no_category_found": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities_refresh_text": "Yenile", "@communities_refresh_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities_all_text": "Tümü", "@communities_all_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_to_community_title": "Topluluğa davet et", "@invite_to_community_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_to_community_resource_singular": "bağlantı veya takipçi", "@invite_to_community_resource_singular": { "description": "Currently unsused, reserved for potential use. Could be used as Showing 1 connection or follower", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_to_community_resource_plural": "bağlantılar ve takipçiler", "@invite_to_community_resource_plural": { "description": "Egs. Search connections and followers, See list_search_text in user_search.arb ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "favorite_action": "Favori topluluk", "@favorite_action": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "unfavorite_action": "Topluluğu favorilerden çıkar", "@unfavorite_action": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_label_title": "Başlık", "@save_community_label_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_label_title_hint_text": "örneğin Seyahat, Fotoğraf, Oyun.", "@save_community_label_title_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_title": "İsim", "@save_community_name_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_title_hint_text": " örneğin. Seyahat, Fotoğrafçılık, Oyun.", "@save_community_name_title_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_taken": "'{takenName}' olarak topluluk adı alınmış", "@save_community_name_taken": { "type": "text", "placeholders": { - "takenName": { - - } + "takenName": {} } }, "save_community_name_label_color": "Renk", "@save_community_name_label_color": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_color_hint_text": "(Değiştirmek için dokunun)", "@save_community_name_label_color_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_type": "Tür", "@save_community_name_label_type": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_type_hint_text": "(Değiştirmek için dokunun)", "@save_community_name_label_type_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_member_invites": "Üye davetleri", "@save_community_name_member_invites": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_member_invites_subtitle": "Üyeler, insanları topluluğa davet edebilir", "@save_community_name_member_invites_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_category": "Kategori", "@save_community_name_category": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_desc_optional": "Açıklama · İsteğe Bağlı", "@save_community_name_label_desc_optional": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_desc_optional_hint_text": "Topluluğunuzun konusu nedir?", "@save_community_name_label_desc_optional_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_rules_optional": "Kurallar · İsteğe Bağlı", "@save_community_name_label_rules_optional": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_rules_optional_hint_text": "Kullanıcılarınızın bilmesini istediğiniz bir şey var mı?", "@save_community_name_label_rules_optional_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_member_adjective": "Üye ön adı · İsteğe Bağlı", "@save_community_name_label_member_adjective": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_member_adjective_hint_text": "örneğin. gezgin, fotoğrafçı, oyuncu.", "@save_community_name_label_member_adjective_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_members_adjective": "Üyelerin ön adları · İsteğe Bağlı", "@save_community_name_label_members_adjective": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_name_label_members_adjective_hint_text": "örneğin. gezginler, fotoğrafçılar, oyuncular.", "@save_community_name_label_members_adjective_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_edit_community": "Topluluğu düzenle", "@save_community_edit_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_create_community": "Topluluk oluştur", "@save_community_create_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_save_text": "Kaydet", "@save_community_save_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_community_create_text": "Oluştur", "@save_community_create_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_invite_people_title": "İnsanları topluluğa davet et", "@actions_invite_people_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "join_community": "Katıl", "@join_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "leave_community": "Ayrıl", "@leave_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_staff": "Topluluk kadrosu", "@community_staff": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_singular": "gönderi", "@post_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_plural": "gönderiler", "@post_plural": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "rules_title": "Topluluk kuralları", "@rules_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "rules_text": "Kurallar", "@rules_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "name_characters_error": "İsim yalnızca alfasayısal karakterler ve alt çizgiler içerebilir.", "@name_characters_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "name_range_error": "İsim {maxLength} karakterden daha uzun olamaz.", "@name_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "name_empty_error": "İsim boş olamaz.", "@name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "title_range_error": "Başlık {maxLength} karakterden daha uzun olamaz.", "@title_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "title_empty_error": "Başlık boş olamaz.", "@title_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "rules_range_error": "Kurallar bölümü {maxLength} karakterden daha uzun olamaz.", "@rules_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "rules_empty_error": "Kurallar bölümü boş bırakılmaz.", "@rules_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "description_range_error": "Açıklama kısmı {maxLength} karakterden daha uzun olamaz.", "@description_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "adjectives_range_error": "Sıfatlar kısmı {maxLength} karakterden daha uzun olamaz.", @@ -1019,9 +746,7 @@ "description": "This refers to the customisable adjectives assigned to community members,eg. 1k travellers,5k photographers", "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } } } \ No newline at end of file diff --git a/assets/i18n/tr/contextual_account_search_box.arb b/assets/i18n/tr/contextual_account_search_box.arb index 029c8ad5b..0818701be 100644 --- a/assets/i18n/tr/contextual_account_search_box.arb +++ b/assets/i18n/tr/contextual_account_search_box.arb @@ -3,8 +3,6 @@ "@suggestions": { "description": "The title to display on the suggestions when searching for accounts when trying to mention someone.", "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/tr/drawer.arb b/assets/i18n/tr/drawer.arb index c84271c04..092df17d3 100644 --- a/assets/i18n/tr/drawer.arb +++ b/assets/i18n/tr/drawer.arb @@ -2,304 +2,223 @@ "menu_title": "Menü", "@menu_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "main_title": "Openspace'im", + "main_title": "Benim Okuna'm", "@main_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_circles": "Çevrelerim", "@my_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_lists": "Listelerim", "@my_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_followers": "Takipçilerim", "@my_followers": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_following": "Takip ettiklerim", "@my_following": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_invites": "Davetlerim", "@my_invites": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_pending_mod_tasks": "Bekleyen Moderasyon görevlerim", "@my_pending_mod_tasks": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_mod_penalties": "Moderasyon cezalarım", "@my_mod_penalties": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "app_account_text": "Uygulama ve Hesap", "@app_account_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "themes": "Temalar", "@themes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_moderation": "Global denetim", "@global_moderation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile": "Profil", "@profile": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connections": "Bağlantılarım", "@connections": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "lists": "Listelerim", "@lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "settings": "Ayarlar", "@settings": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "application_settings": "Uygulama Ayarları", "@application_settings": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings": "Hesap Ayarları", "@account_settings": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "developer_settings": "Geliştirici Ayarları", + "@developer_settings": { + "type": "text", + "placeholders": {} }, "account_settings_change_email": "E-Postanı Değiştir", "@account_settings_change_email": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_change_password": "Şifreni Değiştir", "@account_settings_change_password": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_notifications": "Bildirimler", "@account_settings_notifications": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_language_text": "Dil", "@account_settings_language_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_language": "Dil ({currentUserLanguage})", "@account_settings_language": { "type": "text", "placeholders": { - "currentUserLanguage": { - - } + "currentUserLanguage": {} } }, "account_settings_blocked_users": "Engellenmiş kullanıcılar", "@account_settings_blocked_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "account_settings_delete_account": "Hesabı sil", "@account_settings_delete_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "help": "Destek ve Geri Bildirim", "@help": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "customize": "Kişiselleştir", "@customize": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "logout": "Oturumu Kapat", "@logout": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_title": "Faydalı bağlantılar", "@useful_links_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "useful_links_guidelines": "Openspace'in ilkeleri", + "useful_links_guidelines": "Okuna'nın ilkeleri", "@useful_links_guidelines": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_desc": "Hepinizin sağlıklı ve dostça bir ortak varlığınızı korumak için izlemeniz gereken kurallar.", "@useful_links_guidelines_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_github": "Github proje panosu", "@useful_links_guidelines_github": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_github_desc": "Şu anda üzerinde çalıştığımıza bir göz atın", "@useful_links_guidelines_github_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_feature_requests": "Özellik istekleri", "@useful_links_guidelines_feature_requests": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_feature_requests_desc": "Bir özellik isteyin veya var olan istekleri oylayın", "@useful_links_guidelines_feature_requests_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_bug_tracker": "Hata izleyici", "@useful_links_guidelines_bug_tracker": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_bug_tracker_desc": "Bir hata rapor edin veya var olan hataları oylayın", "@useful_links_guidelines_bug_tracker_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "useful_links_guidelines_handbook": "Openspace el kitabı", + "useful_links_guidelines_handbook": "Okuna el kitabı", "@useful_links_guidelines_handbook": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_guidelines_handbook_desc": "Platformu kullanma hakkında bilmeniz gereken her şeyi içeren bir kitap", "@useful_links_guidelines_handbook_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_support": "Okuna Destek", "@useful_links_support": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "useful_links_support_desc": "Yolculuğumuzda bizi destekleyebilecek bir yola bakın!", + "useful_links_support_desc": "Yolculuğumuzda bizi destekleyebilecek bir yönteme bakın!", "@useful_links_support_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "useful_links_slack_channel": "Topluluk çözüm kanalı", "@useful_links_slack_channel": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "useful_links_slack_channel_desc": "Openspace hakkında her şeyi tartışacağınız bir yer", + "useful_links_slack_channel_desc": "Okuna hakkında her şeyi tartışacağınız bir yer", "@useful_links_slack_channel_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/tr/error.arb b/assets/i18n/tr/error.arb index 1a012b4e8..6d07153a2 100644 --- a/assets/i18n/tr/error.arb +++ b/assets/i18n/tr/error.arb @@ -2,15 +2,11 @@ "unknown_error": "Bilinmeyen hata", "@unknown_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "no_internet_connection": "İnternet bağlantısı yok", "@no_internet_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/tr/image_picker.arb b/assets/i18n/tr/image_picker.arb new file mode 100644 index 000000000..5222e11bd --- /dev/null +++ b/assets/i18n/tr/image_picker.arb @@ -0,0 +1,19 @@ +{ + "from_gallery": "Galeriden", + "@from_gallery": { + "type": "text", + "placeholders": {} + }, + "from_camera": "Kameradan", + "@from_camera": { + "type": "text", + "placeholders": {} + }, + "error_too_large": "Dosya çok büyük (limit: {limit} MB)", + "@error_too_large": { + "type": "text", + "placeholders": { + "limit": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/tr/moderation.arb b/assets/i18n/tr/moderation.arb index e54fef88a..7011c9ab2 100644 --- a/assets/i18n/tr/moderation.arb +++ b/assets/i18n/tr/moderation.arb @@ -1,503 +1,361 @@ { - "filters_title": "Denetim Filtreleri", + "filters_title": "Moderasyon Filtreleri", "@filters_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_reset": "Sıfırla", "@filters_reset": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "filters_verified": "Doğrulanmış", + "filters_verified": "Doğrulandı", "@filters_verified": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_apply": "Filtreleri uygula", "@filters_apply": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_type": "Tür", "@filters_type": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_status": "Durum", "@filters_status": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "filters_other": "Diğer", "@filters_other": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_review": "Detaylı", "@actions_review": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_chat_with_team": "Ekiple sohbet et", "@actions_chat_with_team": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_category_title": "Kategoriyi güncelle", "@update_category_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_category_save": "Kaydet", "@update_category_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_save": "Kaydet", "@update_description_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_title": "Açıklamayı düzenle", "@update_description_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_description_report_desc": "Açıklama raporu", "@update_description_report_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "update_description_report_hint_text": "örneğin Raporun öğesi bulundu...", + "update_description_report_hint_text": "örnek olarak Raporun öğesi bulundu...", "@update_description_report_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_status_save": "Kaydet", "@update_status_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_status_title": "Durumu güncelle", "@update_status_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_title": "Yönetilen nesneyi gözden geçir", "@community_review_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_title": "Nesne", "@moderated_object_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_status": "Durum", "@moderated_object_status": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_reports_count": "Rapor sayısı", "@moderated_object_reports_count": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "moderated_object_verified_by_staff": "Openspace çalışanı tarafından doğrulandı", + "moderated_object_verified_by_staff": "Okuna çalışanı tarafından doğrulandı", "@moderated_object_verified_by_staff": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "moderated_object_verified": "Doğrulanmış", + "moderated_object_verified": "Doğrulandı", "@moderated_object_verified": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_true_text": "Doğru", "@moderated_object_true_text": { - "description": "Eg. Moderated object verified by staff? true \/ false", + "description": "Eg. Moderated object verified by staff? true / false", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "moderated_object_false_text": "Yanlış", "@moderated_object_false_text": { - "description": "Eg. Moderated object verified by staff? true \/ false", + "description": "Eg. Moderated object verified by staff? true / false", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_object": "Nesne", "@community_review_object": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "community_review_approve": "Onaylı", + "community_review_approve": "Onaylandı", "@community_review_approve": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_reject": "reddedildi", "@community_review_reject": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_review_item_verified": "Bu madde doğrulandı", "@community_review_item_verified": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_review_title": "Yönetilen nesneyi gözden geçir", "@global_review_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "global_review_object_text": "Nesne", "@global_review_object_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "global_review_verify_text": "Doğrulanmış", + "global_review_verify_text": "Doğrulandı", "@global_review_verify_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "global_review_unverify_text": "Doğrulanmamış", + "global_review_unverify_text": "Doğrulanmadı", "@global_review_unverify_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_title": "Rapor gönder", "@confirm_report_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_details": "Raporla alakalı olabilecek ilave detaylar verebilir misiniz?", "@confirm_report_provide_details": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_optional_info": "(İsteğe Bağlı)", "@confirm_report_provide_optional_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_optional_hint_text": "Buraya yaz...", "@confirm_report_provide_optional_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_provide_happen_next": "İşte bundan sonra ne olacak:", "@confirm_report_provide_happen_next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "confirm_report_provide_happen_next_desc": "-Raporunuz isimsiz olarak gönderilecektir. \n-Bir gönderi veya yorum bildiriyorsanız, rapor Openspace çalışanına ve varsa topluluk moderatörlerine gönderilecek ve gönderi yayınınızdan gizlenecektir \n- Bir hesap veya topluluğu rapor ediyorsanız, Openspace çalışanına gönderilir. \n- Onaylanırsa, içerik silinecek ve hesabın silinmesinden raporun ciddiyetine bağlı olarak belirli saatlere kadar askıya alınmasına karar verilir ve kişilere verilen cezalar gözden geçirilir. \n- Raporun platformdaki başka bir üyeye veya topluluğa zarar vermek amacıyla belirtilen nedenle herhangi bir ihlal yapılmadığı tespit edilirse, cezalar size uygulanacaktır.\n", + "confirm_report_provide_happen_next_desc": "-Raporunuz isimsiz olarak gönderilecektir. \n-Bir gönderi veya yorum bildiriyorsanız, rapor Okuna çalışanına ve varsa topluluk moderatörlerine gönderilecek ve gönderi yayınınızdan gizlenecektir \n- Bir hesap veya topluluğu rapor ediyorsanız, Okuna çalışanına gönderilir. \n- Onaylanırsa, içerik silinecek ve hesabın silinmesinden raporun ciddiyetine bağlı olarak belirli saatlere kadar askıya alınmasına karar verilir ve kişilere verilen cezalar gözden geçirilir. \n- Raporun platformdaki başka bir üyeye veya topluluğa zarar vermek amacıyla belirtilen nedenle herhangi bir ihlal yapılmadığı tespit edilirse, cezalar size uygulanacaktır.\n", "@confirm_report_provide_happen_next_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_submit": "Anladım, gönder.", "@confirm_report_submit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_user_reported": "Kullanıcı bildirildi", "@confirm_report_user_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_community_reported": "Topluluk bildirildi", "@confirm_report_community_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_post_reported": "Gönderi bildirildi", "@confirm_report_post_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_post_comment_reported": "Gönderideki yorum bildirildi", "@confirm_report_post_comment_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_report_item_reported": "Öğe bildirildi", "@confirm_report_item_reported": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "community_moderated_objects": "Toplulukta denetlenen nesneler", "@community_moderated_objects": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "globally_moderated_objects": "Global olarak yönetilen nesneler", "@globally_moderated_objects": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "tap_to_retry": "Öğeleri yüklemeyi yeniden denemek için dokunun", + "tap_to_retry": "Öğeleri yeniden yüklemeyi denemek için dokunun", "@tap_to_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_post_text": "Gönderiyi bildir", "@report_post_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_post_text": "Bu yayını bildirdin", "@you_have_reported_post_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_account_text": "Hesabı bildir", "@report_account_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_account_text": "Bu hesabı bildirdin", "@you_have_reported_account_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_community_text": "Topluluğu bildir", "@report_community_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_community_text": "Bu topluluğu bildirdin", "@you_have_reported_community_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "report_comment_text": "Yorumu bildir", "@report_comment_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_have_reported_comment_text": "Bu yorumu bildirdin", "@you_have_reported_comment_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "description_text": "Açıklama", "@description_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "no_description_text": "Açıklama Yok", "@no_description_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "category_text": "Kategori", "@category_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reporter_text": "Raporlayıcı", "@reporter_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reports_preview_title": "Raporlar", "@reports_preview_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reports_preview_resource_reports": "raporlar", "@reports_preview_resource_reports": { "description": "Usage: See all reports..", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "reports_see_all": "Hepsini gör {resourceCount} {resourceName}", "@reports_see_all": { "description": "Usage: See all 4 reports.", "type": "text", "placeholders": { - "resourceCount": { - - }, - "resourceName": { - - } + "resourceCount": {}, + "resourceName": {} } }, "object_status_title": "Durum", "@object_status_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_tasks_title": "Bekleyen moderasyon görevleri", "@my_moderation_tasks_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "pending_moderation_tasks_singular": "bekleyen moderasyon görevi", "@pending_moderation_tasks_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "pending_moderation_tasks_plural": "bekleyen moderasyon görevleri", "@pending_moderation_tasks_plural": { "description": "Eg. No pending moderation tasks found", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_penalties_title": "Moderasyon cezaları", "@my_moderation_penalties_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_penalties_resouce_singular": "moderasyon cezası", "@my_moderation_penalties_resouce_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_moderation_penalties_resource_plural": "moderasyon cezaları", "@my_moderation_penalties_resource_plural": { "description": "See all moderation penalties, No moderation penalties found etc..", "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/tr/notifications.arb b/assets/i18n/tr/notifications.arb index 5a7ae4c7e..604784905 100644 --- a/assets/i18n/tr/notifications.arb +++ b/assets/i18n/tr/notifications.arb @@ -1,4 +1,14 @@ { + "tab_general": "Genel", + "@tab_general": { + "type": "text", + "placeholders": {} + }, + "tab_requests": "İstekler", + "@tab_requests": { + "type": "text", + "placeholders": {} + }, "settings_title": "Bildirim ayarları", "@settings_title": { "type": "text", @@ -44,12 +54,12 @@ "type": "text", "placeholders": {} }, - "comment_reply_title": "Gönderideki cevap bildirildi", + "comment_reply_title": "Gönderideki yorum cevabı", "@comment_reply_title": { "type": "text", "placeholders": {} }, - "comment_reply_desc": "Birisi yorumlarınızdan birini veya yanıtladığınız birini yanıtladığında haberdar olun.", + "comment_reply_desc": "Birisi yorumlarınızdan birini veya cevapladığınız birini cevapladığında haberdar olun", "@comment_reply_desc": { "type": "text", "placeholders": {} @@ -74,17 +84,17 @@ "type": "text", "placeholders": {} }, - "comment_reaction_title": "Yorum tepkisi gönderisi", + "comment_reaction_title": "Gönderi yorumundaki reaksiyon", "@comment_reaction_title": { "type": "text", "placeholders": {} }, - "comment_reaction_desc": "Birisi yorumlarınızdan birine tepki verdiğinde haberdar olun.", + "comment_reaction_desc": "Birisi yorumlarınızdan birine reaksiyon verdiğinde haberdar olun", "@comment_reaction_desc": { "type": "text", "placeholders": {} }, - "post_reaction_title": "Gönderi tepkisi", + "post_reaction_title": "Gönderi reaksiyonu", "@post_reaction_title": { "type": "text", "placeholders": {} @@ -142,7 +152,7 @@ "type": "text", "placeholders": {} }, - "reacted_to_post_comment_tile": "[name] [username] yorumunuza tepki verdi.", + "reacted_to_post_comment_tile": "[name] [username] yorumunuza reaksiyon verdi.", "@reacted_to_post_comment_tile": { "description": "Eg.: James @jamest reacted to your post comment.", "type": "text", @@ -154,9 +164,9 @@ "type": "text", "placeholders": {} }, - "user_community_invite_tile": "[name] [username] sizi \/c\/{communityName} topluluğuna davet etti.", + "user_community_invite_tile": "[name] [username] sizi /c/{communityName} topluluğuna davet etti.", "@user_community_invite_tile": { - "description": "Eg.: James @jamest has invited you to join community \/c\/okuna.", + "description": "Eg.: James @jamest has invited you to join community /c/okuna.", "type": "text", "placeholders": { "communityName": {} diff --git a/assets/i18n/tr/post.arb b/assets/i18n/tr/post.arb index bbd33685d..74e794e09 100644 --- a/assets/i18n/tr/post.arb +++ b/assets/i18n/tr/post.arb @@ -2,809 +2,600 @@ "open_post": "Gönderiyi aç", "@open_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "close_post": "Gönderiyi kapat", "@close_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_opened": "Gönderi açıldı", "@post_opened": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "post_closed": "Gönderi kapatıldı ", "@post_closed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_required_error": "Yorum kısmı boş bırakılamaz.", "@comment_required_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_maxlength_error": "Yorum kısmı {maxLength} karakterden daha uzun olamaz.", "@comment_maxlength_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "timeline_posts_all_loaded": "🎉 Tüm gönderiler yüklendi", "@timeline_posts_all_loaded": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_refreshing_drhoo_title": "Az kaldı!", "@timeline_posts_refreshing_drhoo_title": { "type": "text", - "placeholders": { - - } - }, - "timeline_posts_refreshing_drhoo_subtitle": "Zaman Tüneliniz yükleniyor.", - "@timeline_posts_refreshing_drhoo_subtitle": { - "type": "text", - "placeholders": { - - } - }, - "timeline_posts_no_more_drhoo_title": "Zaman Tüneliniz boş.", - "@timeline_posts_no_more_drhoo_title": { - "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_no_more_drhoo_subtitle": "Başlamak için kullanıcıları takip edin veya bir topluluğa katılın!", "@timeline_posts_no_more_drhoo_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_failed_drhoo_title": "Zaman Tüneliniz yüklenemedi.", "@timeline_posts_failed_drhoo_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_failed_drhoo_subtitle": "Birkaç saniye sonra tekrar deneyin", "@timeline_posts_failed_drhoo_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_default_drhoo_title": "Bir şeyler doğru değil.", "@timeline_posts_default_drhoo_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_default_drhoo_subtitle": "Zaman Tünelini yenilemeyi deneyin.", "@timeline_posts_default_drhoo_subtitle": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_posts_refresh_posts": "Gönderileri yenile", "@timeline_posts_refresh_posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "no_circles_for": "'''{circlesSearchQuery}' ile eşleşen hiçbir çevre bulunamadı.", "@no_circles_for": { "type": "text", "placeholders": { - "circlesSearchQuery": { - - } + "circlesSearchQuery": {} } }, "share_to_circles": "Çevreleri paylaş", "@share_to_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_post": " Gönderi", "@profile_counts_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_posts": " Gönderiler", "@profile_counts_posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_followers": " Takipçiler", "@profile_counts_followers": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_following": " Takip edilen", "@profile_counts_following": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_counts_follower": " Takipçi", "@profile_counts_follower": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "profile_retry_loading_posts": "Tekrar denemek için dokunun", + "@profile_retry_loading_posts": { + "type": "text", + "placeholders": {} }, "action_comment": "Yorum", "@action_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "action_react": "Tepki", + "action_react": "Reaksiyon", "@action_react": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "action_reply": "Cevapla", "@action_reply": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share": "Paylaş", "@share": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_to": "Paylaşın", "@share_to": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "sharing_post_to": "Gönderinin paylaşılması", "@sharing_post_to": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "you_shared_with": "İle paylaştı", "@you_shared_with": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "shared_privately_on": "Özel olarak paylaşıldı", "@shared_privately_on": { "description": "Eg. Shared privately on @shantanu's circles. See following string, usernames_circles . Will combine this in future, needs refactoring.", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "usernames_circles": "@{postCreatorUsername} adlı kullanıcının çevreleri", "@usernames_circles": { "type": "text", "placeholders": { - "postCreatorUsername": { - - } + "postCreatorUsername": {} } }, "share_community": "Paylaş", "@share_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_to_community": "Toplulukta paylaş", "@share_to_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_community_title": "Bir toplulukta", "@share_community_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "share_community_desc": "Gönderiyi parçası olduğunuz bir toplulukta paylaşın.", "@share_community_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_circles": "Çevrelerim", "@my_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "my_circles_desc": "Gönderiyi çevrelerinizden birine veya çoğunluğa paylaşın.", "@my_circles_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "world_circle_name": "Dünya", "@world_circle_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "search_circles": "Çevreleri ara...", "@search_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "reaction_list_tap_retry": "Yükleme tepkilerini yeniden denemek için dokunun.", + "reaction_list_tap_retry": "Reaksiyonları tekrar yüklemek için dokunun.", "@reaction_list_tap_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_new": "Yeni gönderi", "@create_new": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "create_new_post_label": "Yeni gönderi oluştur", + "@create_new_post_label": { + "type": "text", + "placeholders": {} + }, + "create_new_community_post_label": "Yeni topluluk gönderisi oluştur", + "@create_new_community_post_label": { + "type": "text", + "placeholders": {} + }, + "close_create_post_label": "Yeni gönderi oluştur'u kapat", + "@close_create_post_label": { + "type": "text", + "placeholders": {} }, "create_next": "Sonraki", "@create_next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "create_photo": "Fotoğraf", "@create_photo": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "create_video": "Video", + "@create_video": { + "type": "text", + "placeholders": {} }, "commenter_post_text": "Gönderi", "@commenter_post_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_write_something": "Bir şey yaz...", "@commenter_write_something": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_title": "Gönderiyi düzenle", "@edit_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_save": "Kaydet", "@edit_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_expanded_save": "Kaydet", "@commenter_expanded_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_expanded_join_conversation": "Sohbete katıl..", "@commenter_expanded_join_conversation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_expanded_start_conversation": "Sohbeti başlat..", "@commenter_expanded_start_conversation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "commenter_expanded_edit_comment": "Yorumu düzenle", "@commenter_expanded_edit_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "is_closed": "Yorumu kapat", "@is_closed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_reply_expanded_reply_comment": "Yorumu cevapla", "@comment_reply_expanded_reply_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_reply_expanded_post": "Gönderi", "@comment_reply_expanded_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comment_reply_expanded_reply_hint_text": "Cevabınız...", "@comment_reply_expanded_reply_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_posts_title": "Popüler gönderiler", "@trending_posts_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_posts_no_trending_posts": "Popüler gönderiler yok. Birkaç saniye içinde yenilemeyi deneyin.", "@trending_posts_no_trending_posts": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "trending_posts_refresh": "Yenile", "@trending_posts_refresh": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_view_all_comments": "{commentsCount} yorumun tümünü görüntüle", "@comments_view_all_comments": { "type": "text", "placeholders": { - "commentsCount": { - - } + "commentsCount": {} } }, "comments_closed_post": "Gönderi kapatıldı", "@comments_closed_post": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_disabled": "Yorumlar devre dışı", "@comments_disabled": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "text_copied": "Metin kopyalandı!", "@text_copied": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "post_reactions_title": "Gönderi tepkileri", + "post_reactions_title": "Gönderi reaksiyonları", "@post_reactions_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "have_not_shared_anything": "Henüz hiçbir şey paylaşmadınız.", "@have_not_shared_anything": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "user_has_not_shared_anything": "{name} henüz bir şey paylaşmadı.", "@user_has_not_shared_anything": { "type": "text", "placeholders": { - "name": { - - } + "name": {} } }, "comments_header_newest_replies": "En yeni cevaplar", "@comments_header_newest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_newer": "Daha yeni", "@comments_header_newer": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_view_newest_replies": "En yeni cevapları görüntüle", "@comments_header_view_newest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_see_newest_replies": "En yeni cevaplara bakın", "@comments_header_see_newest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_oldest_replies": "En eski cevaplar", "@comments_header_oldest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_older": "Daha eski", "@comments_header_older": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_view_oldest_replies": "En eski cevapları görüntüle", "@comments_header_view_oldest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_see_oldest_replies": "En eski cevaplara bakın", "@comments_header_see_oldest_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_be_the_first_replies": "İlk cevaplayan siz olun", "@comments_header_be_the_first_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_newest_comments": "En yeni yorumlar", "@comments_header_newest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_view_newest_comments": "En yeni yorumları görüntüle", "@comments_header_view_newest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_see_newest_comments": "En yeni yorumları görün", "@comments_header_see_newest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_oldest_comments": "En eski yorumlar", "@comments_header_oldest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_view_oldest_comments": "En eski yorumları görüntüle", "@comments_header_view_oldest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_see_oldest_comments": "En eski yorumları görün", "@comments_header_see_oldest_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_header_be_the_first_comments": "İlk yorumu siz yapın", "@comments_header_be_the_first_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_title": "Gönderi yorumları", "@comments_page_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_no_more_to_load": "Yüklenecek yorum yok", "@comments_page_no_more_to_load": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_tap_to_retry": "Yorumları yüklemeyi yeniden denemek için dokunun.", "@comments_page_tap_to_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_tap_to_retry_replies": "Cevapları tekrar yüklemek için dokunun.", "@comments_page_tap_to_retry_replies": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_no_more_replies_to_load": "Yüklenecek cevap yok", "@comments_page_no_more_replies_to_load": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_page_replies_title": "Cevap yaz", "@comments_page_replies_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "disable_post_comments": "Yorum gönderilmesini devre dışı bırakın", "@disable_post_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "enable_post_comments": "Yorum gönderilmesini etkinleştirin", "@enable_post_comments": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_enabled_message": "Gönderi için yorumlar etkin", "@comments_enabled_message": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "comments_disabled_message": "Gönderi için yorumlar devre dışı", "@comments_disabled_message": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_delete": "Gönderiyi sil", "@actions_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_deleted": "Gönderi silindi", "@actions_deleted": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_delete_comment": "Yorumu sil", "@actions_delete_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_edit_comment": "Yorumu düzenle", "@actions_edit_comment": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_comment_deleted": "Yorum silindi", "@actions_comment_deleted": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_report_text": "Bildir", "@actions_report_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_reported_text": "Bildirildi", "@actions_reported_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "actions_show_more_text": "Daha fazla göster", "@actions_show_more_text": { "description": "Shown for posts with long text to expand the entire text.", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_years": "y", "@time_short_years": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 3y. Keep it as short as possible", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3y. Keep it as short as possible", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_year": "1y", "@time_short_one_year": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_weeks": "h", "@time_short_weeks": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 5w.Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 5w.Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_week": "1h", "@time_short_one_week": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_days": "g", "@time_short_days": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 3d. Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3d. Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_day": "1g", "@time_short_one_day": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_hours": "s", "@time_short_hours": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 3h.Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3h.Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_hour": "1s", "@time_short_one_hour": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_minutes": "dk", "@time_short_minutes": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 13m.Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 13m.Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_seconds": "sn", "@time_short_seconds": { - "description": "Shown in timestamps next to post to indicate how long ago the post\/notification was created for.eg 13s Keep it as short as possible ", + "description": "Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 13s Keep it as short as possible ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_one_minute": "1d", "@time_short_one_minute": { "description": "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "time_short_now_text": "şimdi", "@time_short_now_text": { "description": "Shown when a post was immediately posted, as in time posted is 'now'.Should be as few characters as possible.", "type": "text", - "placeholders": { - - } + "placeholders": {} } } \ No newline at end of file diff --git a/assets/i18n/tr/post_body_link_preview.arb b/assets/i18n/tr/post_body_link_preview.arb new file mode 100644 index 000000000..0c8ce4588 --- /dev/null +++ b/assets/i18n/tr/post_body_link_preview.arb @@ -0,0 +1,14 @@ +{ + "empty": "Bu bağlantı önizlenemedi", + "@empty": { + "type": "text", + "placeholders": {} + }, + "error_with_description": "Web sitesi hatası ile bağlantıyı önizleyemedi: {description}", + "@error_with_description": { + "type": "text", + "placeholders": { + "description": {} + } + } +} \ No newline at end of file diff --git a/assets/i18n/tr/post_body_media.arb b/assets/i18n/tr/post_body_media.arb new file mode 100644 index 000000000..1f8e9bfd2 --- /dev/null +++ b/assets/i18n/tr/post_body_media.arb @@ -0,0 +1,7 @@ +{ + "unsupported": "Desteklenmeyen medya türü", + "@unsupported": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/tr/post_uploader.arb b/assets/i18n/tr/post_uploader.arb new file mode 100644 index 000000000..b47b359e9 --- /dev/null +++ b/assets/i18n/tr/post_uploader.arb @@ -0,0 +1,47 @@ +{ + "generic_upload_failed": "Gönderme başarısız oldu", + "@generic_upload_failed": { + "type": "text", + "placeholders": {} + }, + "creating_post": "Gönderi oluşturuluyor...", + "@creating_post": { + "type": "text", + "placeholders": {} + }, + "compressing_media": "Medya sıkıştırılıyor...", + "@compressing_media": { + "type": "text", + "placeholders": {} + }, + "uploading_media": "Medya yükleniyor...", + "@uploading_media": { + "type": "text", + "placeholders": {} + }, + "publishing": "Gönderi yayınlanıyor...", + "@publishing": { + "type": "text", + "placeholders": {} + }, + "processing": "Gönderi işleniyor...", + "@processing": { + "type": "text", + "placeholders": {} + }, + "success": "Başarılı!", + "@success": { + "type": "text", + "placeholders": {} + }, + "cancelling": "İptal ediliyor", + "@cancelling": { + "type": "text", + "placeholders": {} + }, + "cancelled": "İptal edildi!", + "@cancelled": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/tr/posts_stream.arb b/assets/i18n/tr/posts_stream.arb new file mode 100644 index 000000000..e8d1e7534 --- /dev/null +++ b/assets/i18n/tr/posts_stream.arb @@ -0,0 +1,47 @@ +{ + "all_loaded": "🎉 Tüm gönderiler yüklendi", + "@all_loaded": { + "type": "text", + "placeholders": {} + }, + "refreshing_drhoo_title": "Az kaldı!", + "@refreshing_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "refreshing_drhoo_subtitle": "Akış yenileniyor.", + "@refreshing_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "empty_drhoo_title": "Bu akışta bir şey yok.", + "@empty_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "empty_drhoo_subtitle": "Birkaç saniye içinde yeniden deneyin.", + "@empty_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "failed_drhoo_title": "Akış yüklenemedi.", + "@failed_drhoo_title": { + "type": "text", + "placeholders": {} + }, + "failed_drhoo_subtitle": "Birkaç saniye sonra tekrar deneyin", + "@failed_drhoo_subtitle": { + "type": "text", + "placeholders": {} + }, + "status_tile_empty": "Hiç gönderi bulunamadı", + "@status_tile_empty": { + "type": "text", + "placeholders": {} + }, + "status_tile_no_more_to_load": "🎉 Tüm gönderiler yüklendi", + "@status_tile_no_more_to_load": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/i18n/tr/user.arb b/assets/i18n/tr/user.arb index 3318a6c2a..0cde4e51f 100644 --- a/assets/i18n/tr/user.arb +++ b/assets/i18n/tr/user.arb @@ -3,1345 +3,978 @@ "@thousand_postfix": { "description": "For eg. communty has 3k members", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "million_postfix": "m", "@million_postfix": { "description": "For eg. user has 3m followers", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "billion_postfix": "b", "@billion_postfix": { "description": "For eg. World circle has 7.5b people", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "translate_see_translation": "Çeviriyi gör", "@translate_see_translation": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "translate_show_original": "Orjinali göster", "@translate_show_original": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_lists_account": "1 Hesap", "@follows_lists_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_lists_accounts": "{prettyUsersCount} Hesap", "@follows_lists_accounts": { "description": "prettyUsersCount will be 3m, 50k etc.. so we endup with final string 3k Accounts", "type": "text", "placeholders": { - "prettyUsersCount": { - - } + "prettyUsersCount": {} } }, "edit_profile_user_name_taken": "Kullanıcı adı @{username} alındı", "@edit_profile_user_name_taken": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "profile_action_deny_connection": "Bağlantı isteğini reddet", "@profile_action_deny_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_action_user_blocked": "Kullanıcı engellendi", "@profile_action_user_blocked": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_action_user_unblocked": "Kullanıcının engeli kaldırıldı", "@profile_action_user_unblocked": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_action_cancel_connection": "Bağlantı isteğini iptal et", "@profile_action_cancel_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_url_invalid_error": "Lütfen geçerli bir url adresi girin.", "@profile_url_invalid_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "profile_location_length_error": "Konum adı {maxLength} karakterden daha uzun olamaz.", "@profile_location_length_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "profile_bio_length_error": "Biyografi kısmı {maxLength} karakterden daha uzun olamaz.", "@profile_bio_length_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "follow_button_follow_text": "Takip et", "@follow_button_follow_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_button_unfollow_text": "Takip etmekten vazgeç", "@follow_button_unfollow_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_username": "Kullanıcı adı", "@edit_profile_username": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_update_account_lists": "Hesap listelerini güncelle", "@add_account_update_account_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_to_lists": "Listeye hesap ekle", "@add_account_to_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_update_lists": "Listeleri güncelle", "@add_account_update_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_save": "Kaydet", "@add_account_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_done": "Tamam", "@add_account_done": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "add_account_success": "Başarılı", "@add_account_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "emoji_field_none_selected": "Emoji seçilmedi", "@emoji_field_none_selected": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "emoji_search_none_found": "'{searchQuery}' ile eşleşen hiçbir emoji bulunamadı.", "@emoji_search_none_found": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "follow_lists_title": "Listelerim", "@follow_lists_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_lists_search_for": "Liste ara...", "@follow_lists_search_for": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_lists_no_list_found": "Hiç liste bulunmadı.", "@follow_lists_no_list_found": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follow_lists_no_list_found_for": "'{searchQuery}' için hiç bir liste bulunamadı", "@follow_lists_no_list_found_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "list_name_empty_error": "Liste adı boş olamaz.", "@list_name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "list_name_range_error": "Liste adı {maxLength} karakterden daha uzun olamaz.", "@list_name_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "circle_name_empty_error": "Çevre adı boş bırakılmaz.", "@circle_name_empty_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "circle_name_range_error": "Çevre adı {maxLength} karakterden daha uzun olamaz.", "@circle_name_range_error": { "type": "text", "placeholders": { - "maxLength": { - - } + "maxLength": {} } }, "save_follows_list_name": "İsim", "@save_follows_list_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_hint_text": "örneğin Seyahat, Fotoğrafçılık", "@save_follows_list_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_name_taken": "Liste adı '{listName}' olarak alındı", "@save_follows_list_name_taken": { "type": "text", "placeholders": { - "listName": { - - } + "listName": {} } }, "save_follows_list_emoji": "Emoji", "@save_follows_list_emoji": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_users": "Kullanıcılar", "@save_follows_list_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_edit": "Listeyi düzenle", "@save_follows_list_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_create": "Liste oluştur", "@save_follows_list_create": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_save": "Kaydet", "@save_follows_list_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_follows_list_emoji_required_error": "Emoji gerekli", "@save_follows_list_emoji_required_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_list_edit": "Düzenle", "@follows_list_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follows_list_header_title": "Kullanıcılar", "@follows_list_header_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_name": "İsim", "@edit_profile_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_url": "Url", "@edit_profile_url": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_location": "Konum", "@edit_profile_location": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_bio": "Biyografi", "@edit_profile_bio": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_followers_count": "Takipçi sayısı", "@edit_profile_followers_count": { "type": "text", - "placeholders": { - - } + "placeholders": {} + }, + "edit_profile_community_posts": "Topluluk gönderileri", + "@edit_profile_community_posts": { + "type": "text", + "placeholders": {} }, "edit_profile_title": "Profili düzenle", "@edit_profile_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_save_text": "Kaydet", "@edit_profile_save_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_pick_image": "Resim seç", "@edit_profile_pick_image": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_delete": "Sil", "@edit_profile_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "edit_profile_pick_image_error_too_large": "Resim çok büyük (limit: {limit} MB)", "@edit_profile_pick_image_error_too_large": { "type": "text", "placeholders": { - "limit": { - - } + "limit": {} } }, "tile_following": " · Takip et", "@tile_following": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "following_text": "Takip edilen", "@following_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "following_resource_name": "takip edilen kullanıcılar", "@following_resource_name": { "description": "Eg: Search followed users.., No followed users found. etc ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "tile_delete": "Sil", "@tile_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite": "Davet et", "@invite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "uninvite": "Davet isteğini geri al", "@uninvite": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_member": "Üyeler", "@invite_member": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invite_someone_message": "Hey, seni Okuna'ya davet etmek istiyorum. Öncelikle, iTunes ({iosLink}) veya Google Play Store'dan ({androidLink}) uygulamayı indirin. İkinci olarak, bu kişiselleştirilmiş davet bağlantısını Okuna Uygulamasındaki 'Kayıt ol' formuna yapıştırın: {inviteLink}", "@invite_someone_message": { "type": "text", "placeholders": { - "iosLink": { - - }, - "androidLink": { - - }, - "inviteLink": { - - } + "iosLink": {}, + "androidLink": {}, + "inviteLink": {} } }, "connections_header_circle_desc": "Tüm bağlantılarınızın ekleneceği çevre.", "@connections_header_circle_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connections_header_users": "Kullanıcılar", "@connections_header_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connection_pending": "Beklet", "@connection_pending": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connection_circle_edit": "Düzenle", "@connection_circle_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connections_circle_delete": "Sil", "@connections_circle_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_name": "İsim", "@save_connection_circle_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_hint": "örneğin Arkadaşlar, Aile, İş.", "@save_connection_circle_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_color_name": "Renk", "@save_connection_circle_color_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_color_hint": "(Değiştirmek için dokunun)", "@save_connection_circle_color_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_users": "Kullanıcılar", "@save_connection_circle_users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_edit": "Çevreni düzenle", "@save_connection_circle_edit": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_create": "Çevre oluştur", "@save_connection_circle_create": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "save_connection_circle_save": "Kaydet", "@save_connection_circle_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_connection_circle_save": "Kaydet", "@update_connection_circle_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_connection_circle_updated": "Bağlantı güncellendi", "@update_connection_circle_updated": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "update_connection_circles_title": "Çevre bağlantılarını güncelle", "@update_connection_circles_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_connection_with": "{userName} ile bağlantıyı onaylayın", "@confirm_connection_with": { "type": "text", "placeholders": { - "userName": { - - } + "userName": {} } }, "confirm_connection_add_connection": "Çevrene bağlantı ekle", "@confirm_connection_add_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_connection_connection_confirmed": "Bağlantı onaylandı", "@confirm_connection_connection_confirmed": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_connection_confirm_text": "Onayla", "@confirm_connection_confirm_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connect_to_user_connect_with_username": "{userName} ile bağlan", "@connect_to_user_connect_with_username": { "type": "text", "placeholders": { - "userName": { - - } + "userName": {} } }, "connect_to_user_add_connection": "Çevrene bağlantı ekle", "@connect_to_user_add_connection": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connect_to_user_done": "Tamam", "@connect_to_user_done": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "connect_to_user_request_sent": "Bağlantı isteği gönderildi", "@connect_to_user_request_sent": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "remove_account_from_list": "Hesabı listelerden kaldır", "@remove_account_from_list": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "remove_account_from_list_success": "Başarılı", "@remove_account_from_list_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_title": "Onay", "@confirm_block_user_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_info": "Birbiriniz ile hiçbir paylaşımda bulunamazsınız ve hiçbir şekilde etkileşime giremezsiniz.", "@confirm_block_user_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_yes": "Evet", "@confirm_block_user_yes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_no": "Hayır", "@confirm_block_user_no": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_blocked": "Kullanıcı engellendi.", "@confirm_block_user_blocked": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_block_user_question": "@{username} adlı kullanıcıyı engellemek istediğinizden emin misiniz?", "@confirm_block_user_question": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "save_connection_circle_name_taken": "Çevre adı '{takenConnectionsCircleName}' olarak alındı", "@save_connection_circle_name_taken": { "type": "text", "placeholders": { - "takenConnectionsCircleName": { - - } + "takenConnectionsCircleName": {} } }, "timeline_filters_title": "Zaman Tüneli filtreleri", "@timeline_filters_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_search_desc": "Çevreleri ve listeleri ara...", "@timeline_filters_search_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_clear_all": "Tümünü temizle", "@timeline_filters_clear_all": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_apply_all": "Filtreleri uygula", "@timeline_filters_apply_all": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_circles": "Çevreler", "@timeline_filters_circles": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "timeline_filters_lists": "Listeler", "@timeline_filters_lists": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "followers_title": "Takipçiler", "@followers_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follower_singular": "takipçi", "@follower_singular": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "follower_plural": "takipçiler", "@follower_plural": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_title": "Hesabı sil", "@delete_account_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_current_pwd": "Mevcut Şifre", "@delete_account_current_pwd": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_current_pwd_hint": "Mevcut şifrenizi giriniz", "@delete_account_current_pwd_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_next": "Sonraki", "@delete_account_next": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_title": "Onay", "@delete_account_confirmation_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_desc": "Hesabınızı silmek istediğinizden emin misiniz?", "@delete_account_confirmation_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_desc_info": "Bu kalıcı bir eylemdir ve geri alınamaz.", "@delete_account_confirmation_desc_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_no": "Hayır", "@delete_account_confirmation_no": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_yes": "Evet", "@delete_account_confirmation_yes": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "delete_account_confirmation_goodbye": "Hoşçakal 😢", "@delete_account_confirmation_goodbye": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_create_title": "Davet oluştur", "@invites_create_create_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_edit_title": "Davetiyeyi düzenle", "@invites_create_edit_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_save": "Kaydet", "@invites_create_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_create": "Oluştur", "@invites_create_create": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_name_title": "Kullanıcı adı", "@invites_create_name_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_create_name_hint": "örneğin Ali Ayşe", "@invites_create_name_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_pending": "Beklet", "@invites_pending": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_delete": "Sil", "@invites_delete": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_invite_text": "Davet et", "@invites_invite_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_yourself": "Kendinize daveti paylaşın", "@invites_share_yourself": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_yourself_desc": "Mesajlaşma uygulamaları ve benzerleri arasından seçim yapın.", "@invites_share_yourself_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_email": "Davetiyeyi e-posta ile paylaş", "@invites_share_email": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_text": "E-posta", "@invites_email_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_hint": "örneğin epostanız@email.com", "@invites_email_hint": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_invite_text": "E-posta ile davet et", "@invites_email_invite_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_send_text": "Gönder", "@invites_email_send_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_email_sent_text": "E-posta ile davet gönder", "@invites_email_sent_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_share_email_desc": "Sizin adınıza talimatlar içeren bir davetiye e-postası göndereceğiz", "@invites_share_email_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_edit_text": "Düzenle", "@invites_edit_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_title": "Davet ettiklerim", "@invites_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_accepted_title": "Kabul edilen", "@invites_accepted_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_accepted_group_name": "kabul edilen davetler", "@invites_accepted_group_name": { "description": "Egs where this will end up: Accepted invites (capitalised title), Search accepted invites, See all accepted invites ", "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_accepted_group_item_name": "kabul edilen davet", "@invites_accepted_group_item_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_pending_group_name": "bekleyen davetler", "@invites_pending_group_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_pending_group_item_name": "bekleyen davet", "@invites_pending_group_item_name": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_none_used": "Görünüşe göre hiç davet etmeyi kullanmadın.", "@invites_none_used": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_none_left": "Hiç davetiniz yok.", "@invites_none_left": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_invite_a_friend": "Bir arkadaşını davet et", "@invites_invite_a_friend": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "invites_refresh": "Yenile", "@invites_refresh": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "language_settings_title": "Dil ayarları", "@language_settings_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "language_settings_save": "Kaydet", "@language_settings_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "language_settings_saved_success": "Dil başarıyla değiştirildi", "@language_settings_saved_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "groups_see_all": "{groupName} Tümünü gör", "@groups_see_all": { "description": "Can be, See all joined communities, See all pending invites, See all moderated communities etc. ", "type": "text", "placeholders": { - "groupName": { - - } + "groupName": {} } }, "invites_joined_with": "@{username} kullanıcı adı ile katıldı", "@invites_joined_with": { "type": "text", "placeholders": { - "username": { - - } + "username": {} } }, "invites_pending_email": "{email} adresine gönderilen e-posta davetiyesi beklemede", "@invites_pending_email": { "type": "text", "placeholders": { - "email": { - - } + "email": {} } }, "timeline_filters_no_match": "'{searchQuery}' ile ilgili bir eşleşme yok.", "@timeline_filters_no_match": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "clear_application_cache_text": "Önbelleği temizle", "@clear_application_cache_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_application_cache_desc": "Önbelleğe alınmış gönderileri, hesapları, resimleri ve daha fazlasını temizleyin.", "@clear_application_cache_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_application_cache_success": "Önbellek başarıyla temizlendi", "@clear_application_cache_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_application_cache_failure": "Önbellek temizlenemedi", "@clear_application_cache_failure": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_title": "Kurallar Redded", "@confirm_guidelines_reject_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, - "confirm_guidelines_reject_info": "Kuralları kabul edene kadar Openspace'i kullanamazsınız.", + "confirm_guidelines_reject_info": "Kuralları kabul edene kadar Okuna'yı kullanamazsınız.", "@confirm_guidelines_reject_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_chat_with_team": "Ekiple sohbet et.", "@confirm_guidelines_reject_chat_with_team": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_chat_immediately": "Hemen bir sohbet başlat.", "@confirm_guidelines_reject_chat_immediately": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_chat_community": "Topluluk ile sohbet edin.", "@confirm_guidelines_reject_chat_community": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_join_slack": "Çözüm kanalına katılın.", "@confirm_guidelines_reject_join_slack": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_go_back": "Geri dön", "@confirm_guidelines_reject_go_back": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "confirm_guidelines_reject_delete_account": "Hesabı sil", "@confirm_guidelines_reject_delete_account": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "guidelines_desc": "Lütfen kurallarımızı okumak ve kabul etmek için bir dakikanızı ayırın.", "@guidelines_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "guidelines_accept": "Kabul et", "@guidelines_accept": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "guidelines_reject": "Reddet", "@guidelines_reject": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_title": "E-postanı değiştir", "@change_email_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_email_text": "E-posta", "@change_email_email_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_hint_text": "Yeni E-posta adresinizi giriniz", "@change_email_hint_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_error": "Bu E-posta zaten kayıtlı", "@change_email_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_save": "Kaydet", "@change_email_save": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "change_email_success_info": "Yeni e-posta adresinize bir onay linki gönderdik, yeni e-postanızı doğrulamak için tıklayın", "@change_email_success_info": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_title": "Tercihleri temizle", "@clear_app_preferences_title": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_desc": "Uygulama tercihlerini temizleyin. Şu anda bu sadece tercih edilen yorumların sırası için geçerlidir.", "@clear_app_preferences_desc": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_cleared_successfully": "Tercihler başarıyla temizlendi", "@clear_app_preferences_cleared_successfully": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "email_verification_successful": "Harika! E-postanız şimdi doğrulandı", "@email_verification_successful": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "email_verification_error": "Oops! Belirteciniz geçerli veya süresi doldu, lütfen yeniden deneyin", "@email_verification_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "clear_app_preferences_error": "Tercihler temizlenemedi", "@clear_app_preferences_error": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "disconnect_from_user_success": "Bağlantı başarıyla kesildi", "@disconnect_from_user_success": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "block_user": "Kullanıcıyı engelle", "@block_user": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "unblock_user": "Kullanıcının engelini kaldır", "@unblock_user": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "disconnect_from_user": "{userName} ile bağlantını kes", "@disconnect_from_user": { "type": "text", "placeholders": { - "userName": { - - } + "userName": {} } }, "circle_peoples_count": "{prettyUsersCount} kişi", "@circle_peoples_count": { "type": "text", "placeholders": { - "prettyUsersCount": { - - } + "prettyUsersCount": {} } }, "follows_list_accounts_count": "{prettyUsersCount} hesap", "@follows_list_accounts_count": { "type": "text", "placeholders": { - "prettyUsersCount": { - - } + "prettyUsersCount": {} } } } \ No newline at end of file diff --git a/assets/i18n/tr/user_search.arb b/assets/i18n/tr/user_search.arb index a4f6e8945..fca733956 100644 --- a/assets/i18n/tr/user_search.arb +++ b/assets/i18n/tr/user_search.arb @@ -2,32 +2,24 @@ "search_text": "Ara...", "@search_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "communities": "Topluluklar", "@communities": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "users": "Kullanıcılar", "@users": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "list_search_text": "{resourcePluralName} Aranıyor...", "@list_search_text": { "description": "resourcePluralName can take many forms foreg. Search members... , Search accepted invites, Search communities.. etc.", "type": "text", "placeholders": { - "resourcePluralName": { - - } + "resourcePluralName": {} } }, "list_no_results_found": "{resourcePluralName} için hiç bir bulunamadı.", @@ -35,66 +27,50 @@ "description": "Used in a generic list widget. Can be No users found. No communities found. No pending invites found. Its always a plural. ", "type": "text", "placeholders": { - "resourcePluralName": { - - } + "resourcePluralName": {} } }, "list_refresh_text": "Yenile", "@list_refresh_text": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "list_retry": "Tekrar denemek için tıkla.", "@list_retry": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "cancel": "İptal et", "@cancel": { "type": "text", - "placeholders": { - - } + "placeholders": {} }, "searching_for": "'{searchQuery}' için arama yapılıyor", "@searching_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "no_results_for": "'{searchQuery}' için hiç bir sonuç bulunamadı.", "@no_results_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "no_communities_for": "''{searchQuery} 'için hiç topluluk bulunamadı.", "@no_communities_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } }, "no_users_for": "''{searchQuery}' için hiç bir kullanıcı bulunamadı.", "@no_users_for": { "type": "text", "placeholders": { - "searchQuery": { - - } + "searchQuery": {} } } } \ No newline at end of file diff --git a/assets/i18n/tr/video_picker.arb b/assets/i18n/tr/video_picker.arb new file mode 100644 index 000000000..981b78dee --- /dev/null +++ b/assets/i18n/tr/video_picker.arb @@ -0,0 +1,12 @@ +{ + "from_gallery": "Galeriden", + "@from_gallery": { + "type": "text", + "placeholders": {} + }, + "from_camera": "Kameradan", + "@from_camera": { + "type": "text", + "placeholders": {} + } +} \ No newline at end of file diff --git a/assets/other/public_suffix_list.dat b/assets/other/public_suffix_list.dat new file mode 100644 index 000000000..29c2fd568 --- /dev/null +++ b/assets/other/public_suffix_list.dat @@ -0,0 +1,12992 @@ +// This Source Code Form is subject to the terms of the Mozilla Public +// License, v. 2.0. If a copy of the MPL was not distributed with this +// file, You can obtain one at https://mozilla.org/MPL/2.0/. + +// Please pull this list from, and only from https://publicsuffix.org/list/public_suffix_list.dat, +// rather than any other VCS sites. Pulling from any other URL is not guaranteed to be supported. + +// Instructions on pulling and using this list can be found at https://publicsuffix.org/list/. + +// ===BEGIN ICANN DOMAINS=== + +// ac : https://en.wikipedia.org/wiki/.ac +ac +com.ac +edu.ac +gov.ac +net.ac +mil.ac +org.ac + +// ad : https://en.wikipedia.org/wiki/.ad +ad +nom.ad + +// ae : https://en.wikipedia.org/wiki/.ae +// see also: "Domain Name Eligibility Policy" at http://www.aeda.ae/eng/aepolicy.php +ae +co.ae +net.ae +org.ae +sch.ae +ac.ae +gov.ae +mil.ae + +// aero : see https://www.information.aero/index.php?id=66 +aero +accident-investigation.aero +accident-prevention.aero +aerobatic.aero +aeroclub.aero +aerodrome.aero +agents.aero +aircraft.aero +airline.aero +airport.aero +air-surveillance.aero +airtraffic.aero +air-traffic-control.aero +ambulance.aero +amusement.aero +association.aero +author.aero +ballooning.aero +broker.aero +caa.aero +cargo.aero +catering.aero +certification.aero +championship.aero +charter.aero +civilaviation.aero +club.aero +conference.aero +consultant.aero +consulting.aero +control.aero +council.aero +crew.aero +design.aero +dgca.aero +educator.aero +emergency.aero +engine.aero +engineer.aero +entertainment.aero +equipment.aero +exchange.aero +express.aero +federation.aero +flight.aero +freight.aero +fuel.aero +gliding.aero +government.aero +groundhandling.aero +group.aero +hanggliding.aero +homebuilt.aero +insurance.aero +journal.aero +journalist.aero +leasing.aero +logistics.aero +magazine.aero +maintenance.aero +media.aero +microlight.aero +modelling.aero +navigation.aero +parachuting.aero +paragliding.aero +passenger-association.aero +pilot.aero +press.aero +production.aero +recreation.aero +repbody.aero +res.aero +research.aero +rotorcraft.aero +safety.aero +scientist.aero +services.aero +show.aero +skydiving.aero +software.aero +student.aero +trader.aero +trading.aero +trainer.aero +union.aero +workinggroup.aero +works.aero + +// af : http://www.nic.af/help.jsp +af +gov.af +com.af +org.af +net.af +edu.af + +// ag : http://www.nic.ag/prices.htm +ag +com.ag +org.ag +net.ag +co.ag +nom.ag + +// ai : http://nic.com.ai/ +ai +off.ai +com.ai +net.ai +org.ai + +// al : http://www.ert.gov.al/ert_alb/faq_det.html?Id=31 +al +com.al +edu.al +gov.al +mil.al +net.al +org.al + +// am : https://www.amnic.net/policy/en/Policy_EN.pdf +am +co.am +com.am +commune.am +net.am +org.am + +// ao : https://en.wikipedia.org/wiki/.ao +// http://www.dns.ao/REGISTR.DOC +ao +ed.ao +gv.ao +og.ao +co.ao +pb.ao +it.ao + +// aq : https://en.wikipedia.org/wiki/.aq +aq + +// ar : https://nic.ar/nic-argentina/normativa-vigente +ar +com.ar +edu.ar +gob.ar +gov.ar +int.ar +mil.ar +musica.ar +net.ar +org.ar +tur.ar + +// arpa : https://en.wikipedia.org/wiki/.arpa +// Confirmed by registry 2008-06-18 +arpa +e164.arpa +in-addr.arpa +ip6.arpa +iris.arpa +uri.arpa +urn.arpa + +// as : https://en.wikipedia.org/wiki/.as +as +gov.as + +// asia : https://en.wikipedia.org/wiki/.asia +asia + +// at : https://en.wikipedia.org/wiki/.at +// Confirmed by registry 2008-06-17 +at +ac.at +co.at +gv.at +or.at + +// au : https://en.wikipedia.org/wiki/.au +// http://www.auda.org.au/ +au +// 2LDs +com.au +net.au +org.au +edu.au +gov.au +asn.au +id.au +// Historic 2LDs (closed to new registration, but sites still exist) +info.au +conf.au +oz.au +// CGDNs - http://www.cgdn.org.au/ +act.au +nsw.au +nt.au +qld.au +sa.au +tas.au +vic.au +wa.au +// 3LDs +act.edu.au +catholic.edu.au +eq.edu.au +nsw.edu.au +nt.edu.au +qld.edu.au +sa.edu.au +tas.edu.au +vic.edu.au +wa.edu.au +// act.gov.au Bug 984824 - Removed at request of Greg Tankard +// nsw.gov.au Bug 547985 - Removed at request of +// nt.gov.au Bug 940478 - Removed at request of Greg Connors +qld.gov.au +sa.gov.au +tas.gov.au +vic.gov.au +wa.gov.au +// 4LDs +education.tas.edu.au +schools.nsw.edu.au + +// aw : https://en.wikipedia.org/wiki/.aw +aw +com.aw + +// ax : https://en.wikipedia.org/wiki/.ax +ax + +// az : https://en.wikipedia.org/wiki/.az +az +com.az +net.az +int.az +gov.az +org.az +edu.az +info.az +pp.az +mil.az +name.az +pro.az +biz.az + +// ba : http://nic.ba/users_data/files/pravilnik_o_registraciji.pdf +ba +com.ba +edu.ba +gov.ba +mil.ba +net.ba +org.ba + +// bb : https://en.wikipedia.org/wiki/.bb +bb +biz.bb +co.bb +com.bb +edu.bb +gov.bb +info.bb +net.bb +org.bb +store.bb +tv.bb + +// bd : https://en.wikipedia.org/wiki/.bd +*.bd + +// be : https://en.wikipedia.org/wiki/.be +// Confirmed by registry 2008-06-08 +be +ac.be + +// bf : https://en.wikipedia.org/wiki/.bf +bf +gov.bf + +// bg : https://en.wikipedia.org/wiki/.bg +// https://www.register.bg/user/static/rules/en/index.html +bg +a.bg +b.bg +c.bg +d.bg +e.bg +f.bg +g.bg +h.bg +i.bg +j.bg +k.bg +l.bg +m.bg +n.bg +o.bg +p.bg +q.bg +r.bg +s.bg +t.bg +u.bg +v.bg +w.bg +x.bg +y.bg +z.bg +0.bg +1.bg +2.bg +3.bg +4.bg +5.bg +6.bg +7.bg +8.bg +9.bg + +// bh : https://en.wikipedia.org/wiki/.bh +bh +com.bh +edu.bh +net.bh +org.bh +gov.bh + +// bi : https://en.wikipedia.org/wiki/.bi +// http://whois.nic.bi/ +bi +co.bi +com.bi +edu.bi +or.bi +org.bi + +// biz : https://en.wikipedia.org/wiki/.biz +biz + +// bj : https://en.wikipedia.org/wiki/.bj +bj +asso.bj +barreau.bj +gouv.bj + +// bm : http://www.bermudanic.bm/dnr-text.txt +bm +com.bm +edu.bm +gov.bm +net.bm +org.bm + +// bn : http://www.bnnic.bn/faqs +bn +com.bn +edu.bn +gov.bn +net.bn +org.bn + +// bo : https://nic.bo/delegacion2015.php#h-1.10 +bo +com.bo +edu.bo +gob.bo +int.bo +org.bo +net.bo +mil.bo +tv.bo +web.bo +// Social Domains +academia.bo +agro.bo +arte.bo +blog.bo +bolivia.bo +ciencia.bo +cooperativa.bo +democracia.bo +deporte.bo +ecologia.bo +economia.bo +empresa.bo +indigena.bo +industria.bo +info.bo +medicina.bo +movimiento.bo +musica.bo +natural.bo +nombre.bo +noticias.bo +patria.bo +politica.bo +profesional.bo +plurinacional.bo +pueblo.bo +revista.bo +salud.bo +tecnologia.bo +tksat.bo +transporte.bo +wiki.bo + +// br : http://registro.br/dominio/categoria.html +// Submitted by registry +br +9guacu.br +abc.br +adm.br +adv.br +agr.br +aju.br +am.br +anani.br +aparecida.br +arq.br +art.br +ato.br +b.br +barueri.br +belem.br +bhz.br +bio.br +blog.br +bmd.br +boavista.br +bsb.br +campinagrande.br +campinas.br +caxias.br +cim.br +cng.br +cnt.br +com.br +contagem.br +coop.br +cri.br +cuiaba.br +curitiba.br +def.br +ecn.br +eco.br +edu.br +emp.br +eng.br +esp.br +etc.br +eti.br +far.br +feira.br +flog.br +floripa.br +fm.br +fnd.br +fortal.br +fot.br +foz.br +fst.br +g12.br +ggf.br +goiania.br +gov.br +// gov.br 26 states + df https://en.wikipedia.org/wiki/States_of_Brazil +ac.gov.br +al.gov.br +am.gov.br +ap.gov.br +ba.gov.br +ce.gov.br +df.gov.br +es.gov.br +go.gov.br +ma.gov.br +mg.gov.br +ms.gov.br +mt.gov.br +pa.gov.br +pb.gov.br +pe.gov.br +pi.gov.br +pr.gov.br +rj.gov.br +rn.gov.br +ro.gov.br +rr.gov.br +rs.gov.br +sc.gov.br +se.gov.br +sp.gov.br +to.gov.br +gru.br +imb.br +ind.br +inf.br +jab.br +jampa.br +jdf.br +joinville.br +jor.br +jus.br +leg.br +lel.br +londrina.br +macapa.br +maceio.br +manaus.br +maringa.br +mat.br +med.br +mil.br +morena.br +mp.br +mus.br +natal.br +net.br +niteroi.br +*.nom.br +not.br +ntr.br +odo.br +ong.br +org.br +osasco.br +palmas.br +poa.br +ppg.br +pro.br +psc.br +psi.br +pvh.br +qsl.br +radio.br +rec.br +recife.br +ribeirao.br +rio.br +riobranco.br +riopreto.br +salvador.br +sampa.br +santamaria.br +santoandre.br +saobernardo.br +saogonca.br +sjc.br +slg.br +slz.br +sorocaba.br +srv.br +taxi.br +tc.br +teo.br +the.br +tmp.br +trd.br +tur.br +tv.br +udi.br +vet.br +vix.br +vlog.br +wiki.br +zlg.br + +// bs : http://www.nic.bs/rules.html +bs +com.bs +net.bs +org.bs +edu.bs +gov.bs + +// bt : https://en.wikipedia.org/wiki/.bt +bt +com.bt +edu.bt +gov.bt +net.bt +org.bt + +// bv : No registrations at this time. +// Submitted by registry +bv + +// bw : https://en.wikipedia.org/wiki/.bw +// http://www.gobin.info/domainname/bw.doc +// list of other 2nd level tlds ? +bw +co.bw +org.bw + +// by : https://en.wikipedia.org/wiki/.by +// http://tld.by/rules_2006_en.html +// list of other 2nd level tlds ? +by +gov.by +mil.by +// Official information does not indicate that com.by is a reserved +// second-level domain, but it's being used as one (see www.google.com.by and +// www.yahoo.com.by, for example), so we list it here for safety's sake. +com.by + +// http://hoster.by/ +of.by + +// bz : https://en.wikipedia.org/wiki/.bz +// http://www.belizenic.bz/ +bz +com.bz +net.bz +org.bz +edu.bz +gov.bz + +// ca : https://en.wikipedia.org/wiki/.ca +ca +// ca geographical names +ab.ca +bc.ca +mb.ca +nb.ca +nf.ca +nl.ca +ns.ca +nt.ca +nu.ca +on.ca +pe.ca +qc.ca +sk.ca +yk.ca +// gc.ca: https://en.wikipedia.org/wiki/.gc.ca +// see also: http://registry.gc.ca/en/SubdomainFAQ +gc.ca + +// cat : https://en.wikipedia.org/wiki/.cat +cat + +// cc : https://en.wikipedia.org/wiki/.cc +cc + +// cd : https://en.wikipedia.org/wiki/.cd +// see also: https://www.nic.cd/domain/insertDomain_2.jsp?act=1 +cd +gov.cd + +// cf : https://en.wikipedia.org/wiki/.cf +cf + +// cg : https://en.wikipedia.org/wiki/.cg +cg + +// ch : https://en.wikipedia.org/wiki/.ch +ch + +// ci : https://en.wikipedia.org/wiki/.ci +// http://www.nic.ci/index.php?page=charte +ci +org.ci +or.ci +com.ci +co.ci +edu.ci +ed.ci +ac.ci +net.ci +go.ci +asso.ci +aéroport.ci +int.ci +presse.ci +md.ci +gouv.ci + +// ck : https://en.wikipedia.org/wiki/.ck +*.ck +!www.ck + +// cl : https://en.wikipedia.org/wiki/.cl +cl +gov.cl +gob.cl +co.cl +mil.cl + +// cm : https://en.wikipedia.org/wiki/.cm plus bug 981927 +cm +co.cm +com.cm +gov.cm +net.cm + +// cn : https://en.wikipedia.org/wiki/.cn +// Submitted by registry +cn +ac.cn +com.cn +edu.cn +gov.cn +net.cn +org.cn +mil.cn +公司.cn +网络.cn +網絡.cn +// cn geographic names +ah.cn +bj.cn +cq.cn +fj.cn +gd.cn +gs.cn +gz.cn +gx.cn +ha.cn +hb.cn +he.cn +hi.cn +hl.cn +hn.cn +jl.cn +js.cn +jx.cn +ln.cn +nm.cn +nx.cn +qh.cn +sc.cn +sd.cn +sh.cn +sn.cn +sx.cn +tj.cn +xj.cn +xz.cn +yn.cn +zj.cn +hk.cn +mo.cn +tw.cn + +// co : https://en.wikipedia.org/wiki/.co +// Submitted by registry +co +arts.co +com.co +edu.co +firm.co +gov.co +info.co +int.co +mil.co +net.co +nom.co +org.co +rec.co +web.co + +// com : https://en.wikipedia.org/wiki/.com +com + +// coop : https://en.wikipedia.org/wiki/.coop +coop + +// cr : http://www.nic.cr/niccr_publico/showRegistroDominiosScreen.do +cr +ac.cr +co.cr +ed.cr +fi.cr +go.cr +or.cr +sa.cr + +// cu : https://en.wikipedia.org/wiki/.cu +cu +com.cu +edu.cu +org.cu +net.cu +gov.cu +inf.cu + +// cv : https://en.wikipedia.org/wiki/.cv +cv + +// cw : http://www.una.cw/cw_registry/ +// Confirmed by registry 2013-03-26 +cw +com.cw +edu.cw +net.cw +org.cw + +// cx : https://en.wikipedia.org/wiki/.cx +// list of other 2nd level tlds ? +cx +gov.cx + +// cy : http://www.nic.cy/ +// Submitted by registry Panayiotou Fotia +cy +ac.cy +biz.cy +com.cy +ekloges.cy +gov.cy +ltd.cy +name.cy +net.cy +org.cy +parliament.cy +press.cy +pro.cy +tm.cy + +// cz : https://en.wikipedia.org/wiki/.cz +cz + +// de : https://en.wikipedia.org/wiki/.de +// Confirmed by registry (with technical +// reservations) 2008-07-01 +de + +// dj : https://en.wikipedia.org/wiki/.dj +dj + +// dk : https://en.wikipedia.org/wiki/.dk +// Confirmed by registry 2008-06-17 +dk + +// dm : https://en.wikipedia.org/wiki/.dm +dm +com.dm +net.dm +org.dm +edu.dm +gov.dm + +// do : https://en.wikipedia.org/wiki/.do +do +art.do +com.do +edu.do +gob.do +gov.do +mil.do +net.do +org.do +sld.do +web.do + +// dz : https://en.wikipedia.org/wiki/.dz +dz +com.dz +org.dz +net.dz +gov.dz +edu.dz +asso.dz +pol.dz +art.dz + +// ec : http://www.nic.ec/reg/paso1.asp +// Submitted by registry +ec +com.ec +info.ec +net.ec +fin.ec +k12.ec +med.ec +pro.ec +org.ec +edu.ec +gov.ec +gob.ec +mil.ec + +// edu : https://en.wikipedia.org/wiki/.edu +edu + +// ee : http://www.eenet.ee/EENet/dom_reeglid.html#lisa_B +ee +edu.ee +gov.ee +riik.ee +lib.ee +med.ee +com.ee +pri.ee +aip.ee +org.ee +fie.ee + +// eg : https://en.wikipedia.org/wiki/.eg +eg +com.eg +edu.eg +eun.eg +gov.eg +mil.eg +name.eg +net.eg +org.eg +sci.eg + +// er : https://en.wikipedia.org/wiki/.er +*.er + +// es : https://www.nic.es/site_ingles/ingles/dominios/index.html +es +com.es +nom.es +org.es +gob.es +edu.es + +// et : https://en.wikipedia.org/wiki/.et +et +com.et +gov.et +org.et +edu.et +biz.et +name.et +info.et +net.et + +// eu : https://en.wikipedia.org/wiki/.eu +eu + +// fi : https://en.wikipedia.org/wiki/.fi +fi +// aland.fi : https://en.wikipedia.org/wiki/.ax +// This domain is being phased out in favor of .ax. As there are still many +// domains under aland.fi, we still keep it on the list until aland.fi is +// completely removed. +// TODO: Check for updates (expected to be phased out around Q1/2009) +aland.fi + +// fj : https://en.wikipedia.org/wiki/.fj +*.fj + +// fk : https://en.wikipedia.org/wiki/.fk +*.fk + +// fm : https://en.wikipedia.org/wiki/.fm +fm + +// fo : https://en.wikipedia.org/wiki/.fo +fo + +// fr : http://www.afnic.fr/ +// domaines descriptifs : https://www.afnic.fr/medias/documents/Cadre_legal/Afnic_Naming_Policy_12122016_VEN.pdf +fr +asso.fr +com.fr +gouv.fr +nom.fr +prd.fr +tm.fr +// domaines sectoriels : https://www.afnic.fr/en/products-and-services/the-fr-tld/sector-based-fr-domains-4.html +aeroport.fr +avocat.fr +avoues.fr +cci.fr +chambagri.fr +chirurgiens-dentistes.fr +experts-comptables.fr +geometre-expert.fr +greta.fr +huissier-justice.fr +medecin.fr +notaires.fr +pharmacien.fr +port.fr +veterinaire.fr + +// ga : https://en.wikipedia.org/wiki/.ga +ga + +// gb : This registry is effectively dormant +// Submitted by registry +gb + +// gd : https://en.wikipedia.org/wiki/.gd +gd + +// ge : http://www.nic.net.ge/policy_en.pdf +ge +com.ge +edu.ge +gov.ge +org.ge +mil.ge +net.ge +pvt.ge + +// gf : https://en.wikipedia.org/wiki/.gf +gf + +// gg : http://www.channelisles.net/register-domains/ +// Confirmed by registry 2013-11-28 +gg +co.gg +net.gg +org.gg + +// gh : https://en.wikipedia.org/wiki/.gh +// see also: http://www.nic.gh/reg_now.php +// Although domains directly at second level are not possible at the moment, +// they have been possible for some time and may come back. +gh +com.gh +edu.gh +gov.gh +org.gh +mil.gh + +// gi : http://www.nic.gi/rules.html +gi +com.gi +ltd.gi +gov.gi +mod.gi +edu.gi +org.gi + +// gl : https://en.wikipedia.org/wiki/.gl +// http://nic.gl +gl +co.gl +com.gl +edu.gl +net.gl +org.gl + +// gm : http://www.nic.gm/htmlpages%5Cgm-policy.htm +gm + +// gn : http://psg.com/dns/gn/gn.txt +// Submitted by registry +gn +ac.gn +com.gn +edu.gn +gov.gn +org.gn +net.gn + +// gov : https://en.wikipedia.org/wiki/.gov +gov + +// gp : http://www.nic.gp/index.php?lang=en +gp +com.gp +net.gp +mobi.gp +edu.gp +org.gp +asso.gp + +// gq : https://en.wikipedia.org/wiki/.gq +gq + +// gr : https://grweb.ics.forth.gr/english/1617-B-2005.html +// Submitted by registry +gr +com.gr +edu.gr +net.gr +org.gr +gov.gr + +// gs : https://en.wikipedia.org/wiki/.gs +gs + +// gt : http://www.gt/politicas_de_registro.html +gt +com.gt +edu.gt +gob.gt +ind.gt +mil.gt +net.gt +org.gt + +// gu : http://gadao.gov.gu/register.html +// University of Guam : https://www.uog.edu +// Submitted by uognoc@triton.uog.edu +gu +com.gu +edu.gu +gov.gu +guam.gu +info.gu +net.gu +org.gu +web.gu + +// gw : https://en.wikipedia.org/wiki/.gw +gw + +// gy : https://en.wikipedia.org/wiki/.gy +// http://registry.gy/ +gy +co.gy +com.gy +edu.gy +gov.gy +net.gy +org.gy + +// hk : https://www.hkirc.hk +// Submitted by registry +hk +com.hk +edu.hk +gov.hk +idv.hk +net.hk +org.hk +公司.hk +教育.hk +敎育.hk +政府.hk +個人.hk +个人.hk +箇人.hk +網络.hk +网络.hk +组織.hk +網絡.hk +网絡.hk +组织.hk +組織.hk +組织.hk + +// hm : https://en.wikipedia.org/wiki/.hm +hm + +// hn : http://www.nic.hn/politicas/ps02,,05.html +hn +com.hn +edu.hn +org.hn +net.hn +mil.hn +gob.hn + +// hr : http://www.dns.hr/documents/pdf/HRTLD-regulations.pdf +hr +iz.hr +from.hr +name.hr +com.hr + +// ht : http://www.nic.ht/info/charte.cfm +ht +com.ht +shop.ht +firm.ht +info.ht +adult.ht +net.ht +pro.ht +org.ht +med.ht +art.ht +coop.ht +pol.ht +asso.ht +edu.ht +rel.ht +gouv.ht +perso.ht + +// hu : http://www.domain.hu/domain/English/sld.html +// Confirmed by registry 2008-06-12 +hu +co.hu +info.hu +org.hu +priv.hu +sport.hu +tm.hu +2000.hu +agrar.hu +bolt.hu +casino.hu +city.hu +erotica.hu +erotika.hu +film.hu +forum.hu +games.hu +hotel.hu +ingatlan.hu +jogasz.hu +konyvelo.hu +lakas.hu +media.hu +news.hu +reklam.hu +sex.hu +shop.hu +suli.hu +szex.hu +tozsde.hu +utazas.hu +video.hu + +// id : https://pandi.id/en/domain/registration-requirements/ +id +ac.id +biz.id +co.id +desa.id +go.id +mil.id +my.id +net.id +or.id +ponpes.id +sch.id +web.id + +// ie : https://en.wikipedia.org/wiki/.ie +ie +gov.ie + +// il : http://www.isoc.org.il/domains/ +il +ac.il +co.il +gov.il +idf.il +k12.il +muni.il +net.il +org.il + +// im : https://www.nic.im/ +// Submitted by registry +im +ac.im +co.im +com.im +ltd.co.im +net.im +org.im +plc.co.im +tt.im +tv.im + +// in : https://en.wikipedia.org/wiki/.in +// see also: https://registry.in/Policies +// Please note, that nic.in is not an official eTLD, but used by most +// government institutions. +in +co.in +firm.in +net.in +org.in +gen.in +ind.in +nic.in +ac.in +edu.in +res.in +gov.in +mil.in + +// info : https://en.wikipedia.org/wiki/.info +info + +// int : https://en.wikipedia.org/wiki/.int +// Confirmed by registry 2008-06-18 +int +eu.int + +// io : http://www.nic.io/rules.html +// list of other 2nd level tlds ? +io +com.io + +// iq : http://www.cmc.iq/english/iq/iqregister1.htm +iq +gov.iq +edu.iq +mil.iq +com.iq +org.iq +net.iq + +// ir : http://www.nic.ir/Terms_and_Conditions_ir,_Appendix_1_Domain_Rules +// Also see http://www.nic.ir/Internationalized_Domain_Names +// Two .ir entries added at request of , 2010-04-16 +ir +ac.ir +co.ir +gov.ir +id.ir +net.ir +org.ir +sch.ir +// xn--mgba3a4f16a.ir (.ir, Persian YEH) +ایران.ir +// xn--mgba3a4fra.ir (.ir, Arabic YEH) +ايران.ir + +// is : http://www.isnic.is/domain/rules.php +// Confirmed by registry 2008-12-06 +is +net.is +com.is +edu.is +gov.is +org.is +int.is + +// it : https://en.wikipedia.org/wiki/.it +it +gov.it +edu.it +// Reserved geo-names (regions and provinces): +// http://www.nic.it/sites/default/files/docs/Regulation_assignation_v7.1.pdf +// Regions +abr.it +abruzzo.it +aosta-valley.it +aostavalley.it +bas.it +basilicata.it +cal.it +calabria.it +cam.it +campania.it +emilia-romagna.it +emiliaromagna.it +emr.it +friuli-v-giulia.it +friuli-ve-giulia.it +friuli-vegiulia.it +friuli-venezia-giulia.it +friuli-veneziagiulia.it +friuli-vgiulia.it +friuliv-giulia.it +friulive-giulia.it +friulivegiulia.it +friulivenezia-giulia.it +friuliveneziagiulia.it +friulivgiulia.it +fvg.it +laz.it +lazio.it +lig.it +liguria.it +lom.it +lombardia.it +lombardy.it +lucania.it +mar.it +marche.it +mol.it +molise.it +piedmont.it +piemonte.it +pmn.it +pug.it +puglia.it +sar.it +sardegna.it +sardinia.it +sic.it +sicilia.it +sicily.it +taa.it +tos.it +toscana.it +trentin-sud-tirol.it +trentin-süd-tirol.it +trentin-sudtirol.it +trentin-südtirol.it +trentin-sued-tirol.it +trentin-suedtirol.it +trentino-a-adige.it +trentino-aadige.it +trentino-alto-adige.it +trentino-altoadige.it +trentino-s-tirol.it +trentino-stirol.it +trentino-sud-tirol.it +trentino-süd-tirol.it +trentino-sudtirol.it +trentino-südtirol.it +trentino-sued-tirol.it +trentino-suedtirol.it +trentino.it +trentinoa-adige.it +trentinoaadige.it +trentinoalto-adige.it +trentinoaltoadige.it +trentinos-tirol.it +trentinostirol.it +trentinosud-tirol.it +trentinosüd-tirol.it +trentinosudtirol.it +trentinosüdtirol.it +trentinosued-tirol.it +trentinosuedtirol.it +trentinsud-tirol.it +trentinsüd-tirol.it +trentinsudtirol.it +trentinsüdtirol.it +trentinsued-tirol.it +trentinsuedtirol.it +tuscany.it +umb.it +umbria.it +val-d-aosta.it +val-daosta.it +vald-aosta.it +valdaosta.it +valle-aosta.it +valle-d-aosta.it +valle-daosta.it +valleaosta.it +valled-aosta.it +valledaosta.it +vallee-aoste.it +vallée-aoste.it +vallee-d-aoste.it +vallée-d-aoste.it +valleeaoste.it +valléeaoste.it +valleedaoste.it +valléedaoste.it +vao.it +vda.it +ven.it +veneto.it +// Provinces +ag.it +agrigento.it +al.it +alessandria.it +alto-adige.it +altoadige.it +an.it +ancona.it +andria-barletta-trani.it +andria-trani-barletta.it +andriabarlettatrani.it +andriatranibarletta.it +ao.it +aosta.it +aoste.it +ap.it +aq.it +aquila.it +ar.it +arezzo.it +ascoli-piceno.it +ascolipiceno.it +asti.it +at.it +av.it +avellino.it +ba.it +balsan-sudtirol.it +balsan-südtirol.it +balsan-suedtirol.it +balsan.it +bari.it +barletta-trani-andria.it +barlettatraniandria.it +belluno.it +benevento.it +bergamo.it +bg.it +bi.it +biella.it +bl.it +bn.it +bo.it +bologna.it +bolzano-altoadige.it +bolzano.it +bozen-sudtirol.it +bozen-südtirol.it +bozen-suedtirol.it +bozen.it +br.it +brescia.it +brindisi.it +bs.it +bt.it +bulsan-sudtirol.it +bulsan-südtirol.it +bulsan-suedtirol.it +bulsan.it +bz.it +ca.it +cagliari.it +caltanissetta.it +campidano-medio.it +campidanomedio.it +campobasso.it +carbonia-iglesias.it +carboniaiglesias.it +carrara-massa.it +carraramassa.it +caserta.it +catania.it +catanzaro.it +cb.it +ce.it +cesena-forli.it +cesena-forlì.it +cesenaforli.it +cesenaforlì.it +ch.it +chieti.it +ci.it +cl.it +cn.it +co.it +como.it +cosenza.it +cr.it +cremona.it +crotone.it +cs.it +ct.it +cuneo.it +cz.it +dell-ogliastra.it +dellogliastra.it +en.it +enna.it +fc.it +fe.it +fermo.it +ferrara.it +fg.it +fi.it +firenze.it +florence.it +fm.it +foggia.it +forli-cesena.it +forlì-cesena.it +forlicesena.it +forlìcesena.it +fr.it +frosinone.it +ge.it +genoa.it +genova.it +go.it +gorizia.it +gr.it +grosseto.it +iglesias-carbonia.it +iglesiascarbonia.it +im.it +imperia.it +is.it +isernia.it +kr.it +la-spezia.it +laquila.it +laspezia.it +latina.it +lc.it +le.it +lecce.it +lecco.it +li.it +livorno.it +lo.it +lodi.it +lt.it +lu.it +lucca.it +macerata.it +mantova.it +massa-carrara.it +massacarrara.it +matera.it +mb.it +mc.it +me.it +medio-campidano.it +mediocampidano.it +messina.it +mi.it +milan.it +milano.it +mn.it +mo.it +modena.it +monza-brianza.it +monza-e-della-brianza.it +monza.it +monzabrianza.it +monzaebrianza.it +monzaedellabrianza.it +ms.it +mt.it +na.it +naples.it +napoli.it +no.it +novara.it +nu.it +nuoro.it +og.it +ogliastra.it +olbia-tempio.it +olbiatempio.it +or.it +oristano.it +ot.it +pa.it +padova.it +padua.it +palermo.it +parma.it +pavia.it +pc.it +pd.it +pe.it +perugia.it +pesaro-urbino.it +pesarourbino.it +pescara.it +pg.it +pi.it +piacenza.it +pisa.it +pistoia.it +pn.it +po.it +pordenone.it +potenza.it +pr.it +prato.it +pt.it +pu.it +pv.it +pz.it +ra.it +ragusa.it +ravenna.it +rc.it +re.it +reggio-calabria.it +reggio-emilia.it +reggiocalabria.it +reggioemilia.it +rg.it +ri.it +rieti.it +rimini.it +rm.it +rn.it +ro.it +roma.it +rome.it +rovigo.it +sa.it +salerno.it +sassari.it +savona.it +si.it +siena.it +siracusa.it +so.it +sondrio.it +sp.it +sr.it +ss.it +suedtirol.it +südtirol.it +sv.it +ta.it +taranto.it +te.it +tempio-olbia.it +tempioolbia.it +teramo.it +terni.it +tn.it +to.it +torino.it +tp.it +tr.it +trani-andria-barletta.it +trani-barletta-andria.it +traniandriabarletta.it +tranibarlettaandria.it +trapani.it +trento.it +treviso.it +trieste.it +ts.it +turin.it +tv.it +ud.it +udine.it +urbino-pesaro.it +urbinopesaro.it +va.it +varese.it +vb.it +vc.it +ve.it +venezia.it +venice.it +verbania.it +vercelli.it +verona.it +vi.it +vibo-valentia.it +vibovalentia.it +vicenza.it +viterbo.it +vr.it +vs.it +vt.it +vv.it + +// je : http://www.channelisles.net/register-domains/ +// Confirmed by registry 2013-11-28 +je +co.je +net.je +org.je + +// jm : http://www.com.jm/register.html +*.jm + +// jo : http://www.dns.jo/Registration_policy.aspx +jo +com.jo +org.jo +net.jo +edu.jo +sch.jo +gov.jo +mil.jo +name.jo + +// jobs : https://en.wikipedia.org/wiki/.jobs +jobs + +// jp : https://en.wikipedia.org/wiki/.jp +// http://jprs.co.jp/en/jpdomain.html +// Submitted by registry +jp +// jp organizational type names +ac.jp +ad.jp +co.jp +ed.jp +go.jp +gr.jp +lg.jp +ne.jp +or.jp +// jp prefecture type names +aichi.jp +akita.jp +aomori.jp +chiba.jp +ehime.jp +fukui.jp +fukuoka.jp +fukushima.jp +gifu.jp +gunma.jp +hiroshima.jp +hokkaido.jp +hyogo.jp +ibaraki.jp +ishikawa.jp +iwate.jp +kagawa.jp +kagoshima.jp +kanagawa.jp +kochi.jp +kumamoto.jp +kyoto.jp +mie.jp +miyagi.jp +miyazaki.jp +nagano.jp +nagasaki.jp +nara.jp +niigata.jp +oita.jp +okayama.jp +okinawa.jp +osaka.jp +saga.jp +saitama.jp +shiga.jp +shimane.jp +shizuoka.jp +tochigi.jp +tokushima.jp +tokyo.jp +tottori.jp +toyama.jp +wakayama.jp +yamagata.jp +yamaguchi.jp +yamanashi.jp +栃木.jp +愛知.jp +愛媛.jp +兵庫.jp +熊本.jp +茨城.jp +北海道.jp +千葉.jp +和歌山.jp +長崎.jp +長野.jp +新潟.jp +青森.jp +静岡.jp +東京.jp +石川.jp +埼玉.jp +三重.jp +京都.jp +佐賀.jp +大分.jp +大阪.jp +奈良.jp +宮城.jp +宮崎.jp +富山.jp +山口.jp +山形.jp +山梨.jp +岩手.jp +岐阜.jp +岡山.jp +島根.jp +広島.jp +徳島.jp +沖縄.jp +滋賀.jp +神奈川.jp +福井.jp +福岡.jp +福島.jp +秋田.jp +群馬.jp +香川.jp +高知.jp +鳥取.jp +鹿児島.jp +// jp geographic type names +// http://jprs.jp/doc/rule/saisoku-1.html +*.kawasaki.jp +*.kitakyushu.jp +*.kobe.jp +*.nagoya.jp +*.sapporo.jp +*.sendai.jp +*.yokohama.jp +!city.kawasaki.jp +!city.kitakyushu.jp +!city.kobe.jp +!city.nagoya.jp +!city.sapporo.jp +!city.sendai.jp +!city.yokohama.jp +// 4th level registration +aisai.aichi.jp +ama.aichi.jp +anjo.aichi.jp +asuke.aichi.jp +chiryu.aichi.jp +chita.aichi.jp +fuso.aichi.jp +gamagori.aichi.jp +handa.aichi.jp +hazu.aichi.jp +hekinan.aichi.jp +higashiura.aichi.jp +ichinomiya.aichi.jp +inazawa.aichi.jp +inuyama.aichi.jp +isshiki.aichi.jp +iwakura.aichi.jp +kanie.aichi.jp +kariya.aichi.jp +kasugai.aichi.jp +kira.aichi.jp +kiyosu.aichi.jp +komaki.aichi.jp +konan.aichi.jp +kota.aichi.jp +mihama.aichi.jp +miyoshi.aichi.jp +nishio.aichi.jp +nisshin.aichi.jp +obu.aichi.jp +oguchi.aichi.jp +oharu.aichi.jp +okazaki.aichi.jp +owariasahi.aichi.jp +seto.aichi.jp +shikatsu.aichi.jp +shinshiro.aichi.jp +shitara.aichi.jp +tahara.aichi.jp +takahama.aichi.jp +tobishima.aichi.jp +toei.aichi.jp +togo.aichi.jp +tokai.aichi.jp +tokoname.aichi.jp +toyoake.aichi.jp +toyohashi.aichi.jp +toyokawa.aichi.jp +toyone.aichi.jp +toyota.aichi.jp +tsushima.aichi.jp +yatomi.aichi.jp +akita.akita.jp +daisen.akita.jp +fujisato.akita.jp +gojome.akita.jp +hachirogata.akita.jp +happou.akita.jp +higashinaruse.akita.jp +honjo.akita.jp +honjyo.akita.jp +ikawa.akita.jp +kamikoani.akita.jp +kamioka.akita.jp +katagami.akita.jp +kazuno.akita.jp +kitaakita.akita.jp +kosaka.akita.jp +kyowa.akita.jp +misato.akita.jp +mitane.akita.jp +moriyoshi.akita.jp +nikaho.akita.jp +noshiro.akita.jp +odate.akita.jp +oga.akita.jp +ogata.akita.jp +semboku.akita.jp +yokote.akita.jp +yurihonjo.akita.jp +aomori.aomori.jp +gonohe.aomori.jp +hachinohe.aomori.jp +hashikami.aomori.jp +hiranai.aomori.jp +hirosaki.aomori.jp +itayanagi.aomori.jp +kuroishi.aomori.jp +misawa.aomori.jp +mutsu.aomori.jp +nakadomari.aomori.jp +noheji.aomori.jp +oirase.aomori.jp +owani.aomori.jp +rokunohe.aomori.jp +sannohe.aomori.jp +shichinohe.aomori.jp +shingo.aomori.jp +takko.aomori.jp +towada.aomori.jp +tsugaru.aomori.jp +tsuruta.aomori.jp +abiko.chiba.jp +asahi.chiba.jp +chonan.chiba.jp +chosei.chiba.jp +choshi.chiba.jp +chuo.chiba.jp +funabashi.chiba.jp +futtsu.chiba.jp +hanamigawa.chiba.jp +ichihara.chiba.jp +ichikawa.chiba.jp +ichinomiya.chiba.jp +inzai.chiba.jp +isumi.chiba.jp +kamagaya.chiba.jp +kamogawa.chiba.jp +kashiwa.chiba.jp +katori.chiba.jp +katsuura.chiba.jp +kimitsu.chiba.jp +kisarazu.chiba.jp +kozaki.chiba.jp +kujukuri.chiba.jp +kyonan.chiba.jp +matsudo.chiba.jp +midori.chiba.jp +mihama.chiba.jp +minamiboso.chiba.jp +mobara.chiba.jp +mutsuzawa.chiba.jp +nagara.chiba.jp +nagareyama.chiba.jp +narashino.chiba.jp +narita.chiba.jp +noda.chiba.jp +oamishirasato.chiba.jp +omigawa.chiba.jp +onjuku.chiba.jp +otaki.chiba.jp +sakae.chiba.jp +sakura.chiba.jp +shimofusa.chiba.jp +shirako.chiba.jp +shiroi.chiba.jp +shisui.chiba.jp +sodegaura.chiba.jp +sosa.chiba.jp +tako.chiba.jp +tateyama.chiba.jp +togane.chiba.jp +tohnosho.chiba.jp +tomisato.chiba.jp +urayasu.chiba.jp +yachimata.chiba.jp +yachiyo.chiba.jp +yokaichiba.chiba.jp +yokoshibahikari.chiba.jp +yotsukaido.chiba.jp +ainan.ehime.jp +honai.ehime.jp +ikata.ehime.jp +imabari.ehime.jp +iyo.ehime.jp +kamijima.ehime.jp +kihoku.ehime.jp +kumakogen.ehime.jp +masaki.ehime.jp +matsuno.ehime.jp +matsuyama.ehime.jp +namikata.ehime.jp +niihama.ehime.jp +ozu.ehime.jp +saijo.ehime.jp +seiyo.ehime.jp +shikokuchuo.ehime.jp +tobe.ehime.jp +toon.ehime.jp +uchiko.ehime.jp +uwajima.ehime.jp +yawatahama.ehime.jp +echizen.fukui.jp +eiheiji.fukui.jp +fukui.fukui.jp +ikeda.fukui.jp +katsuyama.fukui.jp +mihama.fukui.jp +minamiechizen.fukui.jp +obama.fukui.jp +ohi.fukui.jp +ono.fukui.jp +sabae.fukui.jp +sakai.fukui.jp +takahama.fukui.jp +tsuruga.fukui.jp +wakasa.fukui.jp +ashiya.fukuoka.jp +buzen.fukuoka.jp +chikugo.fukuoka.jp +chikuho.fukuoka.jp +chikujo.fukuoka.jp +chikushino.fukuoka.jp +chikuzen.fukuoka.jp +chuo.fukuoka.jp +dazaifu.fukuoka.jp +fukuchi.fukuoka.jp +hakata.fukuoka.jp +higashi.fukuoka.jp +hirokawa.fukuoka.jp +hisayama.fukuoka.jp +iizuka.fukuoka.jp +inatsuki.fukuoka.jp +kaho.fukuoka.jp +kasuga.fukuoka.jp +kasuya.fukuoka.jp +kawara.fukuoka.jp +keisen.fukuoka.jp +koga.fukuoka.jp +kurate.fukuoka.jp +kurogi.fukuoka.jp +kurume.fukuoka.jp +minami.fukuoka.jp +miyako.fukuoka.jp +miyama.fukuoka.jp +miyawaka.fukuoka.jp +mizumaki.fukuoka.jp +munakata.fukuoka.jp +nakagawa.fukuoka.jp +nakama.fukuoka.jp +nishi.fukuoka.jp +nogata.fukuoka.jp +ogori.fukuoka.jp +okagaki.fukuoka.jp +okawa.fukuoka.jp +oki.fukuoka.jp +omuta.fukuoka.jp +onga.fukuoka.jp +onojo.fukuoka.jp +oto.fukuoka.jp +saigawa.fukuoka.jp +sasaguri.fukuoka.jp +shingu.fukuoka.jp +shinyoshitomi.fukuoka.jp +shonai.fukuoka.jp +soeda.fukuoka.jp +sue.fukuoka.jp +tachiarai.fukuoka.jp +tagawa.fukuoka.jp +takata.fukuoka.jp +toho.fukuoka.jp +toyotsu.fukuoka.jp +tsuiki.fukuoka.jp +ukiha.fukuoka.jp +umi.fukuoka.jp +usui.fukuoka.jp +yamada.fukuoka.jp +yame.fukuoka.jp +yanagawa.fukuoka.jp +yukuhashi.fukuoka.jp +aizubange.fukushima.jp +aizumisato.fukushima.jp +aizuwakamatsu.fukushima.jp +asakawa.fukushima.jp +bandai.fukushima.jp +date.fukushima.jp +fukushima.fukushima.jp +furudono.fukushima.jp +futaba.fukushima.jp +hanawa.fukushima.jp +higashi.fukushima.jp +hirata.fukushima.jp +hirono.fukushima.jp +iitate.fukushima.jp +inawashiro.fukushima.jp +ishikawa.fukushima.jp +iwaki.fukushima.jp +izumizaki.fukushima.jp +kagamiishi.fukushima.jp +kaneyama.fukushima.jp +kawamata.fukushima.jp +kitakata.fukushima.jp +kitashiobara.fukushima.jp +koori.fukushima.jp +koriyama.fukushima.jp +kunimi.fukushima.jp +miharu.fukushima.jp +mishima.fukushima.jp +namie.fukushima.jp +nango.fukushima.jp +nishiaizu.fukushima.jp +nishigo.fukushima.jp +okuma.fukushima.jp +omotego.fukushima.jp +ono.fukushima.jp +otama.fukushima.jp +samegawa.fukushima.jp +shimogo.fukushima.jp +shirakawa.fukushima.jp +showa.fukushima.jp +soma.fukushima.jp +sukagawa.fukushima.jp +taishin.fukushima.jp +tamakawa.fukushima.jp +tanagura.fukushima.jp +tenei.fukushima.jp +yabuki.fukushima.jp +yamato.fukushima.jp +yamatsuri.fukushima.jp +yanaizu.fukushima.jp +yugawa.fukushima.jp +anpachi.gifu.jp +ena.gifu.jp +gifu.gifu.jp +ginan.gifu.jp +godo.gifu.jp +gujo.gifu.jp +hashima.gifu.jp +hichiso.gifu.jp +hida.gifu.jp +higashishirakawa.gifu.jp +ibigawa.gifu.jp +ikeda.gifu.jp +kakamigahara.gifu.jp +kani.gifu.jp +kasahara.gifu.jp +kasamatsu.gifu.jp +kawaue.gifu.jp +kitagata.gifu.jp +mino.gifu.jp +minokamo.gifu.jp +mitake.gifu.jp +mizunami.gifu.jp +motosu.gifu.jp +nakatsugawa.gifu.jp +ogaki.gifu.jp +sakahogi.gifu.jp +seki.gifu.jp +sekigahara.gifu.jp +shirakawa.gifu.jp +tajimi.gifu.jp +takayama.gifu.jp +tarui.gifu.jp +toki.gifu.jp +tomika.gifu.jp +wanouchi.gifu.jp +yamagata.gifu.jp +yaotsu.gifu.jp +yoro.gifu.jp +annaka.gunma.jp +chiyoda.gunma.jp +fujioka.gunma.jp +higashiagatsuma.gunma.jp +isesaki.gunma.jp +itakura.gunma.jp +kanna.gunma.jp +kanra.gunma.jp +katashina.gunma.jp +kawaba.gunma.jp +kiryu.gunma.jp +kusatsu.gunma.jp +maebashi.gunma.jp +meiwa.gunma.jp +midori.gunma.jp +minakami.gunma.jp +naganohara.gunma.jp +nakanojo.gunma.jp +nanmoku.gunma.jp +numata.gunma.jp +oizumi.gunma.jp +ora.gunma.jp +ota.gunma.jp +shibukawa.gunma.jp +shimonita.gunma.jp +shinto.gunma.jp +showa.gunma.jp +takasaki.gunma.jp +takayama.gunma.jp +tamamura.gunma.jp +tatebayashi.gunma.jp +tomioka.gunma.jp +tsukiyono.gunma.jp +tsumagoi.gunma.jp +ueno.gunma.jp +yoshioka.gunma.jp +asaminami.hiroshima.jp +daiwa.hiroshima.jp +etajima.hiroshima.jp +fuchu.hiroshima.jp +fukuyama.hiroshima.jp +hatsukaichi.hiroshima.jp +higashihiroshima.hiroshima.jp +hongo.hiroshima.jp +jinsekikogen.hiroshima.jp +kaita.hiroshima.jp +kui.hiroshima.jp +kumano.hiroshima.jp +kure.hiroshima.jp +mihara.hiroshima.jp +miyoshi.hiroshima.jp +naka.hiroshima.jp +onomichi.hiroshima.jp +osakikamijima.hiroshima.jp +otake.hiroshima.jp +saka.hiroshima.jp +sera.hiroshima.jp +seranishi.hiroshima.jp +shinichi.hiroshima.jp +shobara.hiroshima.jp +takehara.hiroshima.jp +abashiri.hokkaido.jp +abira.hokkaido.jp +aibetsu.hokkaido.jp +akabira.hokkaido.jp +akkeshi.hokkaido.jp +asahikawa.hokkaido.jp +ashibetsu.hokkaido.jp +ashoro.hokkaido.jp +assabu.hokkaido.jp +atsuma.hokkaido.jp +bibai.hokkaido.jp +biei.hokkaido.jp +bifuka.hokkaido.jp +bihoro.hokkaido.jp +biratori.hokkaido.jp +chippubetsu.hokkaido.jp +chitose.hokkaido.jp +date.hokkaido.jp +ebetsu.hokkaido.jp +embetsu.hokkaido.jp +eniwa.hokkaido.jp +erimo.hokkaido.jp +esan.hokkaido.jp +esashi.hokkaido.jp +fukagawa.hokkaido.jp +fukushima.hokkaido.jp +furano.hokkaido.jp +furubira.hokkaido.jp +haboro.hokkaido.jp +hakodate.hokkaido.jp +hamatonbetsu.hokkaido.jp +hidaka.hokkaido.jp +higashikagura.hokkaido.jp +higashikawa.hokkaido.jp +hiroo.hokkaido.jp +hokuryu.hokkaido.jp +hokuto.hokkaido.jp +honbetsu.hokkaido.jp +horokanai.hokkaido.jp +horonobe.hokkaido.jp +ikeda.hokkaido.jp +imakane.hokkaido.jp +ishikari.hokkaido.jp +iwamizawa.hokkaido.jp +iwanai.hokkaido.jp +kamifurano.hokkaido.jp +kamikawa.hokkaido.jp +kamishihoro.hokkaido.jp +kamisunagawa.hokkaido.jp +kamoenai.hokkaido.jp +kayabe.hokkaido.jp +kembuchi.hokkaido.jp +kikonai.hokkaido.jp +kimobetsu.hokkaido.jp +kitahiroshima.hokkaido.jp +kitami.hokkaido.jp +kiyosato.hokkaido.jp +koshimizu.hokkaido.jp +kunneppu.hokkaido.jp +kuriyama.hokkaido.jp +kuromatsunai.hokkaido.jp +kushiro.hokkaido.jp +kutchan.hokkaido.jp +kyowa.hokkaido.jp +mashike.hokkaido.jp +matsumae.hokkaido.jp +mikasa.hokkaido.jp +minamifurano.hokkaido.jp +mombetsu.hokkaido.jp +moseushi.hokkaido.jp +mukawa.hokkaido.jp +muroran.hokkaido.jp +naie.hokkaido.jp +nakagawa.hokkaido.jp +nakasatsunai.hokkaido.jp +nakatombetsu.hokkaido.jp +nanae.hokkaido.jp +nanporo.hokkaido.jp +nayoro.hokkaido.jp +nemuro.hokkaido.jp +niikappu.hokkaido.jp +niki.hokkaido.jp +nishiokoppe.hokkaido.jp +noboribetsu.hokkaido.jp +numata.hokkaido.jp +obihiro.hokkaido.jp +obira.hokkaido.jp +oketo.hokkaido.jp +okoppe.hokkaido.jp +otaru.hokkaido.jp +otobe.hokkaido.jp +otofuke.hokkaido.jp +otoineppu.hokkaido.jp +oumu.hokkaido.jp +ozora.hokkaido.jp +pippu.hokkaido.jp +rankoshi.hokkaido.jp +rebun.hokkaido.jp +rikubetsu.hokkaido.jp +rishiri.hokkaido.jp +rishirifuji.hokkaido.jp +saroma.hokkaido.jp +sarufutsu.hokkaido.jp +shakotan.hokkaido.jp +shari.hokkaido.jp +shibecha.hokkaido.jp +shibetsu.hokkaido.jp +shikabe.hokkaido.jp +shikaoi.hokkaido.jp +shimamaki.hokkaido.jp +shimizu.hokkaido.jp +shimokawa.hokkaido.jp +shinshinotsu.hokkaido.jp +shintoku.hokkaido.jp +shiranuka.hokkaido.jp +shiraoi.hokkaido.jp +shiriuchi.hokkaido.jp +sobetsu.hokkaido.jp +sunagawa.hokkaido.jp +taiki.hokkaido.jp +takasu.hokkaido.jp +takikawa.hokkaido.jp +takinoue.hokkaido.jp +teshikaga.hokkaido.jp +tobetsu.hokkaido.jp +tohma.hokkaido.jp +tomakomai.hokkaido.jp +tomari.hokkaido.jp +toya.hokkaido.jp +toyako.hokkaido.jp +toyotomi.hokkaido.jp +toyoura.hokkaido.jp +tsubetsu.hokkaido.jp +tsukigata.hokkaido.jp +urakawa.hokkaido.jp +urausu.hokkaido.jp +uryu.hokkaido.jp +utashinai.hokkaido.jp +wakkanai.hokkaido.jp +wassamu.hokkaido.jp +yakumo.hokkaido.jp +yoichi.hokkaido.jp +aioi.hyogo.jp +akashi.hyogo.jp +ako.hyogo.jp +amagasaki.hyogo.jp +aogaki.hyogo.jp +asago.hyogo.jp +ashiya.hyogo.jp +awaji.hyogo.jp +fukusaki.hyogo.jp +goshiki.hyogo.jp +harima.hyogo.jp +himeji.hyogo.jp +ichikawa.hyogo.jp +inagawa.hyogo.jp +itami.hyogo.jp +kakogawa.hyogo.jp +kamigori.hyogo.jp +kamikawa.hyogo.jp +kasai.hyogo.jp +kasuga.hyogo.jp +kawanishi.hyogo.jp +miki.hyogo.jp +minamiawaji.hyogo.jp +nishinomiya.hyogo.jp +nishiwaki.hyogo.jp +ono.hyogo.jp +sanda.hyogo.jp +sannan.hyogo.jp +sasayama.hyogo.jp +sayo.hyogo.jp +shingu.hyogo.jp +shinonsen.hyogo.jp +shiso.hyogo.jp +sumoto.hyogo.jp +taishi.hyogo.jp +taka.hyogo.jp +takarazuka.hyogo.jp +takasago.hyogo.jp +takino.hyogo.jp +tamba.hyogo.jp +tatsuno.hyogo.jp +toyooka.hyogo.jp +yabu.hyogo.jp +yashiro.hyogo.jp +yoka.hyogo.jp +yokawa.hyogo.jp +ami.ibaraki.jp +asahi.ibaraki.jp +bando.ibaraki.jp +chikusei.ibaraki.jp +daigo.ibaraki.jp +fujishiro.ibaraki.jp +hitachi.ibaraki.jp +hitachinaka.ibaraki.jp +hitachiomiya.ibaraki.jp +hitachiota.ibaraki.jp +ibaraki.ibaraki.jp +ina.ibaraki.jp +inashiki.ibaraki.jp +itako.ibaraki.jp +iwama.ibaraki.jp +joso.ibaraki.jp +kamisu.ibaraki.jp +kasama.ibaraki.jp +kashima.ibaraki.jp +kasumigaura.ibaraki.jp +koga.ibaraki.jp +miho.ibaraki.jp +mito.ibaraki.jp +moriya.ibaraki.jp +naka.ibaraki.jp +namegata.ibaraki.jp +oarai.ibaraki.jp +ogawa.ibaraki.jp +omitama.ibaraki.jp +ryugasaki.ibaraki.jp +sakai.ibaraki.jp +sakuragawa.ibaraki.jp +shimodate.ibaraki.jp +shimotsuma.ibaraki.jp +shirosato.ibaraki.jp +sowa.ibaraki.jp +suifu.ibaraki.jp +takahagi.ibaraki.jp +tamatsukuri.ibaraki.jp +tokai.ibaraki.jp +tomobe.ibaraki.jp +tone.ibaraki.jp +toride.ibaraki.jp +tsuchiura.ibaraki.jp +tsukuba.ibaraki.jp +uchihara.ibaraki.jp +ushiku.ibaraki.jp +yachiyo.ibaraki.jp +yamagata.ibaraki.jp +yawara.ibaraki.jp +yuki.ibaraki.jp +anamizu.ishikawa.jp +hakui.ishikawa.jp +hakusan.ishikawa.jp +kaga.ishikawa.jp +kahoku.ishikawa.jp +kanazawa.ishikawa.jp +kawakita.ishikawa.jp +komatsu.ishikawa.jp +nakanoto.ishikawa.jp +nanao.ishikawa.jp +nomi.ishikawa.jp +nonoichi.ishikawa.jp +noto.ishikawa.jp +shika.ishikawa.jp +suzu.ishikawa.jp +tsubata.ishikawa.jp +tsurugi.ishikawa.jp +uchinada.ishikawa.jp +wajima.ishikawa.jp +fudai.iwate.jp +fujisawa.iwate.jp +hanamaki.iwate.jp +hiraizumi.iwate.jp +hirono.iwate.jp +ichinohe.iwate.jp +ichinoseki.iwate.jp +iwaizumi.iwate.jp +iwate.iwate.jp +joboji.iwate.jp +kamaishi.iwate.jp +kanegasaki.iwate.jp +karumai.iwate.jp +kawai.iwate.jp +kitakami.iwate.jp +kuji.iwate.jp +kunohe.iwate.jp +kuzumaki.iwate.jp +miyako.iwate.jp +mizusawa.iwate.jp +morioka.iwate.jp +ninohe.iwate.jp +noda.iwate.jp +ofunato.iwate.jp +oshu.iwate.jp +otsuchi.iwate.jp +rikuzentakata.iwate.jp +shiwa.iwate.jp +shizukuishi.iwate.jp +sumita.iwate.jp +tanohata.iwate.jp +tono.iwate.jp +yahaba.iwate.jp +yamada.iwate.jp +ayagawa.kagawa.jp +higashikagawa.kagawa.jp +kanonji.kagawa.jp +kotohira.kagawa.jp +manno.kagawa.jp +marugame.kagawa.jp +mitoyo.kagawa.jp +naoshima.kagawa.jp +sanuki.kagawa.jp +tadotsu.kagawa.jp +takamatsu.kagawa.jp +tonosho.kagawa.jp +uchinomi.kagawa.jp +utazu.kagawa.jp +zentsuji.kagawa.jp +akune.kagoshima.jp +amami.kagoshima.jp +hioki.kagoshima.jp +isa.kagoshima.jp +isen.kagoshima.jp +izumi.kagoshima.jp +kagoshima.kagoshima.jp +kanoya.kagoshima.jp +kawanabe.kagoshima.jp +kinko.kagoshima.jp +kouyama.kagoshima.jp +makurazaki.kagoshima.jp +matsumoto.kagoshima.jp +minamitane.kagoshima.jp +nakatane.kagoshima.jp +nishinoomote.kagoshima.jp +satsumasendai.kagoshima.jp +soo.kagoshima.jp +tarumizu.kagoshima.jp +yusui.kagoshima.jp +aikawa.kanagawa.jp +atsugi.kanagawa.jp +ayase.kanagawa.jp +chigasaki.kanagawa.jp +ebina.kanagawa.jp +fujisawa.kanagawa.jp +hadano.kanagawa.jp +hakone.kanagawa.jp +hiratsuka.kanagawa.jp +isehara.kanagawa.jp +kaisei.kanagawa.jp +kamakura.kanagawa.jp +kiyokawa.kanagawa.jp +matsuda.kanagawa.jp +minamiashigara.kanagawa.jp +miura.kanagawa.jp +nakai.kanagawa.jp +ninomiya.kanagawa.jp +odawara.kanagawa.jp +oi.kanagawa.jp +oiso.kanagawa.jp +sagamihara.kanagawa.jp +samukawa.kanagawa.jp +tsukui.kanagawa.jp +yamakita.kanagawa.jp +yamato.kanagawa.jp +yokosuka.kanagawa.jp +yugawara.kanagawa.jp +zama.kanagawa.jp +zushi.kanagawa.jp +aki.kochi.jp +geisei.kochi.jp +hidaka.kochi.jp +higashitsuno.kochi.jp +ino.kochi.jp +kagami.kochi.jp +kami.kochi.jp +kitagawa.kochi.jp +kochi.kochi.jp +mihara.kochi.jp +motoyama.kochi.jp +muroto.kochi.jp +nahari.kochi.jp +nakamura.kochi.jp +nankoku.kochi.jp +nishitosa.kochi.jp +niyodogawa.kochi.jp +ochi.kochi.jp +okawa.kochi.jp +otoyo.kochi.jp +otsuki.kochi.jp +sakawa.kochi.jp +sukumo.kochi.jp +susaki.kochi.jp +tosa.kochi.jp +tosashimizu.kochi.jp +toyo.kochi.jp +tsuno.kochi.jp +umaji.kochi.jp +yasuda.kochi.jp +yusuhara.kochi.jp +amakusa.kumamoto.jp +arao.kumamoto.jp +aso.kumamoto.jp +choyo.kumamoto.jp +gyokuto.kumamoto.jp +kamiamakusa.kumamoto.jp +kikuchi.kumamoto.jp +kumamoto.kumamoto.jp +mashiki.kumamoto.jp +mifune.kumamoto.jp +minamata.kumamoto.jp +minamioguni.kumamoto.jp +nagasu.kumamoto.jp +nishihara.kumamoto.jp +oguni.kumamoto.jp +ozu.kumamoto.jp +sumoto.kumamoto.jp +takamori.kumamoto.jp +uki.kumamoto.jp +uto.kumamoto.jp +yamaga.kumamoto.jp +yamato.kumamoto.jp +yatsushiro.kumamoto.jp +ayabe.kyoto.jp +fukuchiyama.kyoto.jp +higashiyama.kyoto.jp +ide.kyoto.jp +ine.kyoto.jp +joyo.kyoto.jp +kameoka.kyoto.jp +kamo.kyoto.jp +kita.kyoto.jp +kizu.kyoto.jp +kumiyama.kyoto.jp +kyotamba.kyoto.jp +kyotanabe.kyoto.jp +kyotango.kyoto.jp +maizuru.kyoto.jp +minami.kyoto.jp +minamiyamashiro.kyoto.jp +miyazu.kyoto.jp +muko.kyoto.jp +nagaokakyo.kyoto.jp +nakagyo.kyoto.jp +nantan.kyoto.jp +oyamazaki.kyoto.jp +sakyo.kyoto.jp +seika.kyoto.jp +tanabe.kyoto.jp +uji.kyoto.jp +ujitawara.kyoto.jp +wazuka.kyoto.jp +yamashina.kyoto.jp +yawata.kyoto.jp +asahi.mie.jp +inabe.mie.jp +ise.mie.jp +kameyama.mie.jp +kawagoe.mie.jp +kiho.mie.jp +kisosaki.mie.jp +kiwa.mie.jp +komono.mie.jp +kumano.mie.jp +kuwana.mie.jp +matsusaka.mie.jp +meiwa.mie.jp +mihama.mie.jp +minamiise.mie.jp +misugi.mie.jp +miyama.mie.jp +nabari.mie.jp +shima.mie.jp +suzuka.mie.jp +tado.mie.jp +taiki.mie.jp +taki.mie.jp +tamaki.mie.jp +toba.mie.jp +tsu.mie.jp +udono.mie.jp +ureshino.mie.jp +watarai.mie.jp +yokkaichi.mie.jp +furukawa.miyagi.jp +higashimatsushima.miyagi.jp +ishinomaki.miyagi.jp +iwanuma.miyagi.jp +kakuda.miyagi.jp +kami.miyagi.jp +kawasaki.miyagi.jp +marumori.miyagi.jp +matsushima.miyagi.jp +minamisanriku.miyagi.jp +misato.miyagi.jp +murata.miyagi.jp +natori.miyagi.jp +ogawara.miyagi.jp +ohira.miyagi.jp +onagawa.miyagi.jp +osaki.miyagi.jp +rifu.miyagi.jp +semine.miyagi.jp +shibata.miyagi.jp +shichikashuku.miyagi.jp +shikama.miyagi.jp +shiogama.miyagi.jp +shiroishi.miyagi.jp +tagajo.miyagi.jp +taiwa.miyagi.jp +tome.miyagi.jp +tomiya.miyagi.jp +wakuya.miyagi.jp +watari.miyagi.jp +yamamoto.miyagi.jp +zao.miyagi.jp +aya.miyazaki.jp +ebino.miyazaki.jp +gokase.miyazaki.jp +hyuga.miyazaki.jp +kadogawa.miyazaki.jp +kawaminami.miyazaki.jp +kijo.miyazaki.jp +kitagawa.miyazaki.jp +kitakata.miyazaki.jp +kitaura.miyazaki.jp +kobayashi.miyazaki.jp +kunitomi.miyazaki.jp +kushima.miyazaki.jp +mimata.miyazaki.jp +miyakonojo.miyazaki.jp +miyazaki.miyazaki.jp +morotsuka.miyazaki.jp +nichinan.miyazaki.jp +nishimera.miyazaki.jp +nobeoka.miyazaki.jp +saito.miyazaki.jp +shiiba.miyazaki.jp +shintomi.miyazaki.jp +takaharu.miyazaki.jp +takanabe.miyazaki.jp +takazaki.miyazaki.jp +tsuno.miyazaki.jp +achi.nagano.jp +agematsu.nagano.jp +anan.nagano.jp +aoki.nagano.jp +asahi.nagano.jp +azumino.nagano.jp +chikuhoku.nagano.jp +chikuma.nagano.jp +chino.nagano.jp +fujimi.nagano.jp +hakuba.nagano.jp +hara.nagano.jp +hiraya.nagano.jp +iida.nagano.jp +iijima.nagano.jp +iiyama.nagano.jp +iizuna.nagano.jp +ikeda.nagano.jp +ikusaka.nagano.jp +ina.nagano.jp +karuizawa.nagano.jp +kawakami.nagano.jp +kiso.nagano.jp +kisofukushima.nagano.jp +kitaaiki.nagano.jp +komagane.nagano.jp +komoro.nagano.jp +matsukawa.nagano.jp +matsumoto.nagano.jp +miasa.nagano.jp +minamiaiki.nagano.jp +minamimaki.nagano.jp +minamiminowa.nagano.jp +minowa.nagano.jp +miyada.nagano.jp +miyota.nagano.jp +mochizuki.nagano.jp +nagano.nagano.jp +nagawa.nagano.jp +nagiso.nagano.jp +nakagawa.nagano.jp +nakano.nagano.jp +nozawaonsen.nagano.jp +obuse.nagano.jp +ogawa.nagano.jp +okaya.nagano.jp +omachi.nagano.jp +omi.nagano.jp +ookuwa.nagano.jp +ooshika.nagano.jp +otaki.nagano.jp +otari.nagano.jp +sakae.nagano.jp +sakaki.nagano.jp +saku.nagano.jp +sakuho.nagano.jp +shimosuwa.nagano.jp +shinanomachi.nagano.jp +shiojiri.nagano.jp +suwa.nagano.jp +suzaka.nagano.jp +takagi.nagano.jp +takamori.nagano.jp +takayama.nagano.jp +tateshina.nagano.jp +tatsuno.nagano.jp +togakushi.nagano.jp +togura.nagano.jp +tomi.nagano.jp +ueda.nagano.jp +wada.nagano.jp +yamagata.nagano.jp +yamanouchi.nagano.jp +yasaka.nagano.jp +yasuoka.nagano.jp +chijiwa.nagasaki.jp +futsu.nagasaki.jp +goto.nagasaki.jp +hasami.nagasaki.jp +hirado.nagasaki.jp +iki.nagasaki.jp +isahaya.nagasaki.jp +kawatana.nagasaki.jp +kuchinotsu.nagasaki.jp +matsuura.nagasaki.jp +nagasaki.nagasaki.jp +obama.nagasaki.jp +omura.nagasaki.jp +oseto.nagasaki.jp +saikai.nagasaki.jp +sasebo.nagasaki.jp +seihi.nagasaki.jp +shimabara.nagasaki.jp +shinkamigoto.nagasaki.jp +togitsu.nagasaki.jp +tsushima.nagasaki.jp +unzen.nagasaki.jp +ando.nara.jp +gose.nara.jp +heguri.nara.jp +higashiyoshino.nara.jp +ikaruga.nara.jp +ikoma.nara.jp +kamikitayama.nara.jp +kanmaki.nara.jp +kashiba.nara.jp +kashihara.nara.jp +katsuragi.nara.jp +kawai.nara.jp +kawakami.nara.jp +kawanishi.nara.jp +koryo.nara.jp +kurotaki.nara.jp +mitsue.nara.jp +miyake.nara.jp +nara.nara.jp +nosegawa.nara.jp +oji.nara.jp +ouda.nara.jp +oyodo.nara.jp +sakurai.nara.jp +sango.nara.jp +shimoichi.nara.jp +shimokitayama.nara.jp +shinjo.nara.jp +soni.nara.jp +takatori.nara.jp +tawaramoto.nara.jp +tenkawa.nara.jp +tenri.nara.jp +uda.nara.jp +yamatokoriyama.nara.jp +yamatotakada.nara.jp +yamazoe.nara.jp +yoshino.nara.jp +aga.niigata.jp +agano.niigata.jp +gosen.niigata.jp +itoigawa.niigata.jp +izumozaki.niigata.jp +joetsu.niigata.jp +kamo.niigata.jp +kariwa.niigata.jp +kashiwazaki.niigata.jp +minamiuonuma.niigata.jp +mitsuke.niigata.jp +muika.niigata.jp +murakami.niigata.jp +myoko.niigata.jp +nagaoka.niigata.jp +niigata.niigata.jp +ojiya.niigata.jp +omi.niigata.jp +sado.niigata.jp +sanjo.niigata.jp +seiro.niigata.jp +seirou.niigata.jp +sekikawa.niigata.jp +shibata.niigata.jp +tagami.niigata.jp +tainai.niigata.jp +tochio.niigata.jp +tokamachi.niigata.jp +tsubame.niigata.jp +tsunan.niigata.jp +uonuma.niigata.jp +yahiko.niigata.jp +yoita.niigata.jp +yuzawa.niigata.jp +beppu.oita.jp +bungoono.oita.jp +bungotakada.oita.jp +hasama.oita.jp +hiji.oita.jp +himeshima.oita.jp +hita.oita.jp +kamitsue.oita.jp +kokonoe.oita.jp +kuju.oita.jp +kunisaki.oita.jp +kusu.oita.jp +oita.oita.jp +saiki.oita.jp +taketa.oita.jp +tsukumi.oita.jp +usa.oita.jp +usuki.oita.jp +yufu.oita.jp +akaiwa.okayama.jp +asakuchi.okayama.jp +bizen.okayama.jp +hayashima.okayama.jp +ibara.okayama.jp +kagamino.okayama.jp +kasaoka.okayama.jp +kibichuo.okayama.jp +kumenan.okayama.jp +kurashiki.okayama.jp +maniwa.okayama.jp +misaki.okayama.jp +nagi.okayama.jp +niimi.okayama.jp +nishiawakura.okayama.jp +okayama.okayama.jp +satosho.okayama.jp +setouchi.okayama.jp +shinjo.okayama.jp +shoo.okayama.jp +soja.okayama.jp +takahashi.okayama.jp +tamano.okayama.jp +tsuyama.okayama.jp +wake.okayama.jp +yakage.okayama.jp +aguni.okinawa.jp +ginowan.okinawa.jp +ginoza.okinawa.jp +gushikami.okinawa.jp +haebaru.okinawa.jp +higashi.okinawa.jp +hirara.okinawa.jp +iheya.okinawa.jp +ishigaki.okinawa.jp +ishikawa.okinawa.jp +itoman.okinawa.jp +izena.okinawa.jp +kadena.okinawa.jp +kin.okinawa.jp +kitadaito.okinawa.jp +kitanakagusuku.okinawa.jp +kumejima.okinawa.jp +kunigami.okinawa.jp +minamidaito.okinawa.jp +motobu.okinawa.jp +nago.okinawa.jp +naha.okinawa.jp +nakagusuku.okinawa.jp +nakijin.okinawa.jp +nanjo.okinawa.jp +nishihara.okinawa.jp +ogimi.okinawa.jp +okinawa.okinawa.jp +onna.okinawa.jp +shimoji.okinawa.jp +taketomi.okinawa.jp +tarama.okinawa.jp +tokashiki.okinawa.jp +tomigusuku.okinawa.jp +tonaki.okinawa.jp +urasoe.okinawa.jp +uruma.okinawa.jp +yaese.okinawa.jp +yomitan.okinawa.jp +yonabaru.okinawa.jp +yonaguni.okinawa.jp +zamami.okinawa.jp +abeno.osaka.jp +chihayaakasaka.osaka.jp +chuo.osaka.jp +daito.osaka.jp +fujiidera.osaka.jp +habikino.osaka.jp +hannan.osaka.jp +higashiosaka.osaka.jp +higashisumiyoshi.osaka.jp +higashiyodogawa.osaka.jp +hirakata.osaka.jp +ibaraki.osaka.jp +ikeda.osaka.jp +izumi.osaka.jp +izumiotsu.osaka.jp +izumisano.osaka.jp +kadoma.osaka.jp +kaizuka.osaka.jp +kanan.osaka.jp +kashiwara.osaka.jp +katano.osaka.jp +kawachinagano.osaka.jp +kishiwada.osaka.jp +kita.osaka.jp +kumatori.osaka.jp +matsubara.osaka.jp +minato.osaka.jp +minoh.osaka.jp +misaki.osaka.jp +moriguchi.osaka.jp +neyagawa.osaka.jp +nishi.osaka.jp +nose.osaka.jp +osakasayama.osaka.jp +sakai.osaka.jp +sayama.osaka.jp +sennan.osaka.jp +settsu.osaka.jp +shijonawate.osaka.jp +shimamoto.osaka.jp +suita.osaka.jp +tadaoka.osaka.jp +taishi.osaka.jp +tajiri.osaka.jp +takaishi.osaka.jp +takatsuki.osaka.jp +tondabayashi.osaka.jp +toyonaka.osaka.jp +toyono.osaka.jp +yao.osaka.jp +ariake.saga.jp +arita.saga.jp +fukudomi.saga.jp +genkai.saga.jp +hamatama.saga.jp +hizen.saga.jp +imari.saga.jp +kamimine.saga.jp +kanzaki.saga.jp +karatsu.saga.jp +kashima.saga.jp +kitagata.saga.jp +kitahata.saga.jp +kiyama.saga.jp +kouhoku.saga.jp +kyuragi.saga.jp +nishiarita.saga.jp +ogi.saga.jp +omachi.saga.jp +ouchi.saga.jp +saga.saga.jp +shiroishi.saga.jp +taku.saga.jp +tara.saga.jp +tosu.saga.jp +yoshinogari.saga.jp +arakawa.saitama.jp +asaka.saitama.jp +chichibu.saitama.jp +fujimi.saitama.jp +fujimino.saitama.jp +fukaya.saitama.jp +hanno.saitama.jp +hanyu.saitama.jp +hasuda.saitama.jp +hatogaya.saitama.jp +hatoyama.saitama.jp +hidaka.saitama.jp +higashichichibu.saitama.jp +higashimatsuyama.saitama.jp +honjo.saitama.jp +ina.saitama.jp +iruma.saitama.jp +iwatsuki.saitama.jp +kamiizumi.saitama.jp +kamikawa.saitama.jp +kamisato.saitama.jp +kasukabe.saitama.jp +kawagoe.saitama.jp +kawaguchi.saitama.jp +kawajima.saitama.jp +kazo.saitama.jp +kitamoto.saitama.jp +koshigaya.saitama.jp +kounosu.saitama.jp +kuki.saitama.jp +kumagaya.saitama.jp +matsubushi.saitama.jp +minano.saitama.jp +misato.saitama.jp +miyashiro.saitama.jp +miyoshi.saitama.jp +moroyama.saitama.jp +nagatoro.saitama.jp +namegawa.saitama.jp +niiza.saitama.jp +ogano.saitama.jp +ogawa.saitama.jp +ogose.saitama.jp +okegawa.saitama.jp +omiya.saitama.jp +otaki.saitama.jp +ranzan.saitama.jp +ryokami.saitama.jp +saitama.saitama.jp +sakado.saitama.jp +satte.saitama.jp +sayama.saitama.jp +shiki.saitama.jp +shiraoka.saitama.jp +soka.saitama.jp +sugito.saitama.jp +toda.saitama.jp +tokigawa.saitama.jp +tokorozawa.saitama.jp +tsurugashima.saitama.jp +urawa.saitama.jp +warabi.saitama.jp +yashio.saitama.jp +yokoze.saitama.jp +yono.saitama.jp +yorii.saitama.jp +yoshida.saitama.jp +yoshikawa.saitama.jp +yoshimi.saitama.jp +aisho.shiga.jp +gamo.shiga.jp +higashiomi.shiga.jp +hikone.shiga.jp +koka.shiga.jp +konan.shiga.jp +kosei.shiga.jp +koto.shiga.jp +kusatsu.shiga.jp +maibara.shiga.jp +moriyama.shiga.jp +nagahama.shiga.jp +nishiazai.shiga.jp +notogawa.shiga.jp +omihachiman.shiga.jp +otsu.shiga.jp +ritto.shiga.jp +ryuoh.shiga.jp +takashima.shiga.jp +takatsuki.shiga.jp +torahime.shiga.jp +toyosato.shiga.jp +yasu.shiga.jp +akagi.shimane.jp +ama.shimane.jp +gotsu.shimane.jp +hamada.shimane.jp +higashiizumo.shimane.jp +hikawa.shimane.jp +hikimi.shimane.jp +izumo.shimane.jp +kakinoki.shimane.jp +masuda.shimane.jp +matsue.shimane.jp +misato.shimane.jp +nishinoshima.shimane.jp +ohda.shimane.jp +okinoshima.shimane.jp +okuizumo.shimane.jp +shimane.shimane.jp +tamayu.shimane.jp +tsuwano.shimane.jp +unnan.shimane.jp +yakumo.shimane.jp +yasugi.shimane.jp +yatsuka.shimane.jp +arai.shizuoka.jp +atami.shizuoka.jp +fuji.shizuoka.jp +fujieda.shizuoka.jp +fujikawa.shizuoka.jp +fujinomiya.shizuoka.jp +fukuroi.shizuoka.jp +gotemba.shizuoka.jp +haibara.shizuoka.jp +hamamatsu.shizuoka.jp +higashiizu.shizuoka.jp +ito.shizuoka.jp +iwata.shizuoka.jp +izu.shizuoka.jp +izunokuni.shizuoka.jp +kakegawa.shizuoka.jp +kannami.shizuoka.jp +kawanehon.shizuoka.jp +kawazu.shizuoka.jp +kikugawa.shizuoka.jp +kosai.shizuoka.jp +makinohara.shizuoka.jp +matsuzaki.shizuoka.jp +minamiizu.shizuoka.jp +mishima.shizuoka.jp +morimachi.shizuoka.jp +nishiizu.shizuoka.jp +numazu.shizuoka.jp +omaezaki.shizuoka.jp +shimada.shizuoka.jp +shimizu.shizuoka.jp +shimoda.shizuoka.jp +shizuoka.shizuoka.jp +susono.shizuoka.jp +yaizu.shizuoka.jp +yoshida.shizuoka.jp +ashikaga.tochigi.jp +bato.tochigi.jp +haga.tochigi.jp +ichikai.tochigi.jp +iwafune.tochigi.jp +kaminokawa.tochigi.jp +kanuma.tochigi.jp +karasuyama.tochigi.jp +kuroiso.tochigi.jp +mashiko.tochigi.jp +mibu.tochigi.jp +moka.tochigi.jp +motegi.tochigi.jp +nasu.tochigi.jp +nasushiobara.tochigi.jp +nikko.tochigi.jp +nishikata.tochigi.jp +nogi.tochigi.jp +ohira.tochigi.jp +ohtawara.tochigi.jp +oyama.tochigi.jp +sakura.tochigi.jp +sano.tochigi.jp +shimotsuke.tochigi.jp +shioya.tochigi.jp +takanezawa.tochigi.jp +tochigi.tochigi.jp +tsuga.tochigi.jp +ujiie.tochigi.jp +utsunomiya.tochigi.jp +yaita.tochigi.jp +aizumi.tokushima.jp +anan.tokushima.jp +ichiba.tokushima.jp +itano.tokushima.jp +kainan.tokushima.jp +komatsushima.tokushima.jp +matsushige.tokushima.jp +mima.tokushima.jp +minami.tokushima.jp +miyoshi.tokushima.jp +mugi.tokushima.jp +nakagawa.tokushima.jp +naruto.tokushima.jp +sanagochi.tokushima.jp +shishikui.tokushima.jp +tokushima.tokushima.jp +wajiki.tokushima.jp +adachi.tokyo.jp +akiruno.tokyo.jp +akishima.tokyo.jp +aogashima.tokyo.jp +arakawa.tokyo.jp +bunkyo.tokyo.jp +chiyoda.tokyo.jp +chofu.tokyo.jp +chuo.tokyo.jp +edogawa.tokyo.jp +fuchu.tokyo.jp +fussa.tokyo.jp +hachijo.tokyo.jp +hachioji.tokyo.jp +hamura.tokyo.jp +higashikurume.tokyo.jp +higashimurayama.tokyo.jp +higashiyamato.tokyo.jp +hino.tokyo.jp +hinode.tokyo.jp +hinohara.tokyo.jp +inagi.tokyo.jp +itabashi.tokyo.jp +katsushika.tokyo.jp +kita.tokyo.jp +kiyose.tokyo.jp +kodaira.tokyo.jp +koganei.tokyo.jp +kokubunji.tokyo.jp +komae.tokyo.jp +koto.tokyo.jp +kouzushima.tokyo.jp +kunitachi.tokyo.jp +machida.tokyo.jp +meguro.tokyo.jp +minato.tokyo.jp +mitaka.tokyo.jp +mizuho.tokyo.jp +musashimurayama.tokyo.jp +musashino.tokyo.jp +nakano.tokyo.jp +nerima.tokyo.jp +ogasawara.tokyo.jp +okutama.tokyo.jp +ome.tokyo.jp +oshima.tokyo.jp +ota.tokyo.jp +setagaya.tokyo.jp +shibuya.tokyo.jp +shinagawa.tokyo.jp +shinjuku.tokyo.jp +suginami.tokyo.jp +sumida.tokyo.jp +tachikawa.tokyo.jp +taito.tokyo.jp +tama.tokyo.jp +toshima.tokyo.jp +chizu.tottori.jp +hino.tottori.jp +kawahara.tottori.jp +koge.tottori.jp +kotoura.tottori.jp +misasa.tottori.jp +nanbu.tottori.jp +nichinan.tottori.jp +sakaiminato.tottori.jp +tottori.tottori.jp +wakasa.tottori.jp +yazu.tottori.jp +yonago.tottori.jp +asahi.toyama.jp +fuchu.toyama.jp +fukumitsu.toyama.jp +funahashi.toyama.jp +himi.toyama.jp +imizu.toyama.jp +inami.toyama.jp +johana.toyama.jp +kamiichi.toyama.jp +kurobe.toyama.jp +nakaniikawa.toyama.jp +namerikawa.toyama.jp +nanto.toyama.jp +nyuzen.toyama.jp +oyabe.toyama.jp +taira.toyama.jp +takaoka.toyama.jp +tateyama.toyama.jp +toga.toyama.jp +tonami.toyama.jp +toyama.toyama.jp +unazuki.toyama.jp +uozu.toyama.jp +yamada.toyama.jp +arida.wakayama.jp +aridagawa.wakayama.jp +gobo.wakayama.jp +hashimoto.wakayama.jp +hidaka.wakayama.jp +hirogawa.wakayama.jp +inami.wakayama.jp +iwade.wakayama.jp +kainan.wakayama.jp +kamitonda.wakayama.jp +katsuragi.wakayama.jp +kimino.wakayama.jp +kinokawa.wakayama.jp +kitayama.wakayama.jp +koya.wakayama.jp +koza.wakayama.jp +kozagawa.wakayama.jp +kudoyama.wakayama.jp +kushimoto.wakayama.jp +mihama.wakayama.jp +misato.wakayama.jp +nachikatsuura.wakayama.jp +shingu.wakayama.jp +shirahama.wakayama.jp +taiji.wakayama.jp +tanabe.wakayama.jp +wakayama.wakayama.jp +yuasa.wakayama.jp +yura.wakayama.jp +asahi.yamagata.jp +funagata.yamagata.jp +higashine.yamagata.jp +iide.yamagata.jp +kahoku.yamagata.jp +kaminoyama.yamagata.jp +kaneyama.yamagata.jp +kawanishi.yamagata.jp +mamurogawa.yamagata.jp +mikawa.yamagata.jp +murayama.yamagata.jp +nagai.yamagata.jp +nakayama.yamagata.jp +nanyo.yamagata.jp +nishikawa.yamagata.jp +obanazawa.yamagata.jp +oe.yamagata.jp +oguni.yamagata.jp +ohkura.yamagata.jp +oishida.yamagata.jp +sagae.yamagata.jp +sakata.yamagata.jp +sakegawa.yamagata.jp +shinjo.yamagata.jp +shirataka.yamagata.jp +shonai.yamagata.jp +takahata.yamagata.jp +tendo.yamagata.jp +tozawa.yamagata.jp +tsuruoka.yamagata.jp +yamagata.yamagata.jp +yamanobe.yamagata.jp +yonezawa.yamagata.jp +yuza.yamagata.jp +abu.yamaguchi.jp +hagi.yamaguchi.jp +hikari.yamaguchi.jp +hofu.yamaguchi.jp +iwakuni.yamaguchi.jp +kudamatsu.yamaguchi.jp +mitou.yamaguchi.jp +nagato.yamaguchi.jp +oshima.yamaguchi.jp +shimonoseki.yamaguchi.jp +shunan.yamaguchi.jp +tabuse.yamaguchi.jp +tokuyama.yamaguchi.jp +toyota.yamaguchi.jp +ube.yamaguchi.jp +yuu.yamaguchi.jp +chuo.yamanashi.jp +doshi.yamanashi.jp +fuefuki.yamanashi.jp +fujikawa.yamanashi.jp +fujikawaguchiko.yamanashi.jp +fujiyoshida.yamanashi.jp +hayakawa.yamanashi.jp +hokuto.yamanashi.jp +ichikawamisato.yamanashi.jp +kai.yamanashi.jp +kofu.yamanashi.jp +koshu.yamanashi.jp +kosuge.yamanashi.jp +minami-alps.yamanashi.jp +minobu.yamanashi.jp +nakamichi.yamanashi.jp +nanbu.yamanashi.jp +narusawa.yamanashi.jp +nirasaki.yamanashi.jp +nishikatsura.yamanashi.jp +oshino.yamanashi.jp +otsuki.yamanashi.jp +showa.yamanashi.jp +tabayama.yamanashi.jp +tsuru.yamanashi.jp +uenohara.yamanashi.jp +yamanakako.yamanashi.jp +yamanashi.yamanashi.jp + +// ke : http://www.kenic.or.ke/index.php/en/ke-domains/ke-domains +ke +ac.ke +co.ke +go.ke +info.ke +me.ke +mobi.ke +ne.ke +or.ke +sc.ke + +// kg : http://www.domain.kg/dmn_n.html +kg +org.kg +net.kg +com.kg +edu.kg +gov.kg +mil.kg + +// kh : http://www.mptc.gov.kh/dns_registration.htm +*.kh + +// ki : http://www.ki/dns/index.html +ki +edu.ki +biz.ki +net.ki +org.ki +gov.ki +info.ki +com.ki + +// km : https://en.wikipedia.org/wiki/.km +// http://www.domaine.km/documents/charte.doc +km +org.km +nom.km +gov.km +prd.km +tm.km +edu.km +mil.km +ass.km +com.km +// These are only mentioned as proposed suggestions at domaine.km, but +// https://en.wikipedia.org/wiki/.km says they're available for registration: +coop.km +asso.km +presse.km +medecin.km +notaires.km +pharmaciens.km +veterinaire.km +gouv.km + +// kn : https://en.wikipedia.org/wiki/.kn +// http://www.dot.kn/domainRules.html +kn +net.kn +org.kn +edu.kn +gov.kn + +// kp : http://www.kcce.kp/en_index.php +kp +com.kp +edu.kp +gov.kp +org.kp +rep.kp +tra.kp + +// kr : https://en.wikipedia.org/wiki/.kr +// see also: http://domain.nida.or.kr/eng/registration.jsp +kr +ac.kr +co.kr +es.kr +go.kr +hs.kr +kg.kr +mil.kr +ms.kr +ne.kr +or.kr +pe.kr +re.kr +sc.kr +// kr geographical names +busan.kr +chungbuk.kr +chungnam.kr +daegu.kr +daejeon.kr +gangwon.kr +gwangju.kr +gyeongbuk.kr +gyeonggi.kr +gyeongnam.kr +incheon.kr +jeju.kr +jeonbuk.kr +jeonnam.kr +seoul.kr +ulsan.kr + +// kw : https://www.nic.kw/policies/ +// Confirmed by registry +kw +com.kw +edu.kw +emb.kw +gov.kw +ind.kw +net.kw +org.kw + +// ky : http://www.icta.ky/da_ky_reg_dom.php +// Confirmed by registry 2008-06-17 +ky +edu.ky +gov.ky +com.ky +org.ky +net.ky + +// kz : https://en.wikipedia.org/wiki/.kz +// see also: http://www.nic.kz/rules/index.jsp +kz +org.kz +edu.kz +net.kz +gov.kz +mil.kz +com.kz + +// la : https://en.wikipedia.org/wiki/.la +// Submitted by registry +la +int.la +net.la +info.la +edu.la +gov.la +per.la +com.la +org.la + +// lb : https://en.wikipedia.org/wiki/.lb +// Submitted by registry +lb +com.lb +edu.lb +gov.lb +net.lb +org.lb + +// lc : https://en.wikipedia.org/wiki/.lc +// see also: http://www.nic.lc/rules.htm +lc +com.lc +net.lc +co.lc +org.lc +edu.lc +gov.lc + +// li : https://en.wikipedia.org/wiki/.li +li + +// lk : http://www.nic.lk/seclevpr.html +lk +gov.lk +sch.lk +net.lk +int.lk +com.lk +org.lk +edu.lk +ngo.lk +soc.lk +web.lk +ltd.lk +assn.lk +grp.lk +hotel.lk +ac.lk + +// lr : http://psg.com/dns/lr/lr.txt +// Submitted by registry +lr +com.lr +edu.lr +gov.lr +org.lr +net.lr + +// ls : http://www.nic.ls/ +// Confirmed by registry +ls +ac.ls +biz.ls +co.ls +edu.ls +gov.ls +info.ls +net.ls +org.ls +sc.ls + +// lt : https://en.wikipedia.org/wiki/.lt +lt +// gov.lt : http://www.gov.lt/index_en.php +gov.lt + +// lu : http://www.dns.lu/en/ +lu + +// lv : http://www.nic.lv/DNS/En/generic.php +lv +com.lv +edu.lv +gov.lv +org.lv +mil.lv +id.lv +net.lv +asn.lv +conf.lv + +// ly : http://www.nic.ly/regulations.php +ly +com.ly +net.ly +gov.ly +plc.ly +edu.ly +sch.ly +med.ly +org.ly +id.ly + +// ma : https://en.wikipedia.org/wiki/.ma +// http://www.anrt.ma/fr/admin/download/upload/file_fr782.pdf +ma +co.ma +net.ma +gov.ma +org.ma +ac.ma +press.ma + +// mc : http://www.nic.mc/ +mc +tm.mc +asso.mc + +// md : https://en.wikipedia.org/wiki/.md +md + +// me : https://en.wikipedia.org/wiki/.me +me +co.me +net.me +org.me +edu.me +ac.me +gov.me +its.me +priv.me + +// mg : http://nic.mg/nicmg/?page_id=39 +mg +org.mg +nom.mg +gov.mg +prd.mg +tm.mg +edu.mg +mil.mg +com.mg +co.mg + +// mh : https://en.wikipedia.org/wiki/.mh +mh + +// mil : https://en.wikipedia.org/wiki/.mil +mil + +// mk : https://en.wikipedia.org/wiki/.mk +// see also: http://dns.marnet.net.mk/postapka.php +mk +com.mk +org.mk +net.mk +edu.mk +gov.mk +inf.mk +name.mk + +// ml : http://www.gobin.info/domainname/ml-template.doc +// see also: https://en.wikipedia.org/wiki/.ml +ml +com.ml +edu.ml +gouv.ml +gov.ml +net.ml +org.ml +presse.ml + +// mm : https://en.wikipedia.org/wiki/.mm +*.mm + +// mn : https://en.wikipedia.org/wiki/.mn +mn +gov.mn +edu.mn +org.mn + +// mo : http://www.monic.net.mo/ +mo +com.mo +net.mo +org.mo +edu.mo +gov.mo + +// mobi : https://en.wikipedia.org/wiki/.mobi +mobi + +// mp : http://www.dot.mp/ +// Confirmed by registry 2008-06-17 +mp + +// mq : https://en.wikipedia.org/wiki/.mq +mq + +// mr : https://en.wikipedia.org/wiki/.mr +mr +gov.mr + +// ms : http://www.nic.ms/pdf/MS_Domain_Name_Rules.pdf +ms +com.ms +edu.ms +gov.ms +net.ms +org.ms + +// mt : https://www.nic.org.mt/go/policy +// Submitted by registry +mt +com.mt +edu.mt +net.mt +org.mt + +// mu : https://en.wikipedia.org/wiki/.mu +mu +com.mu +net.mu +org.mu +gov.mu +ac.mu +co.mu +or.mu + +// museum : http://about.museum/naming/ +// http://index.museum/ +museum +academy.museum +agriculture.museum +air.museum +airguard.museum +alabama.museum +alaska.museum +amber.museum +ambulance.museum +american.museum +americana.museum +americanantiques.museum +americanart.museum +amsterdam.museum +and.museum +annefrank.museum +anthro.museum +anthropology.museum +antiques.museum +aquarium.museum +arboretum.museum +archaeological.museum +archaeology.museum +architecture.museum +art.museum +artanddesign.museum +artcenter.museum +artdeco.museum +arteducation.museum +artgallery.museum +arts.museum +artsandcrafts.museum +asmatart.museum +assassination.museum +assisi.museum +association.museum +astronomy.museum +atlanta.museum +austin.museum +australia.museum +automotive.museum +aviation.museum +axis.museum +badajoz.museum +baghdad.museum +bahn.museum +bale.museum +baltimore.museum +barcelona.museum +baseball.museum +basel.museum +baths.museum +bauern.museum +beauxarts.museum +beeldengeluid.museum +bellevue.museum +bergbau.museum +berkeley.museum +berlin.museum +bern.museum +bible.museum +bilbao.museum +bill.museum +birdart.museum +birthplace.museum +bonn.museum +boston.museum +botanical.museum +botanicalgarden.museum +botanicgarden.museum +botany.museum +brandywinevalley.museum +brasil.museum +bristol.museum +british.museum +britishcolumbia.museum +broadcast.museum +brunel.museum +brussel.museum +brussels.museum +bruxelles.museum +building.museum +burghof.museum +bus.museum +bushey.museum +cadaques.museum +california.museum +cambridge.museum +can.museum +canada.museum +capebreton.museum +carrier.museum +cartoonart.museum +casadelamoneda.museum +castle.museum +castres.museum +celtic.museum +center.museum +chattanooga.museum +cheltenham.museum +chesapeakebay.museum +chicago.museum +children.museum +childrens.museum +childrensgarden.museum +chiropractic.museum +chocolate.museum +christiansburg.museum +cincinnati.museum +cinema.museum +circus.museum +civilisation.museum +civilization.museum +civilwar.museum +clinton.museum +clock.museum +coal.museum +coastaldefence.museum +cody.museum +coldwar.museum +collection.museum +colonialwilliamsburg.museum +coloradoplateau.museum +columbia.museum +columbus.museum +communication.museum +communications.museum +community.museum +computer.museum +computerhistory.museum +comunicações.museum +contemporary.museum +contemporaryart.museum +convent.museum +copenhagen.museum +corporation.museum +correios-e-telecomunicações.museum +corvette.museum +costume.museum +countryestate.museum +county.museum +crafts.museum +cranbrook.museum +creation.museum +cultural.museum +culturalcenter.museum +culture.museum +cyber.museum +cymru.museum +dali.museum +dallas.museum +database.museum +ddr.museum +decorativearts.museum +delaware.museum +delmenhorst.museum +denmark.museum +depot.museum +design.museum +detroit.museum +dinosaur.museum +discovery.museum +dolls.museum +donostia.museum +durham.museum +eastafrica.museum +eastcoast.museum +education.museum +educational.museum +egyptian.museum +eisenbahn.museum +elburg.museum +elvendrell.museum +embroidery.museum +encyclopedic.museum +england.museum +entomology.museum +environment.museum +environmentalconservation.museum +epilepsy.museum +essex.museum +estate.museum +ethnology.museum +exeter.museum +exhibition.museum +family.museum +farm.museum +farmequipment.museum +farmers.museum +farmstead.museum +field.museum +figueres.museum +filatelia.museum +film.museum +fineart.museum +finearts.museum +finland.museum +flanders.museum +florida.museum +force.museum +fortmissoula.museum +fortworth.museum +foundation.museum +francaise.museum +frankfurt.museum +franziskaner.museum +freemasonry.museum +freiburg.museum +fribourg.museum +frog.museum +fundacio.museum +furniture.museum +gallery.museum +garden.museum +gateway.museum +geelvinck.museum +gemological.museum +geology.museum +georgia.museum +giessen.museum +glas.museum +glass.museum +gorge.museum +grandrapids.museum +graz.museum +guernsey.museum +halloffame.museum +hamburg.museum +handson.museum +harvestcelebration.museum +hawaii.museum +health.museum +heimatunduhren.museum +hellas.museum +helsinki.museum +hembygdsforbund.museum +heritage.museum +histoire.museum +historical.museum +historicalsociety.museum +historichouses.museum +historisch.museum +historisches.museum +history.museum +historyofscience.museum +horology.museum +house.museum +humanities.museum +illustration.museum +imageandsound.museum +indian.museum +indiana.museum +indianapolis.museum +indianmarket.museum +intelligence.museum +interactive.museum +iraq.museum +iron.museum +isleofman.museum +jamison.museum +jefferson.museum +jerusalem.museum +jewelry.museum +jewish.museum +jewishart.museum +jfk.museum +journalism.museum +judaica.museum +judygarland.museum +juedisches.museum +juif.museum +karate.museum +karikatur.museum +kids.museum +koebenhavn.museum +koeln.museum +kunst.museum +kunstsammlung.museum +kunstunddesign.museum +labor.museum +labour.museum +lajolla.museum +lancashire.museum +landes.museum +lans.museum +läns.museum +larsson.museum +lewismiller.museum +lincoln.museum +linz.museum +living.museum +livinghistory.museum +localhistory.museum +london.museum +losangeles.museum +louvre.museum +loyalist.museum +lucerne.museum +luxembourg.museum +luzern.museum +mad.museum +madrid.museum +mallorca.museum +manchester.museum +mansion.museum +mansions.museum +manx.museum +marburg.museum +maritime.museum +maritimo.museum +maryland.museum +marylhurst.museum +media.museum +medical.museum +medizinhistorisches.museum +meeres.museum +memorial.museum +mesaverde.museum +michigan.museum +midatlantic.museum +military.museum +mill.museum +miners.museum +mining.museum +minnesota.museum +missile.museum +missoula.museum +modern.museum +moma.museum +money.museum +monmouth.museum +monticello.museum +montreal.museum +moscow.museum +motorcycle.museum +muenchen.museum +muenster.museum +mulhouse.museum +muncie.museum +museet.museum +museumcenter.museum +museumvereniging.museum +music.museum +national.museum +nationalfirearms.museum +nationalheritage.museum +nativeamerican.museum +naturalhistory.museum +naturalhistorymuseum.museum +naturalsciences.museum +nature.museum +naturhistorisches.museum +natuurwetenschappen.museum +naumburg.museum +naval.museum +nebraska.museum +neues.museum +newhampshire.museum +newjersey.museum +newmexico.museum +newport.museum +newspaper.museum +newyork.museum +niepce.museum +norfolk.museum +north.museum +nrw.museum +nyc.museum +nyny.museum +oceanographic.museum +oceanographique.museum +omaha.museum +online.museum +ontario.museum +openair.museum +oregon.museum +oregontrail.museum +otago.museum +oxford.museum +pacific.museum +paderborn.museum +palace.museum +paleo.museum +palmsprings.museum +panama.museum +paris.museum +pasadena.museum +pharmacy.museum +philadelphia.museum +philadelphiaarea.museum +philately.museum +phoenix.museum +photography.museum +pilots.museum +pittsburgh.museum +planetarium.museum +plantation.museum +plants.museum +plaza.museum +portal.museum +portland.museum +portlligat.museum +posts-and-telecommunications.museum +preservation.museum +presidio.museum +press.museum +project.museum +public.museum +pubol.museum +quebec.museum +railroad.museum +railway.museum +research.museum +resistance.museum +riodejaneiro.museum +rochester.museum +rockart.museum +roma.museum +russia.museum +saintlouis.museum +salem.museum +salvadordali.museum +salzburg.museum +sandiego.museum +sanfrancisco.museum +santabarbara.museum +santacruz.museum +santafe.museum +saskatchewan.museum +satx.museum +savannahga.museum +schlesisches.museum +schoenbrunn.museum +schokoladen.museum +school.museum +schweiz.museum +science.museum +scienceandhistory.museum +scienceandindustry.museum +sciencecenter.museum +sciencecenters.museum +science-fiction.museum +sciencehistory.museum +sciences.museum +sciencesnaturelles.museum +scotland.museum +seaport.museum +settlement.museum +settlers.museum +shell.museum +sherbrooke.museum +sibenik.museum +silk.museum +ski.museum +skole.museum +society.museum +sologne.museum +soundandvision.museum +southcarolina.museum +southwest.museum +space.museum +spy.museum +square.museum +stadt.museum +stalbans.museum +starnberg.museum +state.museum +stateofdelaware.museum +station.museum +steam.museum +steiermark.museum +stjohn.museum +stockholm.museum +stpetersburg.museum +stuttgart.museum +suisse.museum +surgeonshall.museum +surrey.museum +svizzera.museum +sweden.museum +sydney.museum +tank.museum +tcm.museum +technology.museum +telekommunikation.museum +television.museum +texas.museum +textile.museum +theater.museum +time.museum +timekeeping.museum +topology.museum +torino.museum +touch.museum +town.museum +transport.museum +tree.museum +trolley.museum +trust.museum +trustee.museum +uhren.museum +ulm.museum +undersea.museum +university.museum +usa.museum +usantiques.museum +usarts.museum +uscountryestate.museum +usculture.museum +usdecorativearts.museum +usgarden.museum +ushistory.museum +ushuaia.museum +uslivinghistory.museum +utah.museum +uvic.museum +valley.museum +vantaa.museum +versailles.museum +viking.museum +village.museum +virginia.museum +virtual.museum +virtuel.museum +vlaanderen.museum +volkenkunde.museum +wales.museum +wallonie.museum +war.museum +washingtondc.museum +watchandclock.museum +watch-and-clock.museum +western.museum +westfalen.museum +whaling.museum +wildlife.museum +williamsburg.museum +windmill.museum +workshop.museum +york.museum +yorkshire.museum +yosemite.museum +youth.museum +zoological.museum +zoology.museum +ירושלים.museum +иком.museum + +// mv : https://en.wikipedia.org/wiki/.mv +// "mv" included because, contra Wikipedia, google.mv exists. +mv +aero.mv +biz.mv +com.mv +coop.mv +edu.mv +gov.mv +info.mv +int.mv +mil.mv +museum.mv +name.mv +net.mv +org.mv +pro.mv + +// mw : http://www.registrar.mw/ +mw +ac.mw +biz.mw +co.mw +com.mw +coop.mw +edu.mw +gov.mw +int.mw +museum.mw +net.mw +org.mw + +// mx : http://www.nic.mx/ +// Submitted by registry +mx +com.mx +org.mx +gob.mx +edu.mx +net.mx + +// my : http://www.mynic.net.my/ +my +com.my +net.my +org.my +gov.my +edu.my +mil.my +name.my + +// mz : http://www.uem.mz/ +// Submitted by registry +mz +ac.mz +adv.mz +co.mz +edu.mz +gov.mz +mil.mz +net.mz +org.mz + +// na : http://www.na-nic.com.na/ +// http://www.info.na/domain/ +na +info.na +pro.na +name.na +school.na +or.na +dr.na +us.na +mx.na +ca.na +in.na +cc.na +tv.na +ws.na +mobi.na +co.na +com.na +org.na + +// name : has 2nd-level tlds, but there's no list of them +name + +// nc : http://www.cctld.nc/ +nc +asso.nc +nom.nc + +// ne : https://en.wikipedia.org/wiki/.ne +ne + +// net : https://en.wikipedia.org/wiki/.net +net + +// nf : https://en.wikipedia.org/wiki/.nf +nf +com.nf +net.nf +per.nf +rec.nf +web.nf +arts.nf +firm.nf +info.nf +other.nf +store.nf + +// ng : http://www.nira.org.ng/index.php/join-us/register-ng-domain/189-nira-slds +ng +com.ng +edu.ng +gov.ng +i.ng +mil.ng +mobi.ng +name.ng +net.ng +org.ng +sch.ng + +// ni : http://www.nic.ni/ +ni +ac.ni +biz.ni +co.ni +com.ni +edu.ni +gob.ni +in.ni +info.ni +int.ni +mil.ni +net.ni +nom.ni +org.ni +web.ni + +// nl : https://en.wikipedia.org/wiki/.nl +// https://www.sidn.nl/ +// ccTLD for the Netherlands +nl + +// no : http://www.norid.no/regelverk/index.en.html +// The Norwegian registry has declined to notify us of updates. The web pages +// referenced below are the official source of the data. There is also an +// announce mailing list: +// https://postlister.uninett.no/sympa/info/norid-diskusjon +no +// Norid generic domains : http://www.norid.no/regelverk/vedlegg-c.en.html +fhs.no +vgs.no +fylkesbibl.no +folkebibl.no +museum.no +idrett.no +priv.no +// Non-Norid generic domains : http://www.norid.no/regelverk/vedlegg-d.en.html +mil.no +stat.no +dep.no +kommune.no +herad.no +// no geographical names : http://www.norid.no/regelverk/vedlegg-b.en.html +// counties +aa.no +ah.no +bu.no +fm.no +hl.no +hm.no +jan-mayen.no +mr.no +nl.no +nt.no +of.no +ol.no +oslo.no +rl.no +sf.no +st.no +svalbard.no +tm.no +tr.no +va.no +vf.no +// primary and lower secondary schools per county +gs.aa.no +gs.ah.no +gs.bu.no +gs.fm.no +gs.hl.no +gs.hm.no +gs.jan-mayen.no +gs.mr.no +gs.nl.no +gs.nt.no +gs.of.no +gs.ol.no +gs.oslo.no +gs.rl.no +gs.sf.no +gs.st.no +gs.svalbard.no +gs.tm.no +gs.tr.no +gs.va.no +gs.vf.no +// cities +akrehamn.no +åkrehamn.no +algard.no +ålgård.no +arna.no +brumunddal.no +bryne.no +bronnoysund.no +brønnøysund.no +drobak.no +drøbak.no +egersund.no +fetsund.no +floro.no +florø.no +fredrikstad.no +hokksund.no +honefoss.no +hønefoss.no +jessheim.no +jorpeland.no +jørpeland.no +kirkenes.no +kopervik.no +krokstadelva.no +langevag.no +langevåg.no +leirvik.no +mjondalen.no +mjøndalen.no +mo-i-rana.no +mosjoen.no +mosjøen.no +nesoddtangen.no +orkanger.no +osoyro.no +osøyro.no +raholt.no +råholt.no +sandnessjoen.no +sandnessjøen.no +skedsmokorset.no +slattum.no +spjelkavik.no +stathelle.no +stavern.no +stjordalshalsen.no +stjørdalshalsen.no +tananger.no +tranby.no +vossevangen.no +// communities +afjord.no +åfjord.no +agdenes.no +al.no +ål.no +alesund.no +ålesund.no +alstahaug.no +alta.no +áltá.no +alaheadju.no +álaheadju.no +alvdal.no +amli.no +åmli.no +amot.no +åmot.no +andebu.no +andoy.no +andøy.no +andasuolo.no +ardal.no +årdal.no +aremark.no +arendal.no +ås.no +aseral.no +åseral.no +asker.no +askim.no +askvoll.no +askoy.no +askøy.no +asnes.no +åsnes.no +audnedaln.no +aukra.no +aure.no +aurland.no +aurskog-holand.no +aurskog-høland.no +austevoll.no +austrheim.no +averoy.no +averøy.no +balestrand.no +ballangen.no +balat.no +bálát.no +balsfjord.no +bahccavuotna.no +báhccavuotna.no +bamble.no +bardu.no +beardu.no +beiarn.no +bajddar.no +bájddar.no +baidar.no +báidár.no +berg.no +bergen.no +berlevag.no +berlevåg.no +bearalvahki.no +bearalváhki.no +bindal.no +birkenes.no +bjarkoy.no +bjarkøy.no +bjerkreim.no +bjugn.no +bodo.no +bodø.no +badaddja.no +bådåddjå.no +budejju.no +bokn.no +bremanger.no +bronnoy.no +brønnøy.no +bygland.no +bykle.no +barum.no +bærum.no +bo.telemark.no +bø.telemark.no +bo.nordland.no +bø.nordland.no +bievat.no +bievát.no +bomlo.no +bømlo.no +batsfjord.no +båtsfjord.no +bahcavuotna.no +báhcavuotna.no +dovre.no +drammen.no +drangedal.no +dyroy.no +dyrøy.no +donna.no +dønna.no +eid.no +eidfjord.no +eidsberg.no +eidskog.no +eidsvoll.no +eigersund.no +elverum.no +enebakk.no +engerdal.no +etne.no +etnedal.no +evenes.no +evenassi.no +evenášši.no +evje-og-hornnes.no +farsund.no +fauske.no +fuossko.no +fuoisku.no +fedje.no +fet.no +finnoy.no +finnøy.no +fitjar.no +fjaler.no +fjell.no +flakstad.no +flatanger.no +flekkefjord.no +flesberg.no +flora.no +fla.no +flå.no +folldal.no +forsand.no +fosnes.no +frei.no +frogn.no +froland.no +frosta.no +frana.no +fræna.no +froya.no +frøya.no +fusa.no +fyresdal.no +forde.no +førde.no +gamvik.no +gangaviika.no +gáŋgaviika.no +gaular.no +gausdal.no +gildeskal.no +gildeskål.no +giske.no +gjemnes.no +gjerdrum.no +gjerstad.no +gjesdal.no +gjovik.no +gjøvik.no +gloppen.no +gol.no +gran.no +grane.no +granvin.no +gratangen.no +grimstad.no +grong.no +kraanghke.no +kråanghke.no +grue.no +gulen.no +hadsel.no +halden.no +halsa.no +hamar.no +hamaroy.no +habmer.no +hábmer.no +hapmir.no +hápmir.no +hammerfest.no +hammarfeasta.no +hámmárfeasta.no +haram.no +hareid.no +harstad.no +hasvik.no +aknoluokta.no +ákŋoluokta.no +hattfjelldal.no +aarborte.no +haugesund.no +hemne.no +hemnes.no +hemsedal.no +heroy.more-og-romsdal.no +herøy.møre-og-romsdal.no +heroy.nordland.no +herøy.nordland.no +hitra.no +hjartdal.no +hjelmeland.no +hobol.no +hobøl.no +hof.no +hol.no +hole.no +holmestrand.no +holtalen.no +holtålen.no +hornindal.no +horten.no +hurdal.no +hurum.no +hvaler.no +hyllestad.no +hagebostad.no +hægebostad.no +hoyanger.no +høyanger.no +hoylandet.no +høylandet.no +ha.no +hå.no +ibestad.no +inderoy.no +inderøy.no +iveland.no +jevnaker.no +jondal.no +jolster.no +jølster.no +karasjok.no +karasjohka.no +kárášjohka.no +karlsoy.no +galsa.no +gálsá.no +karmoy.no +karmøy.no +kautokeino.no +guovdageaidnu.no +klepp.no +klabu.no +klæbu.no +kongsberg.no +kongsvinger.no +kragero.no +kragerø.no +kristiansand.no +kristiansund.no +krodsherad.no +krødsherad.no +kvalsund.no +rahkkeravju.no +ráhkkerávju.no +kvam.no +kvinesdal.no +kvinnherad.no +kviteseid.no +kvitsoy.no +kvitsøy.no +kvafjord.no +kvæfjord.no +giehtavuoatna.no +kvanangen.no +kvænangen.no +navuotna.no +návuotna.no +kafjord.no +kåfjord.no +gaivuotna.no +gáivuotna.no +larvik.no +lavangen.no +lavagis.no +loabat.no +loabát.no +lebesby.no +davvesiida.no +leikanger.no +leirfjord.no +leka.no +leksvik.no +lenvik.no +leangaviika.no +leaŋgaviika.no +lesja.no +levanger.no +lier.no +lierne.no +lillehammer.no +lillesand.no +lindesnes.no +lindas.no +lindås.no +lom.no +loppa.no +lahppi.no +láhppi.no +lund.no +lunner.no +luroy.no +lurøy.no +luster.no +lyngdal.no +lyngen.no +ivgu.no +lardal.no +lerdal.no +lærdal.no +lodingen.no +lødingen.no +lorenskog.no +lørenskog.no +loten.no +løten.no +malvik.no +masoy.no +måsøy.no +muosat.no +muosát.no +mandal.no +marker.no +marnardal.no +masfjorden.no +meland.no +meldal.no +melhus.no +meloy.no +meløy.no +meraker.no +meråker.no +moareke.no +moåreke.no +midsund.no +midtre-gauldal.no +modalen.no +modum.no +molde.no +moskenes.no +moss.no +mosvik.no +malselv.no +målselv.no +malatvuopmi.no +málatvuopmi.no +namdalseid.no +aejrie.no +namsos.no +namsskogan.no +naamesjevuemie.no +nååmesjevuemie.no +laakesvuemie.no +nannestad.no +narvik.no +narviika.no +naustdal.no +nedre-eiker.no +nes.akershus.no +nes.buskerud.no +nesna.no +nesodden.no +nesseby.no +unjarga.no +unjárga.no +nesset.no +nissedal.no +nittedal.no +nord-aurdal.no +nord-fron.no +nord-odal.no +norddal.no +nordkapp.no +davvenjarga.no +davvenjárga.no +nordre-land.no +nordreisa.no +raisa.no +ráisa.no +nore-og-uvdal.no +notodden.no +naroy.no +nærøy.no +notteroy.no +nøtterøy.no +odda.no +oksnes.no +øksnes.no +oppdal.no +oppegard.no +oppegård.no +orkdal.no +orland.no +ørland.no +orskog.no +ørskog.no +orsta.no +ørsta.no +os.hedmark.no +os.hordaland.no +osen.no +osteroy.no +osterøy.no +ostre-toten.no +østre-toten.no +overhalla.no +ovre-eiker.no +øvre-eiker.no +oyer.no +øyer.no +oygarden.no +øygarden.no +oystre-slidre.no +øystre-slidre.no +porsanger.no +porsangu.no +porsáŋgu.no +porsgrunn.no +radoy.no +radøy.no +rakkestad.no +rana.no +ruovat.no +randaberg.no +rauma.no +rendalen.no +rennebu.no +rennesoy.no +rennesøy.no +rindal.no +ringebu.no +ringerike.no +ringsaker.no +rissa.no +risor.no +risør.no +roan.no +rollag.no +rygge.no +ralingen.no +rælingen.no +rodoy.no +rødøy.no +romskog.no +rømskog.no +roros.no +røros.no +rost.no +røst.no +royken.no +røyken.no +royrvik.no +røyrvik.no +rade.no +råde.no +salangen.no +siellak.no +saltdal.no +salat.no +sálát.no +sálat.no +samnanger.no +sande.more-og-romsdal.no +sande.møre-og-romsdal.no +sande.vestfold.no +sandefjord.no +sandnes.no +sandoy.no +sandøy.no +sarpsborg.no +sauda.no +sauherad.no +sel.no +selbu.no +selje.no +seljord.no +sigdal.no +siljan.no +sirdal.no +skaun.no +skedsmo.no +ski.no +skien.no +skiptvet.no +skjervoy.no +skjervøy.no +skierva.no +skiervá.no +skjak.no +skjåk.no +skodje.no +skanland.no +skånland.no +skanit.no +skánit.no +smola.no +smøla.no +snillfjord.no +snasa.no +snåsa.no +snoasa.no +snaase.no +snåase.no +sogndal.no +sokndal.no +sola.no +solund.no +songdalen.no +sortland.no +spydeberg.no +stange.no +stavanger.no +steigen.no +steinkjer.no +stjordal.no +stjørdal.no +stokke.no +stor-elvdal.no +stord.no +stordal.no +storfjord.no +omasvuotna.no +strand.no +stranda.no +stryn.no +sula.no +suldal.no +sund.no +sunndal.no +surnadal.no +sveio.no +svelvik.no +sykkylven.no +sogne.no +søgne.no +somna.no +sømna.no +sondre-land.no +søndre-land.no +sor-aurdal.no +sør-aurdal.no +sor-fron.no +sør-fron.no +sor-odal.no +sør-odal.no +sor-varanger.no +sør-varanger.no +matta-varjjat.no +mátta-várjjat.no +sorfold.no +sørfold.no +sorreisa.no +sørreisa.no +sorum.no +sørum.no +tana.no +deatnu.no +time.no +tingvoll.no +tinn.no +tjeldsund.no +dielddanuorri.no +tjome.no +tjøme.no +tokke.no +tolga.no +torsken.no +tranoy.no +tranøy.no +tromso.no +tromsø.no +tromsa.no +romsa.no +trondheim.no +troandin.no +trysil.no +trana.no +træna.no +trogstad.no +trøgstad.no +tvedestrand.no +tydal.no +tynset.no +tysfjord.no +divtasvuodna.no +divttasvuotna.no +tysnes.no +tysvar.no +tysvær.no +tonsberg.no +tønsberg.no +ullensaker.no +ullensvang.no +ulvik.no +utsira.no +vadso.no +vadsø.no +cahcesuolo.no +čáhcesuolo.no +vaksdal.no +valle.no +vang.no +vanylven.no +vardo.no +vardø.no +varggat.no +várggát.no +vefsn.no +vaapste.no +vega.no +vegarshei.no +vegårshei.no +vennesla.no +verdal.no +verran.no +vestby.no +vestnes.no +vestre-slidre.no +vestre-toten.no +vestvagoy.no +vestvågøy.no +vevelstad.no +vik.no +vikna.no +vindafjord.no +volda.no +voss.no +varoy.no +værøy.no +vagan.no +vågan.no +voagat.no +vagsoy.no +vågsøy.no +vaga.no +vågå.no +valer.ostfold.no +våler.østfold.no +valer.hedmark.no +våler.hedmark.no + +// np : http://www.mos.com.np/register.html +*.np + +// nr : http://cenpac.net.nr/dns/index.html +// Submitted by registry +nr +biz.nr +info.nr +gov.nr +edu.nr +org.nr +net.nr +com.nr + +// nu : https://en.wikipedia.org/wiki/.nu +nu + +// nz : https://en.wikipedia.org/wiki/.nz +// Submitted by registry +nz +ac.nz +co.nz +cri.nz +geek.nz +gen.nz +govt.nz +health.nz +iwi.nz +kiwi.nz +maori.nz +mil.nz +māori.nz +net.nz +org.nz +parliament.nz +school.nz + +// om : https://en.wikipedia.org/wiki/.om +om +co.om +com.om +edu.om +gov.om +med.om +museum.om +net.om +org.om +pro.om + +// onion : https://tools.ietf.org/html/rfc7686 +onion + +// org : https://en.wikipedia.org/wiki/.org +org + +// pa : http://www.nic.pa/ +// Some additional second level "domains" resolve directly as hostnames, such as +// pannet.pa, so we add a rule for "pa". +pa +ac.pa +gob.pa +com.pa +org.pa +sld.pa +edu.pa +net.pa +ing.pa +abo.pa +med.pa +nom.pa + +// pe : https://www.nic.pe/InformeFinalComision.pdf +pe +edu.pe +gob.pe +nom.pe +mil.pe +org.pe +com.pe +net.pe + +// pf : http://www.gobin.info/domainname/formulaire-pf.pdf +pf +com.pf +org.pf +edu.pf + +// pg : https://en.wikipedia.org/wiki/.pg +*.pg + +// ph : http://www.domains.ph/FAQ2.asp +// Submitted by registry +ph +com.ph +net.ph +org.ph +gov.ph +edu.ph +ngo.ph +mil.ph +i.ph + +// pk : http://pk5.pknic.net.pk/pk5/msgNamepk.PK +pk +com.pk +net.pk +edu.pk +org.pk +fam.pk +biz.pk +web.pk +gov.pk +gob.pk +gok.pk +gon.pk +gop.pk +gos.pk +info.pk + +// pl http://www.dns.pl/english/index.html +// Submitted by registry +pl +com.pl +net.pl +org.pl +// pl functional domains (http://www.dns.pl/english/index.html) +aid.pl +agro.pl +atm.pl +auto.pl +biz.pl +edu.pl +gmina.pl +gsm.pl +info.pl +mail.pl +miasta.pl +media.pl +mil.pl +nieruchomosci.pl +nom.pl +pc.pl +powiat.pl +priv.pl +realestate.pl +rel.pl +sex.pl +shop.pl +sklep.pl +sos.pl +szkola.pl +targi.pl +tm.pl +tourism.pl +travel.pl +turystyka.pl +// Government domains +gov.pl +ap.gov.pl +ic.gov.pl +is.gov.pl +us.gov.pl +kmpsp.gov.pl +kppsp.gov.pl +kwpsp.gov.pl +psp.gov.pl +wskr.gov.pl +kwp.gov.pl +mw.gov.pl +ug.gov.pl +um.gov.pl +umig.gov.pl +ugim.gov.pl +upow.gov.pl +uw.gov.pl +starostwo.gov.pl +pa.gov.pl +po.gov.pl +psse.gov.pl +pup.gov.pl +rzgw.gov.pl +sa.gov.pl +so.gov.pl +sr.gov.pl +wsa.gov.pl +sko.gov.pl +uzs.gov.pl +wiih.gov.pl +winb.gov.pl +pinb.gov.pl +wios.gov.pl +witd.gov.pl +wzmiuw.gov.pl +piw.gov.pl +wiw.gov.pl +griw.gov.pl +wif.gov.pl +oum.gov.pl +sdn.gov.pl +zp.gov.pl +uppo.gov.pl +mup.gov.pl +wuoz.gov.pl +konsulat.gov.pl +oirm.gov.pl +// pl regional domains (http://www.dns.pl/english/index.html) +augustow.pl +babia-gora.pl +bedzin.pl +beskidy.pl +bialowieza.pl +bialystok.pl +bielawa.pl +bieszczady.pl +boleslawiec.pl +bydgoszcz.pl +bytom.pl +cieszyn.pl +czeladz.pl +czest.pl +dlugoleka.pl +elblag.pl +elk.pl +glogow.pl +gniezno.pl +gorlice.pl +grajewo.pl +ilawa.pl +jaworzno.pl +jelenia-gora.pl +jgora.pl +kalisz.pl +kazimierz-dolny.pl +karpacz.pl +kartuzy.pl +kaszuby.pl +katowice.pl +kepno.pl +ketrzyn.pl +klodzko.pl +kobierzyce.pl +kolobrzeg.pl +konin.pl +konskowola.pl +kutno.pl +lapy.pl +lebork.pl +legnica.pl +lezajsk.pl +limanowa.pl +lomza.pl +lowicz.pl +lubin.pl +lukow.pl +malbork.pl +malopolska.pl +mazowsze.pl +mazury.pl +mielec.pl +mielno.pl +mragowo.pl +naklo.pl +nowaruda.pl +nysa.pl +olawa.pl +olecko.pl +olkusz.pl +olsztyn.pl +opoczno.pl +opole.pl +ostroda.pl +ostroleka.pl +ostrowiec.pl +ostrowwlkp.pl +pila.pl +pisz.pl +podhale.pl +podlasie.pl +polkowice.pl +pomorze.pl +pomorskie.pl +prochowice.pl +pruszkow.pl +przeworsk.pl +pulawy.pl +radom.pl +rawa-maz.pl +rybnik.pl +rzeszow.pl +sanok.pl +sejny.pl +slask.pl +slupsk.pl +sosnowiec.pl +stalowa-wola.pl +skoczow.pl +starachowice.pl +stargard.pl +suwalki.pl +swidnica.pl +swiebodzin.pl +swinoujscie.pl +szczecin.pl +szczytno.pl +tarnobrzeg.pl +tgory.pl +turek.pl +tychy.pl +ustka.pl +walbrzych.pl +warmia.pl +warszawa.pl +waw.pl +wegrow.pl +wielun.pl +wlocl.pl +wloclawek.pl +wodzislaw.pl +wolomin.pl +wroclaw.pl +zachpomor.pl +zagan.pl +zarow.pl +zgora.pl +zgorzelec.pl + +// pm : http://www.afnic.fr/medias/documents/AFNIC-naming-policy2012.pdf +pm + +// pn : http://www.government.pn/PnRegistry/policies.htm +pn +gov.pn +co.pn +org.pn +edu.pn +net.pn + +// post : https://en.wikipedia.org/wiki/.post +post + +// pr : http://www.nic.pr/index.asp?f=1 +pr +com.pr +net.pr +org.pr +gov.pr +edu.pr +isla.pr +pro.pr +biz.pr +info.pr +name.pr +// these aren't mentioned on nic.pr, but on https://en.wikipedia.org/wiki/.pr +est.pr +prof.pr +ac.pr + +// pro : http://registry.pro/get-pro +pro +aaa.pro +aca.pro +acct.pro +avocat.pro +bar.pro +cpa.pro +eng.pro +jur.pro +law.pro +med.pro +recht.pro + +// ps : https://en.wikipedia.org/wiki/.ps +// http://www.nic.ps/registration/policy.html#reg +ps +edu.ps +gov.ps +sec.ps +plo.ps +com.ps +org.ps +net.ps + +// pt : http://online.dns.pt/dns/start_dns +pt +net.pt +gov.pt +org.pt +edu.pt +int.pt +publ.pt +com.pt +nome.pt + +// pw : https://en.wikipedia.org/wiki/.pw +pw +co.pw +ne.pw +or.pw +ed.pw +go.pw +belau.pw + +// py : http://www.nic.py/pautas.html#seccion_9 +// Submitted by registry +py +com.py +coop.py +edu.py +gov.py +mil.py +net.py +org.py + +// qa : http://domains.qa/en/ +qa +com.qa +edu.qa +gov.qa +mil.qa +name.qa +net.qa +org.qa +sch.qa + +// re : http://www.afnic.re/obtenir/chartes/nommage-re/annexe-descriptifs +re +asso.re +com.re +nom.re + +// ro : http://www.rotld.ro/ +ro +arts.ro +com.ro +firm.ro +info.ro +nom.ro +nt.ro +org.ro +rec.ro +store.ro +tm.ro +www.ro + +// rs : https://www.rnids.rs/en/domains/national-domains +rs +ac.rs +co.rs +edu.rs +gov.rs +in.rs +org.rs + +// ru : https://cctld.ru/en/domains/domens_ru/reserved/ +ru +ac.ru +edu.ru +gov.ru +int.ru +mil.ru +test.ru + +// rw : https://www.ricta.org.rw/sites/default/files/resources/registry_registrar_contract_0.pdf +rw +ac.rw +co.rw +coop.rw +gov.rw +mil.rw +net.rw +org.rw + +// sa : http://www.nic.net.sa/ +sa +com.sa +net.sa +org.sa +gov.sa +med.sa +pub.sa +edu.sa +sch.sa + +// sb : http://www.sbnic.net.sb/ +// Submitted by registry +sb +com.sb +edu.sb +gov.sb +net.sb +org.sb + +// sc : http://www.nic.sc/ +sc +com.sc +gov.sc +net.sc +org.sc +edu.sc + +// sd : http://www.isoc.sd/sudanic.isoc.sd/billing_pricing.htm +// Submitted by registry +sd +com.sd +net.sd +org.sd +edu.sd +med.sd +tv.sd +gov.sd +info.sd + +// se : https://en.wikipedia.org/wiki/.se +// Submitted by registry +se +a.se +ac.se +b.se +bd.se +brand.se +c.se +d.se +e.se +f.se +fh.se +fhsk.se +fhv.se +g.se +h.se +i.se +k.se +komforb.se +kommunalforbund.se +komvux.se +l.se +lanbib.se +m.se +n.se +naturbruksgymn.se +o.se +org.se +p.se +parti.se +pp.se +press.se +r.se +s.se +t.se +tm.se +u.se +w.se +x.se +y.se +z.se + +// sg : http://www.nic.net.sg/page/registration-policies-procedures-and-guidelines +sg +com.sg +net.sg +org.sg +gov.sg +edu.sg +per.sg + +// sh : http://www.nic.sh/registrar.html +sh +com.sh +net.sh +gov.sh +org.sh +mil.sh + +// si : https://en.wikipedia.org/wiki/.si +si + +// sj : No registrations at this time. +// Submitted by registry +sj + +// sk : https://en.wikipedia.org/wiki/.sk +// list of 2nd level domains ? +sk + +// sl : http://www.nic.sl +// Submitted by registry +sl +com.sl +net.sl +edu.sl +gov.sl +org.sl + +// sm : https://en.wikipedia.org/wiki/.sm +sm + +// sn : https://en.wikipedia.org/wiki/.sn +sn +art.sn +com.sn +edu.sn +gouv.sn +org.sn +perso.sn +univ.sn + +// so : http://www.soregistry.com/ +so +com.so +net.so +org.so + +// sr : https://en.wikipedia.org/wiki/.sr +sr + +// st : http://www.nic.st/html/policyrules/ +st +co.st +com.st +consulado.st +edu.st +embaixada.st +gov.st +mil.st +net.st +org.st +principe.st +saotome.st +store.st + +// su : https://en.wikipedia.org/wiki/.su +su + +// sv : http://www.svnet.org.sv/niveldos.pdf +sv +com.sv +edu.sv +gob.sv +org.sv +red.sv + +// sx : https://en.wikipedia.org/wiki/.sx +// Submitted by registry +sx +gov.sx + +// sy : https://en.wikipedia.org/wiki/.sy +// see also: http://www.gobin.info/domainname/sy.doc +sy +edu.sy +gov.sy +net.sy +mil.sy +com.sy +org.sy + +// sz : https://en.wikipedia.org/wiki/.sz +// http://www.sispa.org.sz/ +sz +co.sz +ac.sz +org.sz + +// tc : https://en.wikipedia.org/wiki/.tc +tc + +// td : https://en.wikipedia.org/wiki/.td +td + +// tel: https://en.wikipedia.org/wiki/.tel +// http://www.telnic.org/ +tel + +// tf : https://en.wikipedia.org/wiki/.tf +tf + +// tg : https://en.wikipedia.org/wiki/.tg +// http://www.nic.tg/ +tg + +// th : https://en.wikipedia.org/wiki/.th +// Submitted by registry +th +ac.th +co.th +go.th +in.th +mi.th +net.th +or.th + +// tj : http://www.nic.tj/policy.html +tj +ac.tj +biz.tj +co.tj +com.tj +edu.tj +go.tj +gov.tj +int.tj +mil.tj +name.tj +net.tj +nic.tj +org.tj +test.tj +web.tj + +// tk : https://en.wikipedia.org/wiki/.tk +tk + +// tl : https://en.wikipedia.org/wiki/.tl +tl +gov.tl + +// tm : http://www.nic.tm/local.html +tm +com.tm +co.tm +org.tm +net.tm +nom.tm +gov.tm +mil.tm +edu.tm + +// tn : https://en.wikipedia.org/wiki/.tn +// http://whois.ati.tn/ +tn +com.tn +ens.tn +fin.tn +gov.tn +ind.tn +intl.tn +nat.tn +net.tn +org.tn +info.tn +perso.tn +tourism.tn +edunet.tn +rnrt.tn +rns.tn +rnu.tn +mincom.tn +agrinet.tn +defense.tn +turen.tn + +// to : https://en.wikipedia.org/wiki/.to +// Submitted by registry +to +com.to +gov.to +net.to +org.to +edu.to +mil.to + +// tr : https://nic.tr/ +// https://nic.tr/forms/eng/policies.pdf +// https://nic.tr/index.php?USRACTN=PRICELST +tr +av.tr +bbs.tr +bel.tr +biz.tr +com.tr +dr.tr +edu.tr +gen.tr +gov.tr +info.tr +mil.tr +k12.tr +kep.tr +name.tr +net.tr +org.tr +pol.tr +tel.tr +tsk.tr +tv.tr +web.tr +// Used by Northern Cyprus +nc.tr +// Used by government agencies of Northern Cyprus +gov.nc.tr + +// tt : http://www.nic.tt/ +tt +co.tt +com.tt +org.tt +net.tt +biz.tt +info.tt +pro.tt +int.tt +coop.tt +jobs.tt +mobi.tt +travel.tt +museum.tt +aero.tt +name.tt +gov.tt +edu.tt + +// tv : https://en.wikipedia.org/wiki/.tv +// Not listing any 2LDs as reserved since none seem to exist in practice, +// Wikipedia notwithstanding. +tv + +// tw : https://en.wikipedia.org/wiki/.tw +tw +edu.tw +gov.tw +mil.tw +com.tw +net.tw +org.tw +idv.tw +game.tw +ebiz.tw +club.tw +網路.tw +組織.tw +商業.tw + +// tz : http://www.tznic.or.tz/index.php/domains +// Submitted by registry +tz +ac.tz +co.tz +go.tz +hotel.tz +info.tz +me.tz +mil.tz +mobi.tz +ne.tz +or.tz +sc.tz +tv.tz + +// ua : https://hostmaster.ua/policy/?ua +// Submitted by registry +ua +// ua 2LD +com.ua +edu.ua +gov.ua +in.ua +net.ua +org.ua +// ua geographic names +// https://hostmaster.ua/2ld/ +cherkassy.ua +cherkasy.ua +chernigov.ua +chernihiv.ua +chernivtsi.ua +chernovtsy.ua +ck.ua +cn.ua +cr.ua +crimea.ua +cv.ua +dn.ua +dnepropetrovsk.ua +dnipropetrovsk.ua +dominic.ua +donetsk.ua +dp.ua +if.ua +ivano-frankivsk.ua +kh.ua +kharkiv.ua +kharkov.ua +kherson.ua +khmelnitskiy.ua +khmelnytskyi.ua +kiev.ua +kirovograd.ua +km.ua +kr.ua +krym.ua +ks.ua +kv.ua +kyiv.ua +lg.ua +lt.ua +lugansk.ua +lutsk.ua +lv.ua +lviv.ua +mk.ua +mykolaiv.ua +nikolaev.ua +od.ua +odesa.ua +odessa.ua +pl.ua +poltava.ua +rivne.ua +rovno.ua +rv.ua +sb.ua +sebastopol.ua +sevastopol.ua +sm.ua +sumy.ua +te.ua +ternopil.ua +uz.ua +uzhgorod.ua +vinnica.ua +vinnytsia.ua +vn.ua +volyn.ua +yalta.ua +zaporizhzhe.ua +zaporizhzhia.ua +zhitomir.ua +zhytomyr.ua +zp.ua +zt.ua + +// ug : https://www.registry.co.ug/ +ug +co.ug +or.ug +ac.ug +sc.ug +go.ug +ne.ug +com.ug +org.ug + +// uk : https://en.wikipedia.org/wiki/.uk +// Submitted by registry +uk +ac.uk +co.uk +gov.uk +ltd.uk +me.uk +net.uk +nhs.uk +org.uk +plc.uk +police.uk +*.sch.uk + +// us : https://en.wikipedia.org/wiki/.us +us +dni.us +fed.us +isa.us +kids.us +nsn.us +// us geographic names +ak.us +al.us +ar.us +as.us +az.us +ca.us +co.us +ct.us +dc.us +de.us +fl.us +ga.us +gu.us +hi.us +ia.us +id.us +il.us +in.us +ks.us +ky.us +la.us +ma.us +md.us +me.us +mi.us +mn.us +mo.us +ms.us +mt.us +nc.us +nd.us +ne.us +nh.us +nj.us +nm.us +nv.us +ny.us +oh.us +ok.us +or.us +pa.us +pr.us +ri.us +sc.us +sd.us +tn.us +tx.us +ut.us +vi.us +vt.us +va.us +wa.us +wi.us +wv.us +wy.us +// The registrar notes several more specific domains available in each state, +// such as state.*.us, dst.*.us, etc., but resolution of these is somewhat +// haphazard; in some states these domains resolve as addresses, while in others +// only subdomains are available, or even nothing at all. We include the +// most common ones where it's clear that different sites are different +// entities. +k12.ak.us +k12.al.us +k12.ar.us +k12.as.us +k12.az.us +k12.ca.us +k12.co.us +k12.ct.us +k12.dc.us +k12.de.us +k12.fl.us +k12.ga.us +k12.gu.us +// k12.hi.us Bug 614565 - Hawaii has a state-wide DOE login +k12.ia.us +k12.id.us +k12.il.us +k12.in.us +k12.ks.us +k12.ky.us +k12.la.us +k12.ma.us +k12.md.us +k12.me.us +k12.mi.us +k12.mn.us +k12.mo.us +k12.ms.us +k12.mt.us +k12.nc.us +// k12.nd.us Bug 1028347 - Removed at request of Travis Rosso +k12.ne.us +k12.nh.us +k12.nj.us +k12.nm.us +k12.nv.us +k12.ny.us +k12.oh.us +k12.ok.us +k12.or.us +k12.pa.us +k12.pr.us +k12.ri.us +k12.sc.us +// k12.sd.us Bug 934131 - Removed at request of James Booze +k12.tn.us +k12.tx.us +k12.ut.us +k12.vi.us +k12.vt.us +k12.va.us +k12.wa.us +k12.wi.us +// k12.wv.us Bug 947705 - Removed at request of Verne Britton +k12.wy.us +cc.ak.us +cc.al.us +cc.ar.us +cc.as.us +cc.az.us +cc.ca.us +cc.co.us +cc.ct.us +cc.dc.us +cc.de.us +cc.fl.us +cc.ga.us +cc.gu.us +cc.hi.us +cc.ia.us +cc.id.us +cc.il.us +cc.in.us +cc.ks.us +cc.ky.us +cc.la.us +cc.ma.us +cc.md.us +cc.me.us +cc.mi.us +cc.mn.us +cc.mo.us +cc.ms.us +cc.mt.us +cc.nc.us +cc.nd.us +cc.ne.us +cc.nh.us +cc.nj.us +cc.nm.us +cc.nv.us +cc.ny.us +cc.oh.us +cc.ok.us +cc.or.us +cc.pa.us +cc.pr.us +cc.ri.us +cc.sc.us +cc.sd.us +cc.tn.us +cc.tx.us +cc.ut.us +cc.vi.us +cc.vt.us +cc.va.us +cc.wa.us +cc.wi.us +cc.wv.us +cc.wy.us +lib.ak.us +lib.al.us +lib.ar.us +lib.as.us +lib.az.us +lib.ca.us +lib.co.us +lib.ct.us +lib.dc.us +// lib.de.us Issue #243 - Moved to Private section at request of Ed Moore +lib.fl.us +lib.ga.us +lib.gu.us +lib.hi.us +lib.ia.us +lib.id.us +lib.il.us +lib.in.us +lib.ks.us +lib.ky.us +lib.la.us +lib.ma.us +lib.md.us +lib.me.us +lib.mi.us +lib.mn.us +lib.mo.us +lib.ms.us +lib.mt.us +lib.nc.us +lib.nd.us +lib.ne.us +lib.nh.us +lib.nj.us +lib.nm.us +lib.nv.us +lib.ny.us +lib.oh.us +lib.ok.us +lib.or.us +lib.pa.us +lib.pr.us +lib.ri.us +lib.sc.us +lib.sd.us +lib.tn.us +lib.tx.us +lib.ut.us +lib.vi.us +lib.vt.us +lib.va.us +lib.wa.us +lib.wi.us +// lib.wv.us Bug 941670 - Removed at request of Larry W Arnold +lib.wy.us +// k12.ma.us contains school districts in Massachusetts. The 4LDs are +// managed independently except for private (PVT), charter (CHTR) and +// parochial (PAROCH) schools. Those are delegated directly to the +// 5LD operators. +pvt.k12.ma.us +chtr.k12.ma.us +paroch.k12.ma.us +// Merit Network, Inc. maintains the registry for =~ /(k12|cc|lib).mi.us/ and the following +// see also: http://domreg.merit.edu +// see also: whois -h whois.domreg.merit.edu help +ann-arbor.mi.us +cog.mi.us +dst.mi.us +eaton.mi.us +gen.mi.us +mus.mi.us +tec.mi.us +washtenaw.mi.us + +// uy : http://www.nic.org.uy/ +uy +com.uy +edu.uy +gub.uy +mil.uy +net.uy +org.uy + +// uz : http://www.reg.uz/ +uz +co.uz +com.uz +net.uz +org.uz + +// va : https://en.wikipedia.org/wiki/.va +va + +// vc : https://en.wikipedia.org/wiki/.vc +// Submitted by registry +vc +com.vc +net.vc +org.vc +gov.vc +mil.vc +edu.vc + +// ve : https://registro.nic.ve/ +// Submitted by registry +ve +arts.ve +co.ve +com.ve +e12.ve +edu.ve +firm.ve +gob.ve +gov.ve +info.ve +int.ve +mil.ve +net.ve +org.ve +rec.ve +store.ve +tec.ve +web.ve + +// vg : https://en.wikipedia.org/wiki/.vg +vg + +// vi : http://www.nic.vi/newdomainform.htm +// http://www.nic.vi/Domain_Rules/body_domain_rules.html indicates some other +// TLDs are "reserved", such as edu.vi and gov.vi, but doesn't actually say they +// are available for registration (which they do not seem to be). +vi +co.vi +com.vi +k12.vi +net.vi +org.vi + +// vn : https://www.dot.vn/vnnic/vnnic/domainregistration.jsp +vn +com.vn +net.vn +org.vn +edu.vn +gov.vn +int.vn +ac.vn +biz.vn +info.vn +name.vn +pro.vn +health.vn + +// vu : https://en.wikipedia.org/wiki/.vu +// http://www.vunic.vu/ +vu +com.vu +edu.vu +net.vu +org.vu + +// wf : http://www.afnic.fr/medias/documents/AFNIC-naming-policy2012.pdf +wf + +// ws : https://en.wikipedia.org/wiki/.ws +// http://samoanic.ws/index.dhtml +ws +com.ws +net.ws +org.ws +gov.ws +edu.ws + +// yt : http://www.afnic.fr/medias/documents/AFNIC-naming-policy2012.pdf +yt + +// IDN ccTLDs +// When submitting patches, please maintain a sort by ISO 3166 ccTLD, then +// U-label, and follow this format: +// // A-Label ("", [, variant info]) : +// // [sponsoring org] +// U-Label + +// xn--mgbaam7a8h ("Emerat", Arabic) : AE +// http://nic.ae/english/arabicdomain/rules.jsp +امارات + +// xn--y9a3aq ("hye", Armenian) : AM +// ISOC AM (operated by .am Registry) +հայ + +// xn--54b7fta0cc ("Bangla", Bangla) : BD +বাংলা + +// xn--90ae ("bg", Bulgarian) : BG +бг + +// xn--90ais ("bel", Belarusian/Russian Cyrillic) : BY +// Operated by .by registry +бел + +// xn--fiqs8s ("Zhongguo/China", Chinese, Simplified) : CN +// CNNIC +// http://cnnic.cn/html/Dir/2005/10/11/3218.htm +中国 + +// xn--fiqz9s ("Zhongguo/China", Chinese, Traditional) : CN +// CNNIC +// http://cnnic.cn/html/Dir/2005/10/11/3218.htm +中國 + +// xn--lgbbat1ad8j ("Algeria/Al Jazair", Arabic) : DZ +الجزائر + +// xn--wgbh1c ("Egypt/Masr", Arabic) : EG +// http://www.dotmasr.eg/ +مصر + +// xn--e1a4c ("eu", Cyrillic) : EU +ею + +// xn--node ("ge", Georgian Mkhedruli) : GE +გე + +// xn--qxam ("el", Greek) : GR +// Hellenic Ministry of Infrastructure, Transport, and Networks +ελ + +// xn--j6w193g ("Hong Kong", Chinese) : HK +// https://www.hkirc.hk +// Submitted by registry +// https://www.hkirc.hk/content.jsp?id=30#!/34 +香港 +公司.香港 +教育.香港 +政府.香港 +個人.香港 +網絡.香港 +組織.香港 + +// xn--2scrj9c ("Bharat", Kannada) : IN +// India +ಭಾರತ + +// xn--3hcrj9c ("Bharat", Oriya) : IN +// India +ଭାରତ + +// xn--45br5cyl ("Bharatam", Assamese) : IN +// India +ভাৰত + +// xn--h2breg3eve ("Bharatam", Sanskrit) : IN +// India +भारतम् + +// xn--h2brj9c8c ("Bharot", Santali) : IN +// India +भारोत + +// xn--mgbgu82a ("Bharat", Sindhi) : IN +// India +ڀارت + +// xn--rvc1e0am3e ("Bharatam", Malayalam) : IN +// India +ഭാരതം + +// xn--h2brj9c ("Bharat", Devanagari) : IN +// India +भारत + +// xn--mgbbh1a ("Bharat", Kashmiri) : IN +// India +بارت + +// xn--mgbbh1a71e ("Bharat", Arabic) : IN +// India +بھارت + +// xn--fpcrj9c3d ("Bharat", Telugu) : IN +// India +భారత్ + +// xn--gecrj9c ("Bharat", Gujarati) : IN +// India +ભારત + +// xn--s9brj9c ("Bharat", Gurmukhi) : IN +// India +ਭਾਰਤ + +// xn--45brj9c ("Bharat", Bengali) : IN +// India +ভারত + +// xn--xkc2dl3a5ee0h ("India", Tamil) : IN +// India +இந்தியா + +// xn--mgba3a4f16a ("Iran", Persian) : IR +ایران + +// xn--mgba3a4fra ("Iran", Arabic) : IR +ايران + +// xn--mgbtx2b ("Iraq", Arabic) : IQ +// Communications and Media Commission +عراق + +// xn--mgbayh7gpa ("al-Ordon", Arabic) : JO +// National Information Technology Center (NITC) +// Royal Scientific Society, Al-Jubeiha +الاردن + +// xn--3e0b707e ("Republic of Korea", Hangul) : KR +한국 + +// xn--80ao21a ("Kaz", Kazakh) : KZ +қаз + +// xn--fzc2c9e2c ("Lanka", Sinhalese-Sinhala) : LK +// http://nic.lk +ලංකා + +// xn--xkc2al3hye2a ("Ilangai", Tamil) : LK +// http://nic.lk +இலங்கை + +// xn--mgbc0a9azcg ("Morocco/al-Maghrib", Arabic) : MA +المغرب + +// xn--d1alf ("mkd", Macedonian) : MK +// MARnet +мкд + +// xn--l1acc ("mon", Mongolian) : MN +мон + +// xn--mix891f ("Macao", Chinese, Traditional) : MO +// MONIC / HNET Asia (Registry Operator for .mo) +澳門 + +// xn--mix082f ("Macao", Chinese, Simplified) : MO +澳门 + +// xn--mgbx4cd0ab ("Malaysia", Malay) : MY +مليسيا + +// xn--mgb9awbf ("Oman", Arabic) : OM +عمان + +// xn--mgbai9azgqp6j ("Pakistan", Urdu/Arabic) : PK +پاکستان + +// xn--mgbai9a5eva00b ("Pakistan", Urdu/Arabic, variant) : PK +پاكستان + +// xn--ygbi2ammx ("Falasteen", Arabic) : PS +// The Palestinian National Internet Naming Authority (PNINA) +// http://www.pnina.ps +فلسطين + +// xn--90a3ac ("srb", Cyrillic) : RS +// https://www.rnids.rs/en/domains/national-domains +срб +пр.срб +орг.срб +обр.срб +од.срб +упр.срб +ак.срб + +// xn--p1ai ("rf", Russian-Cyrillic) : RU +// http://www.cctld.ru/en/docs/rulesrf.php +рф + +// xn--wgbl6a ("Qatar", Arabic) : QA +// http://www.ict.gov.qa/ +قطر + +// xn--mgberp4a5d4ar ("AlSaudiah", Arabic) : SA +// http://www.nic.net.sa/ +السعودية + +// xn--mgberp4a5d4a87g ("AlSaudiah", Arabic, variant) : SA +السعودیة + +// xn--mgbqly7c0a67fbc ("AlSaudiah", Arabic, variant) : SA +السعودیۃ + +// xn--mgbqly7cvafr ("AlSaudiah", Arabic, variant) : SA +السعوديه + +// xn--mgbpl2fh ("sudan", Arabic) : SD +// Operated by .sd registry +سودان + +// xn--yfro4i67o Singapore ("Singapore", Chinese) : SG +新加坡 + +// xn--clchc0ea0b2g2a9gcd ("Singapore", Tamil) : SG +சிங்கப்பூர் + +// xn--ogbpf8fl ("Syria", Arabic) : SY +سورية + +// xn--mgbtf8fl ("Syria", Arabic, variant) : SY +سوريا + +// xn--o3cw4h ("Thai", Thai) : TH +// http://www.thnic.co.th +ไทย +ศึกษา.ไทย +ธุรกิจ.ไทย +รัฐบาล.ไทย +ทหาร.ไทย +เน็ต.ไทย +องค์กร.ไทย + +// xn--pgbs0dh ("Tunisia", Arabic) : TN +// http://nic.tn +تونس + +// xn--kpry57d ("Taiwan", Chinese, Traditional) : TW +// http://www.twnic.net/english/dn/dn_07a.htm +台灣 + +// xn--kprw13d ("Taiwan", Chinese, Simplified) : TW +// http://www.twnic.net/english/dn/dn_07a.htm +台湾 + +// xn--nnx388a ("Taiwan", Chinese, variant) : TW +臺灣 + +// xn--j1amh ("ukr", Cyrillic) : UA +укр + +// xn--mgb2ddes ("AlYemen", Arabic) : YE +اليمن + +// xxx : http://icmregistry.com +xxx + +// ye : http://www.y.net.ye/services/domain_name.htm +*.ye + +// za : https://www.zadna.org.za/content/page/domain-information/ +ac.za +agric.za +alt.za +co.za +edu.za +gov.za +grondar.za +law.za +mil.za +net.za +ngo.za +nic.za +nis.za +nom.za +org.za +school.za +tm.za +web.za + +// zm : https://zicta.zm/ +// Submitted by registry +zm +ac.zm +biz.zm +co.zm +com.zm +edu.zm +gov.zm +info.zm +mil.zm +net.zm +org.zm +sch.zm + +// zw : https://www.potraz.gov.zw/ +// Confirmed by registry 2017-01-25 +zw +ac.zw +co.zw +gov.zw +mil.zw +org.zw + + +// newGTLDs + +// List of new gTLDs imported from https://www.icann.org/resources/registries/gtlds/v2/gtlds.json on 2019-09-10T15:21:14Z +// This list is auto-generated, don't edit it manually. +// aaa : 2015-02-26 American Automobile Association, Inc. +aaa + +// aarp : 2015-05-21 AARP +aarp + +// abarth : 2015-07-30 Fiat Chrysler Automobiles N.V. +abarth + +// abb : 2014-10-24 ABB Ltd +abb + +// abbott : 2014-07-24 Abbott Laboratories, Inc. +abbott + +// abbvie : 2015-07-30 AbbVie Inc. +abbvie + +// abc : 2015-07-30 Disney Enterprises, Inc. +abc + +// able : 2015-06-25 Able Inc. +able + +// abogado : 2014-04-24 Minds + Machines Group Limited +abogado + +// abudhabi : 2015-07-30 Abu Dhabi Systems and Information Centre +abudhabi + +// academy : 2013-11-07 Binky Moon, LLC +academy + +// accenture : 2014-08-15 Accenture plc +accenture + +// accountant : 2014-11-20 dot Accountant Limited +accountant + +// accountants : 2014-03-20 Binky Moon, LLC +accountants + +// aco : 2015-01-08 ACO Severin Ahlmann GmbH & Co. KG +aco + +// actor : 2013-12-12 Dog Beach, LLC +actor + +// adac : 2015-07-16 Allgemeiner Deutscher Automobil-Club e.V. (ADAC) +adac + +// ads : 2014-12-04 Charleston Road Registry Inc. +ads + +// adult : 2014-10-16 ICM Registry AD LLC +adult + +// aeg : 2015-03-19 Aktiebolaget Electrolux +aeg + +// aetna : 2015-05-21 Aetna Life Insurance Company +aetna + +// afamilycompany : 2015-07-23 Johnson Shareholdings, Inc. +afamilycompany + +// afl : 2014-10-02 Australian Football League +afl + +// africa : 2014-03-24 ZA Central Registry NPC trading as Registry.Africa +africa + +// agakhan : 2015-04-23 Fondation Aga Khan (Aga Khan Foundation) +agakhan + +// agency : 2013-11-14 Binky Moon, LLC +agency + +// aig : 2014-12-18 American International Group, Inc. +aig + +// aigo : 2015-08-06 aigo Digital Technology Co,Ltd. +aigo + +// airbus : 2015-07-30 Airbus S.A.S. +airbus + +// airforce : 2014-03-06 Dog Beach, LLC +airforce + +// airtel : 2014-10-24 Bharti Airtel Limited +airtel + +// akdn : 2015-04-23 Fondation Aga Khan (Aga Khan Foundation) +akdn + +// alfaromeo : 2015-07-31 Fiat Chrysler Automobiles N.V. +alfaromeo + +// alibaba : 2015-01-15 Alibaba Group Holding Limited +alibaba + +// alipay : 2015-01-15 Alibaba Group Holding Limited +alipay + +// allfinanz : 2014-07-03 Allfinanz Deutsche Vermögensberatung Aktiengesellschaft +allfinanz + +// allstate : 2015-07-31 Allstate Fire and Casualty Insurance Company +allstate + +// ally : 2015-06-18 Ally Financial Inc. +ally + +// alsace : 2014-07-02 Region Grand Est +alsace + +// alstom : 2015-07-30 ALSTOM +alstom + +// americanexpress : 2015-07-31 American Express Travel Related Services Company, Inc. +americanexpress + +// americanfamily : 2015-07-23 AmFam, Inc. +americanfamily + +// amex : 2015-07-31 American Express Travel Related Services Company, Inc. +amex + +// amfam : 2015-07-23 AmFam, Inc. +amfam + +// amica : 2015-05-28 Amica Mutual Insurance Company +amica + +// amsterdam : 2014-07-24 Gemeente Amsterdam +amsterdam + +// analytics : 2014-12-18 Campus IP LLC +analytics + +// android : 2014-08-07 Charleston Road Registry Inc. +android + +// anquan : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD. +anquan + +// anz : 2015-07-31 Australia and New Zealand Banking Group Limited +anz + +// aol : 2015-09-17 Oath Inc. +aol + +// apartments : 2014-12-11 Binky Moon, LLC +apartments + +// app : 2015-05-14 Charleston Road Registry Inc. +app + +// apple : 2015-05-14 Apple Inc. +apple + +// aquarelle : 2014-07-24 Aquarelle.com +aquarelle + +// arab : 2015-11-12 League of Arab States +arab + +// aramco : 2014-11-20 Aramco Services Company +aramco + +// archi : 2014-02-06 Afilias Limited +archi + +// army : 2014-03-06 Dog Beach, LLC +army + +// art : 2016-03-24 UK Creative Ideas Limited +art + +// arte : 2014-12-11 Association Relative à la Télévision Européenne G.E.I.E. +arte + +// asda : 2015-07-31 Wal-Mart Stores, Inc. +asda + +// associates : 2014-03-06 Binky Moon, LLC +associates + +// athleta : 2015-07-30 The Gap, Inc. +athleta + +// attorney : 2014-03-20 Dog Beach, LLC +attorney + +// auction : 2014-03-20 Dog Beach, LLC +auction + +// audi : 2015-05-21 AUDI Aktiengesellschaft +audi + +// audible : 2015-06-25 Amazon Registry Services, Inc. +audible + +// audio : 2014-03-20 Uniregistry, Corp. +audio + +// auspost : 2015-08-13 Australian Postal Corporation +auspost + +// author : 2014-12-18 Amazon Registry Services, Inc. +author + +// auto : 2014-11-13 Cars Registry Limited +auto + +// autos : 2014-01-09 DERAutos, LLC +autos + +// avianca : 2015-01-08 Aerovias del Continente Americano S.A. Avianca +avianca + +// aws : 2015-06-25 Amazon Registry Services, Inc. +aws + +// axa : 2013-12-19 AXA SA +axa + +// azure : 2014-12-18 Microsoft Corporation +azure + +// baby : 2015-04-09 XYZ.COM LLC +baby + +// baidu : 2015-01-08 Baidu, Inc. +baidu + +// banamex : 2015-07-30 Citigroup Inc. +banamex + +// bananarepublic : 2015-07-31 The Gap, Inc. +bananarepublic + +// band : 2014-06-12 Dog Beach, LLC +band + +// bank : 2014-09-25 fTLD Registry Services LLC +bank + +// bar : 2013-12-12 Punto 2012 Sociedad Anonima Promotora de Inversion de Capital Variable +bar + +// barcelona : 2014-07-24 Municipi de Barcelona +barcelona + +// barclaycard : 2014-11-20 Barclays Bank PLC +barclaycard + +// barclays : 2014-11-20 Barclays Bank PLC +barclays + +// barefoot : 2015-06-11 Gallo Vineyards, Inc. +barefoot + +// bargains : 2013-11-14 Binky Moon, LLC +bargains + +// baseball : 2015-10-29 MLB Advanced Media DH, LLC +baseball + +// basketball : 2015-08-20 Fédération Internationale de Basketball (FIBA) +basketball + +// bauhaus : 2014-04-17 Werkhaus GmbH +bauhaus + +// bayern : 2014-01-23 Bayern Connect GmbH +bayern + +// bbc : 2014-12-18 British Broadcasting Corporation +bbc + +// bbt : 2015-07-23 BB&T Corporation +bbt + +// bbva : 2014-10-02 BANCO BILBAO VIZCAYA ARGENTARIA, S.A. +bbva + +// bcg : 2015-04-02 The Boston Consulting Group, Inc. +bcg + +// bcn : 2014-07-24 Municipi de Barcelona +bcn + +// beats : 2015-05-14 Beats Electronics, LLC +beats + +// beauty : 2015-12-03 L'Oréal +beauty + +// beer : 2014-01-09 Minds + Machines Group Limited +beer + +// bentley : 2014-12-18 Bentley Motors Limited +bentley + +// berlin : 2013-10-31 dotBERLIN GmbH & Co. KG +berlin + +// best : 2013-12-19 BestTLD Pty Ltd +best + +// bestbuy : 2015-07-31 BBY Solutions, Inc. +bestbuy + +// bet : 2015-05-07 Afilias Limited +bet + +// bharti : 2014-01-09 Bharti Enterprises (Holding) Private Limited +bharti + +// bible : 2014-06-19 American Bible Society +bible + +// bid : 2013-12-19 dot Bid Limited +bid + +// bike : 2013-08-27 Binky Moon, LLC +bike + +// bing : 2014-12-18 Microsoft Corporation +bing + +// bingo : 2014-12-04 Binky Moon, LLC +bingo + +// bio : 2014-03-06 Afilias Limited +bio + +// black : 2014-01-16 Afilias Limited +black + +// blackfriday : 2014-01-16 Uniregistry, Corp. +blackfriday + +// blockbuster : 2015-07-30 Dish DBS Corporation +blockbuster + +// blog : 2015-05-14 Knock Knock WHOIS There, LLC +blog + +// bloomberg : 2014-07-17 Bloomberg IP Holdings LLC +bloomberg + +// blue : 2013-11-07 Afilias Limited +blue + +// bms : 2014-10-30 Bristol-Myers Squibb Company +bms + +// bmw : 2014-01-09 Bayerische Motoren Werke Aktiengesellschaft +bmw + +// bnpparibas : 2014-05-29 BNP Paribas +bnpparibas + +// boats : 2014-12-04 DERBoats, LLC +boats + +// boehringer : 2015-07-09 Boehringer Ingelheim International GmbH +boehringer + +// bofa : 2015-07-31 Bank of America Corporation +bofa + +// bom : 2014-10-16 Núcleo de Informação e Coordenação do Ponto BR - NIC.br +bom + +// bond : 2014-06-05 ShortDot SA +bond + +// boo : 2014-01-30 Charleston Road Registry Inc. +boo + +// book : 2015-08-27 Amazon Registry Services, Inc. +book + +// booking : 2015-07-16 Booking.com B.V. +booking + +// bosch : 2015-06-18 Robert Bosch GMBH +bosch + +// bostik : 2015-05-28 Bostik SA +bostik + +// boston : 2015-12-10 Boston TLD Management, LLC +boston + +// bot : 2014-12-18 Amazon Registry Services, Inc. +bot + +// boutique : 2013-11-14 Binky Moon, LLC +boutique + +// box : 2015-11-12 .BOX INC. +box + +// bradesco : 2014-12-18 Banco Bradesco S.A. +bradesco + +// bridgestone : 2014-12-18 Bridgestone Corporation +bridgestone + +// broadway : 2014-12-22 Celebrate Broadway, Inc. +broadway + +// broker : 2014-12-11 Dotbroker Registry Limited +broker + +// brother : 2015-01-29 Brother Industries, Ltd. +brother + +// brussels : 2014-02-06 DNS.be vzw +brussels + +// budapest : 2013-11-21 Minds + Machines Group Limited +budapest + +// bugatti : 2015-07-23 Bugatti International SA +bugatti + +// build : 2013-11-07 Plan Bee LLC +build + +// builders : 2013-11-07 Binky Moon, LLC +builders + +// business : 2013-11-07 Binky Moon, LLC +business + +// buy : 2014-12-18 Amazon Registry Services, Inc. +buy + +// buzz : 2013-10-02 DOTSTRATEGY CO. +buzz + +// bzh : 2014-02-27 Association www.bzh +bzh + +// cab : 2013-10-24 Binky Moon, LLC +cab + +// cafe : 2015-02-11 Binky Moon, LLC +cafe + +// cal : 2014-07-24 Charleston Road Registry Inc. +cal + +// call : 2014-12-18 Amazon Registry Services, Inc. +call + +// calvinklein : 2015-07-30 PVH gTLD Holdings LLC +calvinklein + +// cam : 2016-04-21 AC Webconnecting Holding B.V. +cam + +// camera : 2013-08-27 Binky Moon, LLC +camera + +// camp : 2013-11-07 Binky Moon, LLC +camp + +// cancerresearch : 2014-05-15 Australian Cancer Research Foundation +cancerresearch + +// canon : 2014-09-12 Canon Inc. +canon + +// capetown : 2014-03-24 ZA Central Registry NPC trading as ZA Central Registry +capetown + +// capital : 2014-03-06 Binky Moon, LLC +capital + +// capitalone : 2015-08-06 Capital One Financial Corporation +capitalone + +// car : 2015-01-22 Cars Registry Limited +car + +// caravan : 2013-12-12 Caravan International, Inc. +caravan + +// cards : 2013-12-05 Binky Moon, LLC +cards + +// care : 2014-03-06 Binky Moon, LLC +care + +// career : 2013-10-09 dotCareer LLC +career + +// careers : 2013-10-02 Binky Moon, LLC +careers + +// cars : 2014-11-13 Cars Registry Limited +cars + +// cartier : 2014-06-23 Richemont DNS Inc. +cartier + +// casa : 2013-11-21 Minds + Machines Group Limited +casa + +// case : 2015-09-03 CNH Industrial N.V. +case + +// caseih : 2015-09-03 CNH Industrial N.V. +caseih + +// cash : 2014-03-06 Binky Moon, LLC +cash + +// casino : 2014-12-18 Binky Moon, LLC +casino + +// catering : 2013-12-05 Binky Moon, LLC +catering + +// catholic : 2015-10-21 Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) +catholic + +// cba : 2014-06-26 COMMONWEALTH BANK OF AUSTRALIA +cba + +// cbn : 2014-08-22 The Christian Broadcasting Network, Inc. +cbn + +// cbre : 2015-07-02 CBRE, Inc. +cbre + +// cbs : 2015-08-06 CBS Domains Inc. +cbs + +// ceb : 2015-04-09 The Corporate Executive Board Company +ceb + +// center : 2013-11-07 Binky Moon, LLC +center + +// ceo : 2013-11-07 CEOTLD Pty Ltd +ceo + +// cern : 2014-06-05 European Organization for Nuclear Research ("CERN") +cern + +// cfa : 2014-08-28 CFA Institute +cfa + +// cfd : 2014-12-11 DotCFD Registry Limited +cfd + +// chanel : 2015-04-09 Chanel International B.V. +chanel + +// channel : 2014-05-08 Charleston Road Registry Inc. +channel + +// charity : 2018-04-11 Binky Moon, LLC +charity + +// chase : 2015-04-30 JPMorgan Chase Bank, National Association +chase + +// chat : 2014-12-04 Binky Moon, LLC +chat + +// cheap : 2013-11-14 Binky Moon, LLC +cheap + +// chintai : 2015-06-11 CHINTAI Corporation +chintai + +// christmas : 2013-11-21 Uniregistry, Corp. +christmas + +// chrome : 2014-07-24 Charleston Road Registry Inc. +chrome + +// chrysler : 2015-07-30 FCA US LLC. +chrysler + +// church : 2014-02-06 Binky Moon, LLC +church + +// cipriani : 2015-02-19 Hotel Cipriani Srl +cipriani + +// circle : 2014-12-18 Amazon Registry Services, Inc. +circle + +// cisco : 2014-12-22 Cisco Technology, Inc. +cisco + +// citadel : 2015-07-23 Citadel Domain LLC +citadel + +// citi : 2015-07-30 Citigroup Inc. +citi + +// citic : 2014-01-09 CITIC Group Corporation +citic + +// city : 2014-05-29 Binky Moon, LLC +city + +// cityeats : 2014-12-11 Lifestyle Domain Holdings, Inc. +cityeats + +// claims : 2014-03-20 Binky Moon, LLC +claims + +// cleaning : 2013-12-05 Binky Moon, LLC +cleaning + +// click : 2014-06-05 Uniregistry, Corp. +click + +// clinic : 2014-03-20 Binky Moon, LLC +clinic + +// clinique : 2015-10-01 The Estée Lauder Companies Inc. +clinique + +// clothing : 2013-08-27 Binky Moon, LLC +clothing + +// cloud : 2015-04-16 Aruba PEC S.p.A. +cloud + +// club : 2013-11-08 .CLUB DOMAINS, LLC +club + +// clubmed : 2015-06-25 Club Méditerranée S.A. +clubmed + +// coach : 2014-10-09 Binky Moon, LLC +coach + +// codes : 2013-10-31 Binky Moon, LLC +codes + +// coffee : 2013-10-17 Binky Moon, LLC +coffee + +// college : 2014-01-16 XYZ.COM LLC +college + +// cologne : 2014-02-05 dotKoeln GmbH +cologne + +// comcast : 2015-07-23 Comcast IP Holdings I, LLC +comcast + +// commbank : 2014-06-26 COMMONWEALTH BANK OF AUSTRALIA +commbank + +// community : 2013-12-05 Binky Moon, LLC +community + +// company : 2013-11-07 Binky Moon, LLC +company + +// compare : 2015-10-08 Registry Services, LLC +compare + +// computer : 2013-10-24 Binky Moon, LLC +computer + +// comsec : 2015-01-08 VeriSign, Inc. +comsec + +// condos : 2013-12-05 Binky Moon, LLC +condos + +// construction : 2013-09-16 Binky Moon, LLC +construction + +// consulting : 2013-12-05 Dog Beach, LLC +consulting + +// contact : 2015-01-08 Dog Beach, LLC +contact + +// contractors : 2013-09-10 Binky Moon, LLC +contractors + +// cooking : 2013-11-21 Minds + Machines Group Limited +cooking + +// cookingchannel : 2015-07-02 Lifestyle Domain Holdings, Inc. +cookingchannel + +// cool : 2013-11-14 Binky Moon, LLC +cool + +// corsica : 2014-09-25 Collectivité de Corse +corsica + +// country : 2013-12-19 DotCountry LLC +country + +// coupon : 2015-02-26 Amazon Registry Services, Inc. +coupon + +// coupons : 2015-03-26 Binky Moon, LLC +coupons + +// courses : 2014-12-04 OPEN UNIVERSITIES AUSTRALIA PTY LTD +courses + +// cpa : 2019-06-10 American Institute of Certified Public Accountants +cpa + +// credit : 2014-03-20 Binky Moon, LLC +credit + +// creditcard : 2014-03-20 Binky Moon, LLC +creditcard + +// creditunion : 2015-01-22 CUNA Performance Resources, LLC +creditunion + +// cricket : 2014-10-09 dot Cricket Limited +cricket + +// crown : 2014-10-24 Crown Equipment Corporation +crown + +// crs : 2014-04-03 Federated Co-operatives Limited +crs + +// cruise : 2015-12-10 Viking River Cruises (Bermuda) Ltd. +cruise + +// cruises : 2013-12-05 Binky Moon, LLC +cruises + +// csc : 2014-09-25 Alliance-One Services, Inc. +csc + +// cuisinella : 2014-04-03 SCHMIDT GROUPE S.A.S. +cuisinella + +// cymru : 2014-05-08 Nominet UK +cymru + +// cyou : 2015-01-22 Beijing Gamease Age Digital Technology Co., Ltd. +cyou + +// dabur : 2014-02-06 Dabur India Limited +dabur + +// dad : 2014-01-23 Charleston Road Registry Inc. +dad + +// dance : 2013-10-24 Dog Beach, LLC +dance + +// data : 2016-06-02 Dish DBS Corporation +data + +// date : 2014-11-20 dot Date Limited +date + +// dating : 2013-12-05 Binky Moon, LLC +dating + +// datsun : 2014-03-27 NISSAN MOTOR CO., LTD. +datsun + +// day : 2014-01-30 Charleston Road Registry Inc. +day + +// dclk : 2014-11-20 Charleston Road Registry Inc. +dclk + +// dds : 2015-05-07 Minds + Machines Group Limited +dds + +// deal : 2015-06-25 Amazon Registry Services, Inc. +deal + +// dealer : 2014-12-22 Intercap Registry Inc. +dealer + +// deals : 2014-05-22 Binky Moon, LLC +deals + +// degree : 2014-03-06 Dog Beach, LLC +degree + +// delivery : 2014-09-11 Binky Moon, LLC +delivery + +// dell : 2014-10-24 Dell Inc. +dell + +// deloitte : 2015-07-31 Deloitte Touche Tohmatsu +deloitte + +// delta : 2015-02-19 Delta Air Lines, Inc. +delta + +// democrat : 2013-10-24 Dog Beach, LLC +democrat + +// dental : 2014-03-20 Binky Moon, LLC +dental + +// dentist : 2014-03-20 Dog Beach, LLC +dentist + +// desi : 2013-11-14 Desi Networks LLC +desi + +// design : 2014-11-07 Top Level Design, LLC +design + +// dev : 2014-10-16 Charleston Road Registry Inc. +dev + +// dhl : 2015-07-23 Deutsche Post AG +dhl + +// diamonds : 2013-09-22 Binky Moon, LLC +diamonds + +// diet : 2014-06-26 Uniregistry, Corp. +diet + +// digital : 2014-03-06 Binky Moon, LLC +digital + +// direct : 2014-04-10 Binky Moon, LLC +direct + +// directory : 2013-09-20 Binky Moon, LLC +directory + +// discount : 2014-03-06 Binky Moon, LLC +discount + +// discover : 2015-07-23 Discover Financial Services +discover + +// dish : 2015-07-30 Dish DBS Corporation +dish + +// diy : 2015-11-05 Lifestyle Domain Holdings, Inc. +diy + +// dnp : 2013-12-13 Dai Nippon Printing Co., Ltd. +dnp + +// docs : 2014-10-16 Charleston Road Registry Inc. +docs + +// doctor : 2016-06-02 Binky Moon, LLC +doctor + +// dodge : 2015-07-30 FCA US LLC. +dodge + +// dog : 2014-12-04 Binky Moon, LLC +dog + +// domains : 2013-10-17 Binky Moon, LLC +domains + +// dot : 2015-05-21 Dish DBS Corporation +dot + +// download : 2014-11-20 dot Support Limited +download + +// drive : 2015-03-05 Charleston Road Registry Inc. +drive + +// dtv : 2015-06-04 Dish DBS Corporation +dtv + +// dubai : 2015-01-01 Dubai Smart Government Department +dubai + +// duck : 2015-07-23 Johnson Shareholdings, Inc. +duck + +// dunlop : 2015-07-02 The Goodyear Tire & Rubber Company +dunlop + +// dupont : 2015-06-25 E. I. du Pont de Nemours and Company +dupont + +// durban : 2014-03-24 ZA Central Registry NPC trading as ZA Central Registry +durban + +// dvag : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG +dvag + +// dvr : 2016-05-26 DISH Technologies L.L.C. +dvr + +// earth : 2014-12-04 Interlink Co., Ltd. +earth + +// eat : 2014-01-23 Charleston Road Registry Inc. +eat + +// eco : 2016-07-08 Big Room Inc. +eco + +// edeka : 2014-12-18 EDEKA Verband kaufmännischer Genossenschaften e.V. +edeka + +// education : 2013-11-07 Binky Moon, LLC +education + +// email : 2013-10-31 Binky Moon, LLC +email + +// emerck : 2014-04-03 Merck KGaA +emerck + +// energy : 2014-09-11 Binky Moon, LLC +energy + +// engineer : 2014-03-06 Dog Beach, LLC +engineer + +// engineering : 2014-03-06 Binky Moon, LLC +engineering + +// enterprises : 2013-09-20 Binky Moon, LLC +enterprises + +// epson : 2014-12-04 Seiko Epson Corporation +epson + +// equipment : 2013-08-27 Binky Moon, LLC +equipment + +// ericsson : 2015-07-09 Telefonaktiebolaget L M Ericsson +ericsson + +// erni : 2014-04-03 ERNI Group Holding AG +erni + +// esq : 2014-05-08 Charleston Road Registry Inc. +esq + +// estate : 2013-08-27 Binky Moon, LLC +estate + +// esurance : 2015-07-23 Esurance Insurance Company +esurance + +// etisalat : 2015-09-03 Emirates Telecommunications Corporation (trading as Etisalat) +etisalat + +// eurovision : 2014-04-24 European Broadcasting Union (EBU) +eurovision + +// eus : 2013-12-12 Puntueus Fundazioa +eus + +// events : 2013-12-05 Binky Moon, LLC +events + +// everbank : 2014-05-15 EverBank +everbank + +// exchange : 2014-03-06 Binky Moon, LLC +exchange + +// expert : 2013-11-21 Binky Moon, LLC +expert + +// exposed : 2013-12-05 Binky Moon, LLC +exposed + +// express : 2015-02-11 Binky Moon, LLC +express + +// extraspace : 2015-05-14 Extra Space Storage LLC +extraspace + +// fage : 2014-12-18 Fage International S.A. +fage + +// fail : 2014-03-06 Binky Moon, LLC +fail + +// fairwinds : 2014-11-13 FairWinds Partners, LLC +fairwinds + +// faith : 2014-11-20 dot Faith Limited +faith + +// family : 2015-04-02 Dog Beach, LLC +family + +// fan : 2014-03-06 Dog Beach, LLC +fan + +// fans : 2014-11-07 ZDNS International Limited +fans + +// farm : 2013-11-07 Binky Moon, LLC +farm + +// farmers : 2015-07-09 Farmers Insurance Exchange +farmers + +// fashion : 2014-07-03 Minds + Machines Group Limited +fashion + +// fast : 2014-12-18 Amazon Registry Services, Inc. +fast + +// fedex : 2015-08-06 Federal Express Corporation +fedex + +// feedback : 2013-12-19 Top Level Spectrum, Inc. +feedback + +// ferrari : 2015-07-31 Fiat Chrysler Automobiles N.V. +ferrari + +// ferrero : 2014-12-18 Ferrero Trading Lux S.A. +ferrero + +// fiat : 2015-07-31 Fiat Chrysler Automobiles N.V. +fiat + +// fidelity : 2015-07-30 Fidelity Brokerage Services LLC +fidelity + +// fido : 2015-08-06 Rogers Communications Canada Inc. +fido + +// film : 2015-01-08 Motion Picture Domain Registry Pty Ltd +film + +// final : 2014-10-16 Núcleo de Informação e Coordenação do Ponto BR - NIC.br +final + +// finance : 2014-03-20 Binky Moon, LLC +finance + +// financial : 2014-03-06 Binky Moon, LLC +financial + +// fire : 2015-06-25 Amazon Registry Services, Inc. +fire + +// firestone : 2014-12-18 Bridgestone Licensing Services, Inc +firestone + +// firmdale : 2014-03-27 Firmdale Holdings Limited +firmdale + +// fish : 2013-12-12 Binky Moon, LLC +fish + +// fishing : 2013-11-21 Minds + Machines Group Limited +fishing + +// fit : 2014-11-07 Minds + Machines Group Limited +fit + +// fitness : 2014-03-06 Binky Moon, LLC +fitness + +// flickr : 2015-04-02 Yahoo! Domain Services Inc. +flickr + +// flights : 2013-12-05 Binky Moon, LLC +flights + +// flir : 2015-07-23 FLIR Systems, Inc. +flir + +// florist : 2013-11-07 Binky Moon, LLC +florist + +// flowers : 2014-10-09 Uniregistry, Corp. +flowers + +// fly : 2014-05-08 Charleston Road Registry Inc. +fly + +// foo : 2014-01-23 Charleston Road Registry Inc. +foo + +// food : 2016-04-21 Lifestyle Domain Holdings, Inc. +food + +// foodnetwork : 2015-07-02 Lifestyle Domain Holdings, Inc. +foodnetwork + +// football : 2014-12-18 Binky Moon, LLC +football + +// ford : 2014-11-13 Ford Motor Company +ford + +// forex : 2014-12-11 Dotforex Registry Limited +forex + +// forsale : 2014-05-22 Dog Beach, LLC +forsale + +// forum : 2015-04-02 Fegistry, LLC +forum + +// foundation : 2013-12-05 Binky Moon, LLC +foundation + +// fox : 2015-09-11 FOX Registry, LLC +fox + +// free : 2015-12-10 Amazon Registry Services, Inc. +free + +// fresenius : 2015-07-30 Fresenius Immobilien-Verwaltungs-GmbH +fresenius + +// frl : 2014-05-15 FRLregistry B.V. +frl + +// frogans : 2013-12-19 OP3FT +frogans + +// frontdoor : 2015-07-02 Lifestyle Domain Holdings, Inc. +frontdoor + +// frontier : 2015-02-05 Frontier Communications Corporation +frontier + +// ftr : 2015-07-16 Frontier Communications Corporation +ftr + +// fujitsu : 2015-07-30 Fujitsu Limited +fujitsu + +// fujixerox : 2015-07-23 Xerox DNHC LLC +fujixerox + +// fun : 2016-01-14 DotSpace Inc. +fun + +// fund : 2014-03-20 Binky Moon, LLC +fund + +// furniture : 2014-03-20 Binky Moon, LLC +furniture + +// futbol : 2013-09-20 Dog Beach, LLC +futbol + +// fyi : 2015-04-02 Binky Moon, LLC +fyi + +// gal : 2013-11-07 Asociación puntoGAL +gal + +// gallery : 2013-09-13 Binky Moon, LLC +gallery + +// gallo : 2015-06-11 Gallo Vineyards, Inc. +gallo + +// gallup : 2015-02-19 Gallup, Inc. +gallup + +// game : 2015-05-28 Uniregistry, Corp. +game + +// games : 2015-05-28 Dog Beach, LLC +games + +// gap : 2015-07-31 The Gap, Inc. +gap + +// garden : 2014-06-26 Minds + Machines Group Limited +garden + +// gay : 2019-05-23 Top Level Design, LLC +gay + +// gbiz : 2014-07-17 Charleston Road Registry Inc. +gbiz + +// gdn : 2014-07-31 Joint Stock Company "Navigation-information systems" +gdn + +// gea : 2014-12-04 GEA Group Aktiengesellschaft +gea + +// gent : 2014-01-23 COMBELL NV +gent + +// genting : 2015-03-12 Resorts World Inc Pte. Ltd. +genting + +// george : 2015-07-31 Wal-Mart Stores, Inc. +george + +// ggee : 2014-01-09 GMO Internet, Inc. +ggee + +// gift : 2013-10-17 DotGift, LLC +gift + +// gifts : 2014-07-03 Binky Moon, LLC +gifts + +// gives : 2014-03-06 Dog Beach, LLC +gives + +// giving : 2014-11-13 Giving Limited +giving + +// glade : 2015-07-23 Johnson Shareholdings, Inc. +glade + +// glass : 2013-11-07 Binky Moon, LLC +glass + +// gle : 2014-07-24 Charleston Road Registry Inc. +gle + +// global : 2014-04-17 Dot Global Domain Registry Limited +global + +// globo : 2013-12-19 Globo Comunicação e Participações S.A +globo + +// gmail : 2014-05-01 Charleston Road Registry Inc. +gmail + +// gmbh : 2016-01-29 Binky Moon, LLC +gmbh + +// gmo : 2014-01-09 GMO Internet Pte. Ltd. +gmo + +// gmx : 2014-04-24 1&1 Mail & Media GmbH +gmx + +// godaddy : 2015-07-23 Go Daddy East, LLC +godaddy + +// gold : 2015-01-22 Binky Moon, LLC +gold + +// goldpoint : 2014-11-20 YODOBASHI CAMERA CO.,LTD. +goldpoint + +// golf : 2014-12-18 Binky Moon, LLC +golf + +// goo : 2014-12-18 NTT Resonant Inc. +goo + +// goodyear : 2015-07-02 The Goodyear Tire & Rubber Company +goodyear + +// goog : 2014-11-20 Charleston Road Registry Inc. +goog + +// google : 2014-07-24 Charleston Road Registry Inc. +google + +// gop : 2014-01-16 Republican State Leadership Committee, Inc. +gop + +// got : 2014-12-18 Amazon Registry Services, Inc. +got + +// grainger : 2015-05-07 Grainger Registry Services, LLC +grainger + +// graphics : 2013-09-13 Binky Moon, LLC +graphics + +// gratis : 2014-03-20 Binky Moon, LLC +gratis + +// green : 2014-05-08 Afilias Limited +green + +// gripe : 2014-03-06 Binky Moon, LLC +gripe + +// grocery : 2016-06-16 Wal-Mart Stores, Inc. +grocery + +// group : 2014-08-15 Binky Moon, LLC +group + +// guardian : 2015-07-30 The Guardian Life Insurance Company of America +guardian + +// gucci : 2014-11-13 Guccio Gucci S.p.a. +gucci + +// guge : 2014-08-28 Charleston Road Registry Inc. +guge + +// guide : 2013-09-13 Binky Moon, LLC +guide + +// guitars : 2013-11-14 Uniregistry, Corp. +guitars + +// guru : 2013-08-27 Binky Moon, LLC +guru + +// hair : 2015-12-03 L'Oréal +hair + +// hamburg : 2014-02-20 Hamburg Top-Level-Domain GmbH +hamburg + +// hangout : 2014-11-13 Charleston Road Registry Inc. +hangout + +// haus : 2013-12-05 Dog Beach, LLC +haus + +// hbo : 2015-07-30 HBO Registry Services, Inc. +hbo + +// hdfc : 2015-07-30 HOUSING DEVELOPMENT FINANCE CORPORATION LIMITED +hdfc + +// hdfcbank : 2015-02-12 HDFC Bank Limited +hdfcbank + +// health : 2015-02-11 DotHealth, LLC +health + +// healthcare : 2014-06-12 Binky Moon, LLC +healthcare + +// help : 2014-06-26 Uniregistry, Corp. +help + +// helsinki : 2015-02-05 City of Helsinki +helsinki + +// here : 2014-02-06 Charleston Road Registry Inc. +here + +// hermes : 2014-07-10 HERMES INTERNATIONAL +hermes + +// hgtv : 2015-07-02 Lifestyle Domain Holdings, Inc. +hgtv + +// hiphop : 2014-03-06 Uniregistry, Corp. +hiphop + +// hisamitsu : 2015-07-16 Hisamitsu Pharmaceutical Co.,Inc. +hisamitsu + +// hitachi : 2014-10-31 Hitachi, Ltd. +hitachi + +// hiv : 2014-03-13 Uniregistry, Corp. +hiv + +// hkt : 2015-05-14 PCCW-HKT DataCom Services Limited +hkt + +// hockey : 2015-03-19 Binky Moon, LLC +hockey + +// holdings : 2013-08-27 Binky Moon, LLC +holdings + +// holiday : 2013-11-07 Binky Moon, LLC +holiday + +// homedepot : 2015-04-02 Home Depot Product Authority, LLC +homedepot + +// homegoods : 2015-07-16 The TJX Companies, Inc. +homegoods + +// homes : 2014-01-09 DERHomes, LLC +homes + +// homesense : 2015-07-16 The TJX Companies, Inc. +homesense + +// honda : 2014-12-18 Honda Motor Co., Ltd. +honda + +// horse : 2013-11-21 Minds + Machines Group Limited +horse + +// hospital : 2016-10-20 Binky Moon, LLC +hospital + +// host : 2014-04-17 DotHost Inc. +host + +// hosting : 2014-05-29 Uniregistry, Corp. +hosting + +// hot : 2015-08-27 Amazon Registry Services, Inc. +hot + +// hoteles : 2015-03-05 Travel Reservations SRL +hoteles + +// hotels : 2016-04-07 Booking.com B.V. +hotels + +// hotmail : 2014-12-18 Microsoft Corporation +hotmail + +// house : 2013-11-07 Binky Moon, LLC +house + +// how : 2014-01-23 Charleston Road Registry Inc. +how + +// hsbc : 2014-10-24 HSBC Global Services (UK) Limited +hsbc + +// hughes : 2015-07-30 Hughes Satellite Systems Corporation +hughes + +// hyatt : 2015-07-30 Hyatt GTLD, L.L.C. +hyatt + +// hyundai : 2015-07-09 Hyundai Motor Company +hyundai + +// ibm : 2014-07-31 International Business Machines Corporation +ibm + +// icbc : 2015-02-19 Industrial and Commercial Bank of China Limited +icbc + +// ice : 2014-10-30 IntercontinentalExchange, Inc. +ice + +// icu : 2015-01-08 ShortDot SA +icu + +// ieee : 2015-07-23 IEEE Global LLC +ieee + +// ifm : 2014-01-30 ifm electronic gmbh +ifm + +// ikano : 2015-07-09 Ikano S.A. +ikano + +// imamat : 2015-08-06 Fondation Aga Khan (Aga Khan Foundation) +imamat + +// imdb : 2015-06-25 Amazon Registry Services, Inc. +imdb + +// immo : 2014-07-10 Binky Moon, LLC +immo + +// immobilien : 2013-11-07 Dog Beach, LLC +immobilien + +// inc : 2018-03-10 Intercap Registry Inc. +inc + +// industries : 2013-12-05 Binky Moon, LLC +industries + +// infiniti : 2014-03-27 NISSAN MOTOR CO., LTD. +infiniti + +// ing : 2014-01-23 Charleston Road Registry Inc. +ing + +// ink : 2013-12-05 Top Level Design, LLC +ink + +// institute : 2013-11-07 Binky Moon, LLC +institute + +// insurance : 2015-02-19 fTLD Registry Services LLC +insurance + +// insure : 2014-03-20 Binky Moon, LLC +insure + +// intel : 2015-08-06 Intel Corporation +intel + +// international : 2013-11-07 Binky Moon, LLC +international + +// intuit : 2015-07-30 Intuit Administrative Services, Inc. +intuit + +// investments : 2014-03-20 Binky Moon, LLC +investments + +// ipiranga : 2014-08-28 Ipiranga Produtos de Petroleo S.A. +ipiranga + +// irish : 2014-08-07 Binky Moon, LLC +irish + +// ismaili : 2015-08-06 Fondation Aga Khan (Aga Khan Foundation) +ismaili + +// ist : 2014-08-28 Istanbul Metropolitan Municipality +ist + +// istanbul : 2014-08-28 Istanbul Metropolitan Municipality +istanbul + +// itau : 2014-10-02 Itau Unibanco Holding S.A. +itau + +// itv : 2015-07-09 ITV Services Limited +itv + +// iveco : 2015-09-03 CNH Industrial N.V. +iveco + +// jaguar : 2014-11-13 Jaguar Land Rover Ltd +jaguar + +// java : 2014-06-19 Oracle Corporation +java + +// jcb : 2014-11-20 JCB Co., Ltd. +jcb + +// jcp : 2015-04-23 JCP Media, Inc. +jcp + +// jeep : 2015-07-30 FCA US LLC. +jeep + +// jetzt : 2014-01-09 Binky Moon, LLC +jetzt + +// jewelry : 2015-03-05 Binky Moon, LLC +jewelry + +// jio : 2015-04-02 Reliance Industries Limited +jio + +// jll : 2015-04-02 Jones Lang LaSalle Incorporated +jll + +// jmp : 2015-03-26 Matrix IP LLC +jmp + +// jnj : 2015-06-18 Johnson & Johnson Services, Inc. +jnj + +// joburg : 2014-03-24 ZA Central Registry NPC trading as ZA Central Registry +joburg + +// jot : 2014-12-18 Amazon Registry Services, Inc. +jot + +// joy : 2014-12-18 Amazon Registry Services, Inc. +joy + +// jpmorgan : 2015-04-30 JPMorgan Chase Bank, National Association +jpmorgan + +// jprs : 2014-09-18 Japan Registry Services Co., Ltd. +jprs + +// juegos : 2014-03-20 Uniregistry, Corp. +juegos + +// juniper : 2015-07-30 JUNIPER NETWORKS, INC. +juniper + +// kaufen : 2013-11-07 Dog Beach, LLC +kaufen + +// kddi : 2014-09-12 KDDI CORPORATION +kddi + +// kerryhotels : 2015-04-30 Kerry Trading Co. Limited +kerryhotels + +// kerrylogistics : 2015-04-09 Kerry Trading Co. Limited +kerrylogistics + +// kerryproperties : 2015-04-09 Kerry Trading Co. Limited +kerryproperties + +// kfh : 2014-12-04 Kuwait Finance House +kfh + +// kia : 2015-07-09 KIA MOTORS CORPORATION +kia + +// kim : 2013-09-23 Afilias Limited +kim + +// kinder : 2014-11-07 Ferrero Trading Lux S.A. +kinder + +// kindle : 2015-06-25 Amazon Registry Services, Inc. +kindle + +// kitchen : 2013-09-20 Binky Moon, LLC +kitchen + +// kiwi : 2013-09-20 DOT KIWI LIMITED +kiwi + +// koeln : 2014-01-09 dotKoeln GmbH +koeln + +// komatsu : 2015-01-08 Komatsu Ltd. +komatsu + +// kosher : 2015-08-20 Kosher Marketing Assets LLC +kosher + +// kpmg : 2015-04-23 KPMG International Cooperative (KPMG International Genossenschaft) +kpmg + +// kpn : 2015-01-08 Koninklijke KPN N.V. +kpn + +// krd : 2013-12-05 KRG Department of Information Technology +krd + +// kred : 2013-12-19 KredTLD Pty Ltd +kred + +// kuokgroup : 2015-04-09 Kerry Trading Co. Limited +kuokgroup + +// kyoto : 2014-11-07 Academic Institution: Kyoto Jyoho Gakuen +kyoto + +// lacaixa : 2014-01-09 Fundación Bancaria Caixa d’Estalvis i Pensions de Barcelona, “la Caixa” +lacaixa + +// ladbrokes : 2015-08-06 LADBROKES INTERNATIONAL PLC +ladbrokes + +// lamborghini : 2015-06-04 Automobili Lamborghini S.p.A. +lamborghini + +// lamer : 2015-10-01 The Estée Lauder Companies Inc. +lamer + +// lancaster : 2015-02-12 LANCASTER +lancaster + +// lancia : 2015-07-31 Fiat Chrysler Automobiles N.V. +lancia + +// lancome : 2015-07-23 L'Oréal +lancome + +// land : 2013-09-10 Binky Moon, LLC +land + +// landrover : 2014-11-13 Jaguar Land Rover Ltd +landrover + +// lanxess : 2015-07-30 LANXESS Corporation +lanxess + +// lasalle : 2015-04-02 Jones Lang LaSalle Incorporated +lasalle + +// lat : 2014-10-16 ECOM-LAC Federaciòn de Latinoamèrica y el Caribe para Internet y el Comercio Electrònico +lat + +// latino : 2015-07-30 Dish DBS Corporation +latino + +// latrobe : 2014-06-16 La Trobe University +latrobe + +// law : 2015-01-22 LW TLD Limited +law + +// lawyer : 2014-03-20 Dog Beach, LLC +lawyer + +// lds : 2014-03-20 IRI Domain Management, LLC ("Applicant") +lds + +// lease : 2014-03-06 Binky Moon, LLC +lease + +// leclerc : 2014-08-07 A.C.D. LEC Association des Centres Distributeurs Edouard Leclerc +leclerc + +// lefrak : 2015-07-16 LeFrak Organization, Inc. +lefrak + +// legal : 2014-10-16 Binky Moon, LLC +legal + +// lego : 2015-07-16 LEGO Juris A/S +lego + +// lexus : 2015-04-23 TOYOTA MOTOR CORPORATION +lexus + +// lgbt : 2014-05-08 Afilias Limited +lgbt + +// liaison : 2014-10-02 Liaison Technologies, Incorporated +liaison + +// lidl : 2014-09-18 Schwarz Domains und Services GmbH & Co. KG +lidl + +// life : 2014-02-06 Binky Moon, LLC +life + +// lifeinsurance : 2015-01-15 American Council of Life Insurers +lifeinsurance + +// lifestyle : 2014-12-11 Lifestyle Domain Holdings, Inc. +lifestyle + +// lighting : 2013-08-27 Binky Moon, LLC +lighting + +// like : 2014-12-18 Amazon Registry Services, Inc. +like + +// lilly : 2015-07-31 Eli Lilly and Company +lilly + +// limited : 2014-03-06 Binky Moon, LLC +limited + +// limo : 2013-10-17 Binky Moon, LLC +limo + +// lincoln : 2014-11-13 Ford Motor Company +lincoln + +// linde : 2014-12-04 Linde Aktiengesellschaft +linde + +// link : 2013-11-14 Uniregistry, Corp. +link + +// lipsy : 2015-06-25 Lipsy Ltd +lipsy + +// live : 2014-12-04 Dog Beach, LLC +live + +// living : 2015-07-30 Lifestyle Domain Holdings, Inc. +living + +// lixil : 2015-03-19 LIXIL Group Corporation +lixil + +// llc : 2017-12-14 Afilias Limited +llc + +// llp : 2019-08-26 Dot Registry LLC +llp + +// loan : 2014-11-20 dot Loan Limited +loan + +// loans : 2014-03-20 Binky Moon, LLC +loans + +// locker : 2015-06-04 Dish DBS Corporation +locker + +// locus : 2015-06-25 Locus Analytics LLC +locus + +// loft : 2015-07-30 Annco, Inc. +loft + +// lol : 2015-01-30 Uniregistry, Corp. +lol + +// london : 2013-11-14 Dot London Domains Limited +london + +// lotte : 2014-11-07 Lotte Holdings Co., Ltd. +lotte + +// lotto : 2014-04-10 Afilias Limited +lotto + +// love : 2014-12-22 Merchant Law Group LLP +love + +// lpl : 2015-07-30 LPL Holdings, Inc. +lpl + +// lplfinancial : 2015-07-30 LPL Holdings, Inc. +lplfinancial + +// ltd : 2014-09-25 Binky Moon, LLC +ltd + +// ltda : 2014-04-17 InterNetX, Corp +ltda + +// lundbeck : 2015-08-06 H. Lundbeck A/S +lundbeck + +// lupin : 2014-11-07 LUPIN LIMITED +lupin + +// luxe : 2014-01-09 Minds + Machines Group Limited +luxe + +// luxury : 2013-10-17 Luxury Partners, LLC +luxury + +// macys : 2015-07-31 Macys, Inc. +macys + +// madrid : 2014-05-01 Comunidad de Madrid +madrid + +// maif : 2014-10-02 Mutuelle Assurance Instituteur France (MAIF) +maif + +// maison : 2013-12-05 Binky Moon, LLC +maison + +// makeup : 2015-01-15 L'Oréal +makeup + +// man : 2014-12-04 MAN SE +man + +// management : 2013-11-07 Binky Moon, LLC +management + +// mango : 2013-10-24 PUNTO FA S.L. +mango + +// map : 2016-06-09 Charleston Road Registry Inc. +map + +// market : 2014-03-06 Dog Beach, LLC +market + +// marketing : 2013-11-07 Binky Moon, LLC +marketing + +// markets : 2014-12-11 Dotmarkets Registry Limited +markets + +// marriott : 2014-10-09 Marriott Worldwide Corporation +marriott + +// marshalls : 2015-07-16 The TJX Companies, Inc. +marshalls + +// maserati : 2015-07-31 Fiat Chrysler Automobiles N.V. +maserati + +// mattel : 2015-08-06 Mattel Sites, Inc. +mattel + +// mba : 2015-04-02 Binky Moon, LLC +mba + +// mckinsey : 2015-07-31 McKinsey Holdings, Inc. +mckinsey + +// med : 2015-08-06 Medistry LLC +med + +// media : 2014-03-06 Binky Moon, LLC +media + +// meet : 2014-01-16 Charleston Road Registry Inc. +meet + +// melbourne : 2014-05-29 The Crown in right of the State of Victoria, represented by its Department of State Development, Business and Innovation +melbourne + +// meme : 2014-01-30 Charleston Road Registry Inc. +meme + +// memorial : 2014-10-16 Dog Beach, LLC +memorial + +// men : 2015-02-26 Exclusive Registry Limited +men + +// menu : 2013-09-11 Dot Menu Registry, LLC +menu + +// merckmsd : 2016-07-14 MSD Registry Holdings, Inc. +merckmsd + +// metlife : 2015-05-07 MetLife Services and Solutions, LLC +metlife + +// miami : 2013-12-19 Minds + Machines Group Limited +miami + +// microsoft : 2014-12-18 Microsoft Corporation +microsoft + +// mini : 2014-01-09 Bayerische Motoren Werke Aktiengesellschaft +mini + +// mint : 2015-07-30 Intuit Administrative Services, Inc. +mint + +// mit : 2015-07-02 Massachusetts Institute of Technology +mit + +// mitsubishi : 2015-07-23 Mitsubishi Corporation +mitsubishi + +// mlb : 2015-05-21 MLB Advanced Media DH, LLC +mlb + +// mls : 2015-04-23 The Canadian Real Estate Association +mls + +// mma : 2014-11-07 MMA IARD +mma + +// mobile : 2016-06-02 Dish DBS Corporation +mobile + +// moda : 2013-11-07 Dog Beach, LLC +moda + +// moe : 2013-11-13 Interlink Co., Ltd. +moe + +// moi : 2014-12-18 Amazon Registry Services, Inc. +moi + +// mom : 2015-04-16 Uniregistry, Corp. +mom + +// monash : 2013-09-30 Monash University +monash + +// money : 2014-10-16 Binky Moon, LLC +money + +// monster : 2015-09-11 XYZ.COM LLC +monster + +// mopar : 2015-07-30 FCA US LLC. +mopar + +// mormon : 2013-12-05 IRI Domain Management, LLC ("Applicant") +mormon + +// mortgage : 2014-03-20 Dog Beach, LLC +mortgage + +// moscow : 2013-12-19 Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID) +moscow + +// moto : 2015-06-04 Motorola Trademark Holdings, LLC +moto + +// motorcycles : 2014-01-09 DERMotorcycles, LLC +motorcycles + +// mov : 2014-01-30 Charleston Road Registry Inc. +mov + +// movie : 2015-02-05 Binky Moon, LLC +movie + +// movistar : 2014-10-16 Telefónica S.A. +movistar + +// msd : 2015-07-23 MSD Registry Holdings, Inc. +msd + +// mtn : 2014-12-04 MTN Dubai Limited +mtn + +// mtr : 2015-03-12 MTR Corporation Limited +mtr + +// mutual : 2015-04-02 Northwestern Mutual MU TLD Registry, LLC +mutual + +// nab : 2015-08-20 National Australia Bank Limited +nab + +// nadex : 2014-12-11 Nadex Domains, Inc. +nadex + +// nagoya : 2013-10-24 GMO Registry, Inc. +nagoya + +// nationwide : 2015-07-23 Nationwide Mutual Insurance Company +nationwide + +// natura : 2015-03-12 NATURA COSMÉTICOS S.A. +natura + +// navy : 2014-03-06 Dog Beach, LLC +navy + +// nba : 2015-07-31 NBA REGISTRY, LLC +nba + +// nec : 2015-01-08 NEC Corporation +nec + +// netbank : 2014-06-26 COMMONWEALTH BANK OF AUSTRALIA +netbank + +// netflix : 2015-06-18 Netflix, Inc. +netflix + +// network : 2013-11-14 Binky Moon, LLC +network + +// neustar : 2013-12-05 Registry Services, LLC +neustar + +// new : 2014-01-30 Charleston Road Registry Inc. +new + +// newholland : 2015-09-03 CNH Industrial N.V. +newholland + +// news : 2014-12-18 Dog Beach, LLC +news + +// next : 2015-06-18 Next plc +next + +// nextdirect : 2015-06-18 Next plc +nextdirect + +// nexus : 2014-07-24 Charleston Road Registry Inc. +nexus + +// nfl : 2015-07-23 NFL Reg Ops LLC +nfl + +// ngo : 2014-03-06 Public Interest Registry +ngo + +// nhk : 2014-02-13 Japan Broadcasting Corporation (NHK) +nhk + +// nico : 2014-12-04 DWANGO Co., Ltd. +nico + +// nike : 2015-07-23 NIKE, Inc. +nike + +// nikon : 2015-05-21 NIKON CORPORATION +nikon + +// ninja : 2013-11-07 Dog Beach, LLC +ninja + +// nissan : 2014-03-27 NISSAN MOTOR CO., LTD. +nissan + +// nissay : 2015-10-29 Nippon Life Insurance Company +nissay + +// nokia : 2015-01-08 Nokia Corporation +nokia + +// northwesternmutual : 2015-06-18 Northwestern Mutual Registry, LLC +northwesternmutual + +// norton : 2014-12-04 Symantec Corporation +norton + +// now : 2015-06-25 Amazon Registry Services, Inc. +now + +// nowruz : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. +nowruz + +// nowtv : 2015-05-14 Starbucks (HK) Limited +nowtv + +// nra : 2014-05-22 NRA Holdings Company, INC. +nra + +// nrw : 2013-11-21 Minds + Machines GmbH +nrw + +// ntt : 2014-10-31 NIPPON TELEGRAPH AND TELEPHONE CORPORATION +ntt + +// nyc : 2014-01-23 The City of New York by and through the New York City Department of Information Technology & Telecommunications +nyc + +// obi : 2014-09-25 OBI Group Holding SE & Co. KGaA +obi + +// observer : 2015-04-30 Top Level Spectrum, Inc. +observer + +// off : 2015-07-23 Johnson Shareholdings, Inc. +off + +// office : 2015-03-12 Microsoft Corporation +office + +// okinawa : 2013-12-05 BRregistry, Inc. +okinawa + +// olayan : 2015-05-14 Crescent Holding GmbH +olayan + +// olayangroup : 2015-05-14 Crescent Holding GmbH +olayangroup + +// oldnavy : 2015-07-31 The Gap, Inc. +oldnavy + +// ollo : 2015-06-04 Dish DBS Corporation +ollo + +// omega : 2015-01-08 The Swatch Group Ltd +omega + +// one : 2014-11-07 One.com A/S +one + +// ong : 2014-03-06 Public Interest Registry +ong + +// onl : 2013-09-16 I-Registry Ltd. +onl + +// online : 2015-01-15 DotOnline Inc. +online + +// onyourside : 2015-07-23 Nationwide Mutual Insurance Company +onyourside + +// ooo : 2014-01-09 INFIBEAM AVENUES LIMITED +ooo + +// open : 2015-07-31 American Express Travel Related Services Company, Inc. +open + +// oracle : 2014-06-19 Oracle Corporation +oracle + +// orange : 2015-03-12 Orange Brand Services Limited +orange + +// organic : 2014-03-27 Afilias Limited +organic + +// origins : 2015-10-01 The Estée Lauder Companies Inc. +origins + +// osaka : 2014-09-04 Osaka Registry Co., Ltd. +osaka + +// otsuka : 2013-10-11 Otsuka Holdings Co., Ltd. +otsuka + +// ott : 2015-06-04 Dish DBS Corporation +ott + +// ovh : 2014-01-16 MédiaBC +ovh + +// page : 2014-12-04 Charleston Road Registry Inc. +page + +// panasonic : 2015-07-30 Panasonic Corporation +panasonic + +// paris : 2014-01-30 City of Paris +paris + +// pars : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. +pars + +// partners : 2013-12-05 Binky Moon, LLC +partners + +// parts : 2013-12-05 Binky Moon, LLC +parts + +// party : 2014-09-11 Blue Sky Registry Limited +party + +// passagens : 2015-03-05 Travel Reservations SRL +passagens + +// pay : 2015-08-27 Amazon Registry Services, Inc. +pay + +// pccw : 2015-05-14 PCCW Enterprises Limited +pccw + +// pet : 2015-05-07 Afilias Limited +pet + +// pfizer : 2015-09-11 Pfizer Inc. +pfizer + +// pharmacy : 2014-06-19 National Association of Boards of Pharmacy +pharmacy + +// phd : 2016-07-28 Charleston Road Registry Inc. +phd + +// philips : 2014-11-07 Koninklijke Philips N.V. +philips + +// phone : 2016-06-02 Dish DBS Corporation +phone + +// photo : 2013-11-14 Uniregistry, Corp. +photo + +// photography : 2013-09-20 Binky Moon, LLC +photography + +// photos : 2013-10-17 Binky Moon, LLC +photos + +// physio : 2014-05-01 PhysBiz Pty Ltd +physio + +// piaget : 2014-10-16 Richemont DNS Inc. +piaget + +// pics : 2013-11-14 Uniregistry, Corp. +pics + +// pictet : 2014-06-26 Pictet Europe S.A. +pictet + +// pictures : 2014-03-06 Binky Moon, LLC +pictures + +// pid : 2015-01-08 Top Level Spectrum, Inc. +pid + +// pin : 2014-12-18 Amazon Registry Services, Inc. +pin + +// ping : 2015-06-11 Ping Registry Provider, Inc. +ping + +// pink : 2013-10-01 Afilias Limited +pink + +// pioneer : 2015-07-16 Pioneer Corporation +pioneer + +// pizza : 2014-06-26 Binky Moon, LLC +pizza + +// place : 2014-04-24 Binky Moon, LLC +place + +// play : 2015-03-05 Charleston Road Registry Inc. +play + +// playstation : 2015-07-02 Sony Interactive Entertainment Inc. +playstation + +// plumbing : 2013-09-10 Binky Moon, LLC +plumbing + +// plus : 2015-02-05 Binky Moon, LLC +plus + +// pnc : 2015-07-02 PNC Domain Co., LLC +pnc + +// pohl : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG +pohl + +// poker : 2014-07-03 Afilias Limited +poker + +// politie : 2015-08-20 Politie Nederland +politie + +// porn : 2014-10-16 ICM Registry PN LLC +porn + +// pramerica : 2015-07-30 Prudential Financial, Inc. +pramerica + +// praxi : 2013-12-05 Praxi S.p.A. +praxi + +// press : 2014-04-03 DotPress Inc. +press + +// prime : 2015-06-25 Amazon Registry Services, Inc. +prime + +// prod : 2014-01-23 Charleston Road Registry Inc. +prod + +// productions : 2013-12-05 Binky Moon, LLC +productions + +// prof : 2014-07-24 Charleston Road Registry Inc. +prof + +// progressive : 2015-07-23 Progressive Casualty Insurance Company +progressive + +// promo : 2014-12-18 Afilias Limited +promo + +// properties : 2013-12-05 Binky Moon, LLC +properties + +// property : 2014-05-22 Uniregistry, Corp. +property + +// protection : 2015-04-23 XYZ.COM LLC +protection + +// pru : 2015-07-30 Prudential Financial, Inc. +pru + +// prudential : 2015-07-30 Prudential Financial, Inc. +prudential + +// pub : 2013-12-12 Dog Beach, LLC +pub + +// pwc : 2015-10-29 PricewaterhouseCoopers LLP +pwc + +// qpon : 2013-11-14 dotCOOL, Inc. +qpon + +// quebec : 2013-12-19 PointQuébec Inc +quebec + +// quest : 2015-03-26 Quest ION Limited +quest + +// qvc : 2015-07-30 QVC, Inc. +qvc + +// racing : 2014-12-04 Premier Registry Limited +racing + +// radio : 2016-07-21 European Broadcasting Union (EBU) +radio + +// raid : 2015-07-23 Johnson Shareholdings, Inc. +raid + +// read : 2014-12-18 Amazon Registry Services, Inc. +read + +// realestate : 2015-09-11 dotRealEstate LLC +realestate + +// realtor : 2014-05-29 Real Estate Domains LLC +realtor + +// realty : 2015-03-19 Fegistry, LLC +realty + +// recipes : 2013-10-17 Binky Moon, LLC +recipes + +// red : 2013-11-07 Afilias Limited +red + +// redstone : 2014-10-31 Redstone Haute Couture Co., Ltd. +redstone + +// redumbrella : 2015-03-26 Travelers TLD, LLC +redumbrella + +// rehab : 2014-03-06 Dog Beach, LLC +rehab + +// reise : 2014-03-13 Binky Moon, LLC +reise + +// reisen : 2014-03-06 Binky Moon, LLC +reisen + +// reit : 2014-09-04 National Association of Real Estate Investment Trusts, Inc. +reit + +// reliance : 2015-04-02 Reliance Industries Limited +reliance + +// ren : 2013-12-12 ZDNS International Limited +ren + +// rent : 2014-12-04 XYZ.COM LLC +rent + +// rentals : 2013-12-05 Binky Moon, LLC +rentals + +// repair : 2013-11-07 Binky Moon, LLC +repair + +// report : 2013-12-05 Binky Moon, LLC +report + +// republican : 2014-03-20 Dog Beach, LLC +republican + +// rest : 2013-12-19 Punto 2012 Sociedad Anonima Promotora de Inversion de Capital Variable +rest + +// restaurant : 2014-07-03 Binky Moon, LLC +restaurant + +// review : 2014-11-20 dot Review Limited +review + +// reviews : 2013-09-13 Dog Beach, LLC +reviews + +// rexroth : 2015-06-18 Robert Bosch GMBH +rexroth + +// rich : 2013-11-21 I-Registry Ltd. +rich + +// richardli : 2015-05-14 Pacific Century Asset Management (HK) Limited +richardli + +// ricoh : 2014-11-20 Ricoh Company, Ltd. +ricoh + +// rightathome : 2015-07-23 Johnson Shareholdings, Inc. +rightathome + +// ril : 2015-04-02 Reliance Industries Limited +ril + +// rio : 2014-02-27 Empresa Municipal de Informática SA - IPLANRIO +rio + +// rip : 2014-07-10 Dog Beach, LLC +rip + +// rmit : 2015-11-19 Royal Melbourne Institute of Technology +rmit + +// rocher : 2014-12-18 Ferrero Trading Lux S.A. +rocher + +// rocks : 2013-11-14 Dog Beach, LLC +rocks + +// rodeo : 2013-12-19 Minds + Machines Group Limited +rodeo + +// rogers : 2015-08-06 Rogers Communications Canada Inc. +rogers + +// room : 2014-12-18 Amazon Registry Services, Inc. +room + +// rsvp : 2014-05-08 Charleston Road Registry Inc. +rsvp + +// rugby : 2016-12-15 World Rugby Strategic Developments Limited +rugby + +// ruhr : 2013-10-02 regiodot GmbH & Co. KG +ruhr + +// run : 2015-03-19 Binky Moon, LLC +run + +// rwe : 2015-04-02 RWE AG +rwe + +// ryukyu : 2014-01-09 BRregistry, Inc. +ryukyu + +// saarland : 2013-12-12 dotSaarland GmbH +saarland + +// safe : 2014-12-18 Amazon Registry Services, Inc. +safe + +// safety : 2015-01-08 Safety Registry Services, LLC. +safety + +// sakura : 2014-12-18 SAKURA Internet Inc. +sakura + +// sale : 2014-10-16 Dog Beach, LLC +sale + +// salon : 2014-12-11 Binky Moon, LLC +salon + +// samsclub : 2015-07-31 Wal-Mart Stores, Inc. +samsclub + +// samsung : 2014-04-03 SAMSUNG SDS CO., LTD +samsung + +// sandvik : 2014-11-13 Sandvik AB +sandvik + +// sandvikcoromant : 2014-11-07 Sandvik AB +sandvikcoromant + +// sanofi : 2014-10-09 Sanofi +sanofi + +// sap : 2014-03-27 SAP AG +sap + +// sarl : 2014-07-03 Binky Moon, LLC +sarl + +// sas : 2015-04-02 Research IP LLC +sas + +// save : 2015-06-25 Amazon Registry Services, Inc. +save + +// saxo : 2014-10-31 Saxo Bank A/S +saxo + +// sbi : 2015-03-12 STATE BANK OF INDIA +sbi + +// sbs : 2014-11-07 SPECIAL BROADCASTING SERVICE CORPORATION +sbs + +// sca : 2014-03-13 SVENSKA CELLULOSA AKTIEBOLAGET SCA (publ) +sca + +// scb : 2014-02-20 The Siam Commercial Bank Public Company Limited ("SCB") +scb + +// schaeffler : 2015-08-06 Schaeffler Technologies AG & Co. KG +schaeffler + +// schmidt : 2014-04-03 SCHMIDT GROUPE S.A.S. +schmidt + +// scholarships : 2014-04-24 Scholarships.com, LLC +scholarships + +// school : 2014-12-18 Binky Moon, LLC +school + +// schule : 2014-03-06 Binky Moon, LLC +schule + +// schwarz : 2014-09-18 Schwarz Domains und Services GmbH & Co. KG +schwarz + +// science : 2014-09-11 dot Science Limited +science + +// scjohnson : 2015-07-23 Johnson Shareholdings, Inc. +scjohnson + +// scor : 2014-10-31 SCOR SE +scor + +// scot : 2014-01-23 Dot Scot Registry Limited +scot + +// search : 2016-06-09 Charleston Road Registry Inc. +search + +// seat : 2014-05-22 SEAT, S.A. (Sociedad Unipersonal) +seat + +// secure : 2015-08-27 Amazon Registry Services, Inc. +secure + +// security : 2015-05-14 XYZ.COM LLC +security + +// seek : 2014-12-04 Seek Limited +seek + +// select : 2015-10-08 Registry Services, LLC +select + +// sener : 2014-10-24 Sener Ingeniería y Sistemas, S.A. +sener + +// services : 2014-02-27 Binky Moon, LLC +services + +// ses : 2015-07-23 SES +ses + +// seven : 2015-08-06 Seven West Media Ltd +seven + +// sew : 2014-07-17 SEW-EURODRIVE GmbH & Co KG +sew + +// sex : 2014-11-13 ICM Registry SX LLC +sex + +// sexy : 2013-09-11 Uniregistry, Corp. +sexy + +// sfr : 2015-08-13 Societe Francaise du Radiotelephone - SFR +sfr + +// shangrila : 2015-09-03 Shangri‐La International Hotel Management Limited +shangrila + +// sharp : 2014-05-01 Sharp Corporation +sharp + +// shaw : 2015-04-23 Shaw Cablesystems G.P. +shaw + +// shell : 2015-07-30 Shell Information Technology International Inc +shell + +// shia : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. +shia + +// shiksha : 2013-11-14 Afilias Limited +shiksha + +// shoes : 2013-10-02 Binky Moon, LLC +shoes + +// shop : 2016-04-08 GMO Registry, Inc. +shop + +// shopping : 2016-03-31 Binky Moon, LLC +shopping + +// shouji : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD. +shouji + +// show : 2015-03-05 Binky Moon, LLC +show + +// showtime : 2015-08-06 CBS Domains Inc. +showtime + +// shriram : 2014-01-23 Shriram Capital Ltd. +shriram + +// silk : 2015-06-25 Amazon Registry Services, Inc. +silk + +// sina : 2015-03-12 Sina Corporation +sina + +// singles : 2013-08-27 Binky Moon, LLC +singles + +// site : 2015-01-15 DotSite Inc. +site + +// ski : 2015-04-09 Afilias Limited +ski + +// skin : 2015-01-15 L'Oréal +skin + +// sky : 2014-06-19 Sky International AG +sky + +// skype : 2014-12-18 Microsoft Corporation +skype + +// sling : 2015-07-30 DISH Technologies L.L.C. +sling + +// smart : 2015-07-09 Smart Communications, Inc. (SMART) +smart + +// smile : 2014-12-18 Amazon Registry Services, Inc. +smile + +// sncf : 2015-02-19 Société Nationale des Chemins de fer Francais S N C F +sncf + +// soccer : 2015-03-26 Binky Moon, LLC +soccer + +// social : 2013-11-07 Dog Beach, LLC +social + +// softbank : 2015-07-02 SoftBank Group Corp. +softbank + +// software : 2014-03-20 Dog Beach, LLC +software + +// sohu : 2013-12-19 Sohu.com Limited +sohu + +// solar : 2013-11-07 Binky Moon, LLC +solar + +// solutions : 2013-11-07 Binky Moon, LLC +solutions + +// song : 2015-02-26 Amazon Registry Services, Inc. +song + +// sony : 2015-01-08 Sony Corporation +sony + +// soy : 2014-01-23 Charleston Road Registry Inc. +soy + +// space : 2014-04-03 DotSpace Inc. +space + +// sport : 2017-11-16 Global Association of International Sports Federations (GAISF) +sport + +// spot : 2015-02-26 Amazon Registry Services, Inc. +spot + +// spreadbetting : 2014-12-11 Dotspreadbetting Registry Limited +spreadbetting + +// srl : 2015-05-07 InterNetX, Corp +srl + +// srt : 2015-07-30 FCA US LLC. +srt + +// stada : 2014-11-13 STADA Arzneimittel AG +stada + +// staples : 2015-07-30 Staples, Inc. +staples + +// star : 2015-01-08 Star India Private Limited +star + +// statebank : 2015-03-12 STATE BANK OF INDIA +statebank + +// statefarm : 2015-07-30 State Farm Mutual Automobile Insurance Company +statefarm + +// stc : 2014-10-09 Saudi Telecom Company +stc + +// stcgroup : 2014-10-09 Saudi Telecom Company +stcgroup + +// stockholm : 2014-12-18 Stockholms kommun +stockholm + +// storage : 2014-12-22 XYZ.COM LLC +storage + +// store : 2015-04-09 DotStore Inc. +store + +// stream : 2016-01-08 dot Stream Limited +stream + +// studio : 2015-02-11 Dog Beach, LLC +studio + +// study : 2014-12-11 OPEN UNIVERSITIES AUSTRALIA PTY LTD +study + +// style : 2014-12-04 Binky Moon, LLC +style + +// sucks : 2014-12-22 Vox Populi Registry Ltd. +sucks + +// supplies : 2013-12-19 Binky Moon, LLC +supplies + +// supply : 2013-12-19 Binky Moon, LLC +supply + +// support : 2013-10-24 Binky Moon, LLC +support + +// surf : 2014-01-09 Minds + Machines Group Limited +surf + +// surgery : 2014-03-20 Binky Moon, LLC +surgery + +// suzuki : 2014-02-20 SUZUKI MOTOR CORPORATION +suzuki + +// swatch : 2015-01-08 The Swatch Group Ltd +swatch + +// swiftcover : 2015-07-23 Swiftcover Insurance Services Limited +swiftcover + +// swiss : 2014-10-16 Swiss Confederation +swiss + +// sydney : 2014-09-18 State of New South Wales, Department of Premier and Cabinet +sydney + +// symantec : 2014-12-04 Symantec Corporation +symantec + +// systems : 2013-11-07 Binky Moon, LLC +systems + +// tab : 2014-12-04 Tabcorp Holdings Limited +tab + +// taipei : 2014-07-10 Taipei City Government +taipei + +// talk : 2015-04-09 Amazon Registry Services, Inc. +talk + +// taobao : 2015-01-15 Alibaba Group Holding Limited +taobao + +// target : 2015-07-31 Target Domain Holdings, LLC +target + +// tatamotors : 2015-03-12 Tata Motors Ltd +tatamotors + +// tatar : 2014-04-24 Limited Liability Company "Coordination Center of Regional Domain of Tatarstan Republic" +tatar + +// tattoo : 2013-08-30 Uniregistry, Corp. +tattoo + +// tax : 2014-03-20 Binky Moon, LLC +tax + +// taxi : 2015-03-19 Binky Moon, LLC +taxi + +// tci : 2014-09-12 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. +tci + +// tdk : 2015-06-11 TDK Corporation +tdk + +// team : 2015-03-05 Binky Moon, LLC +team + +// tech : 2015-01-30 Personals TLD Inc. +tech + +// technology : 2013-09-13 Binky Moon, LLC +technology + +// telefonica : 2014-10-16 Telefónica S.A. +telefonica + +// temasek : 2014-08-07 Temasek Holdings (Private) Limited +temasek + +// tennis : 2014-12-04 Binky Moon, LLC +tennis + +// teva : 2015-07-02 Teva Pharmaceutical Industries Limited +teva + +// thd : 2015-04-02 Home Depot Product Authority, LLC +thd + +// theater : 2015-03-19 Binky Moon, LLC +theater + +// theatre : 2015-05-07 XYZ.COM LLC +theatre + +// tiaa : 2015-07-23 Teachers Insurance and Annuity Association of America +tiaa + +// tickets : 2015-02-05 Accent Media Limited +tickets + +// tienda : 2013-11-14 Binky Moon, LLC +tienda + +// tiffany : 2015-01-30 Tiffany and Company +tiffany + +// tips : 2013-09-20 Binky Moon, LLC +tips + +// tires : 2014-11-07 Binky Moon, LLC +tires + +// tirol : 2014-04-24 punkt Tirol GmbH +tirol + +// tjmaxx : 2015-07-16 The TJX Companies, Inc. +tjmaxx + +// tjx : 2015-07-16 The TJX Companies, Inc. +tjx + +// tkmaxx : 2015-07-16 The TJX Companies, Inc. +tkmaxx + +// tmall : 2015-01-15 Alibaba Group Holding Limited +tmall + +// today : 2013-09-20 Binky Moon, LLC +today + +// tokyo : 2013-11-13 GMO Registry, Inc. +tokyo + +// tools : 2013-11-21 Binky Moon, LLC +tools + +// top : 2014-03-20 .TOP Registry +top + +// toray : 2014-12-18 Toray Industries, Inc. +toray + +// toshiba : 2014-04-10 TOSHIBA Corporation +toshiba + +// total : 2015-08-06 Total SA +total + +// tours : 2015-01-22 Binky Moon, LLC +tours + +// town : 2014-03-06 Binky Moon, LLC +town + +// toyota : 2015-04-23 TOYOTA MOTOR CORPORATION +toyota + +// toys : 2014-03-06 Binky Moon, LLC +toys + +// trade : 2014-01-23 Elite Registry Limited +trade + +// trading : 2014-12-11 Dottrading Registry Limited +trading + +// training : 2013-11-07 Binky Moon, LLC +training + +// travel : Dog Beach, LLC +travel + +// travelchannel : 2015-07-02 Lifestyle Domain Holdings, Inc. +travelchannel + +// travelers : 2015-03-26 Travelers TLD, LLC +travelers + +// travelersinsurance : 2015-03-26 Travelers TLD, LLC +travelersinsurance + +// trust : 2014-10-16 NCC Group Inc. +trust + +// trv : 2015-03-26 Travelers TLD, LLC +trv + +// tube : 2015-06-11 Latin American Telecom LLC +tube + +// tui : 2014-07-03 TUI AG +tui + +// tunes : 2015-02-26 Amazon Registry Services, Inc. +tunes + +// tushu : 2014-12-18 Amazon Registry Services, Inc. +tushu + +// tvs : 2015-02-19 T V SUNDRAM IYENGAR & SONS LIMITED +tvs + +// ubank : 2015-08-20 National Australia Bank Limited +ubank + +// ubs : 2014-12-11 UBS AG +ubs + +// uconnect : 2015-07-30 FCA US LLC. +uconnect + +// unicom : 2015-10-15 China United Network Communications Corporation Limited +unicom + +// university : 2014-03-06 Binky Moon, LLC +university + +// uno : 2013-09-11 Dot Latin LLC +uno + +// uol : 2014-05-01 UBN INTERNET LTDA. +uol + +// ups : 2015-06-25 UPS Market Driver, Inc. +ups + +// vacations : 2013-12-05 Binky Moon, LLC +vacations + +// vana : 2014-12-11 Lifestyle Domain Holdings, Inc. +vana + +// vanguard : 2015-09-03 The Vanguard Group, Inc. +vanguard + +// vegas : 2014-01-16 Dot Vegas, Inc. +vegas + +// ventures : 2013-08-27 Binky Moon, LLC +ventures + +// verisign : 2015-08-13 VeriSign, Inc. +verisign + +// versicherung : 2014-03-20 tldbox GmbH +versicherung + +// vet : 2014-03-06 Dog Beach, LLC +vet + +// viajes : 2013-10-17 Binky Moon, LLC +viajes + +// video : 2014-10-16 Dog Beach, LLC +video + +// vig : 2015-05-14 VIENNA INSURANCE GROUP AG Wiener Versicherung Gruppe +vig + +// viking : 2015-04-02 Viking River Cruises (Bermuda) Ltd. +viking + +// villas : 2013-12-05 Binky Moon, LLC +villas + +// vin : 2015-06-18 Binky Moon, LLC +vin + +// vip : 2015-01-22 Minds + Machines Group Limited +vip + +// virgin : 2014-09-25 Virgin Enterprises Limited +virgin + +// visa : 2015-07-30 Visa Worldwide Pte. Limited +visa + +// vision : 2013-12-05 Binky Moon, LLC +vision + +// vistaprint : 2014-09-18 Vistaprint Limited +vistaprint + +// viva : 2014-11-07 Saudi Telecom Company +viva + +// vivo : 2015-07-31 Telefonica Brasil S.A. +vivo + +// vlaanderen : 2014-02-06 DNS.be vzw +vlaanderen + +// vodka : 2013-12-19 Minds + Machines Group Limited +vodka + +// volkswagen : 2015-05-14 Volkswagen Group of America Inc. +volkswagen + +// volvo : 2015-11-12 Volvo Holding Sverige Aktiebolag +volvo + +// vote : 2013-11-21 Monolith Registry LLC +vote + +// voting : 2013-11-13 Valuetainment Corp. +voting + +// voto : 2013-11-21 Monolith Registry LLC +voto + +// voyage : 2013-08-27 Binky Moon, LLC +voyage + +// vuelos : 2015-03-05 Travel Reservations SRL +vuelos + +// wales : 2014-05-08 Nominet UK +wales + +// walmart : 2015-07-31 Wal-Mart Stores, Inc. +walmart + +// walter : 2014-11-13 Sandvik AB +walter + +// wang : 2013-10-24 Zodiac Wang Limited +wang + +// wanggou : 2014-12-18 Amazon Registry Services, Inc. +wanggou + +// warman : 2015-06-18 Weir Group IP Limited +warman + +// watch : 2013-11-14 Binky Moon, LLC +watch + +// watches : 2014-12-22 Richemont DNS Inc. +watches + +// weather : 2015-01-08 International Business Machines Corporation +weather + +// weatherchannel : 2015-03-12 International Business Machines Corporation +weatherchannel + +// webcam : 2014-01-23 dot Webcam Limited +webcam + +// weber : 2015-06-04 Saint-Gobain Weber SA +weber + +// website : 2014-04-03 DotWebsite Inc. +website + +// wed : 2013-10-01 Atgron, Inc. +wed + +// wedding : 2014-04-24 Minds + Machines Group Limited +wedding + +// weibo : 2015-03-05 Sina Corporation +weibo + +// weir : 2015-01-29 Weir Group IP Limited +weir + +// whoswho : 2014-02-20 Who's Who Registry +whoswho + +// wien : 2013-10-28 punkt.wien GmbH +wien + +// wiki : 2013-11-07 Top Level Design, LLC +wiki + +// williamhill : 2014-03-13 William Hill Organization Limited +williamhill + +// win : 2014-11-20 First Registry Limited +win + +// windows : 2014-12-18 Microsoft Corporation +windows + +// wine : 2015-06-18 Binky Moon, LLC +wine + +// winners : 2015-07-16 The TJX Companies, Inc. +winners + +// wme : 2014-02-13 William Morris Endeavor Entertainment, LLC +wme + +// wolterskluwer : 2015-08-06 Wolters Kluwer N.V. +wolterskluwer + +// woodside : 2015-07-09 Woodside Petroleum Limited +woodside + +// work : 2013-12-19 Minds + Machines Group Limited +work + +// works : 2013-11-14 Binky Moon, LLC +works + +// world : 2014-06-12 Binky Moon, LLC +world + +// wow : 2015-10-08 Amazon Registry Services, Inc. +wow + +// wtc : 2013-12-19 World Trade Centers Association, Inc. +wtc + +// wtf : 2014-03-06 Binky Moon, LLC +wtf + +// xbox : 2014-12-18 Microsoft Corporation +xbox + +// xerox : 2014-10-24 Xerox DNHC LLC +xerox + +// xfinity : 2015-07-09 Comcast IP Holdings I, LLC +xfinity + +// xihuan : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD. +xihuan + +// xin : 2014-12-11 Elegant Leader Limited +xin + +// xn--11b4c3d : 2015-01-15 VeriSign Sarl +कॉम + +// xn--1ck2e1b : 2015-02-26 Amazon Registry Services, Inc. +セール + +// xn--1qqw23a : 2014-01-09 Guangzhou YU Wei Information Technology Co., Ltd. +佛山 + +// xn--30rr7y : 2014-06-12 Excellent First Limited +慈善 + +// xn--3bst00m : 2013-09-13 Eagle Horizon Limited +集团 + +// xn--3ds443g : 2013-09-08 TLD REGISTRY LIMITED +在线 + +// xn--3oq18vl8pn36a : 2015-07-02 Volkswagen (China) Investment Co., Ltd. +大众汽车 + +// xn--3pxu8k : 2015-01-15 VeriSign Sarl +点看 + +// xn--42c2d9a : 2015-01-15 VeriSign Sarl +คอม + +// xn--45q11c : 2013-11-21 Zodiac Gemini Ltd +八卦 + +// xn--4gbrim : 2013-10-04 Suhub Electronic Establishment +موقع + +// xn--55qw42g : 2013-11-08 China Organizational Name Administration Center +公益 + +// xn--55qx5d : 2013-11-14 China Internet Network Information Center (CNNIC) +公司 + +// xn--5su34j936bgsg : 2015-09-03 Shangri‐La International Hotel Management Limited +香格里拉 + +// xn--5tzm5g : 2014-12-22 Global Website TLD Asia Limited +网站 + +// xn--6frz82g : 2013-09-23 Afilias Limited +移动 + +// xn--6qq986b3xl : 2013-09-13 Tycoon Treasure Limited +我爱你 + +// xn--80adxhks : 2013-12-19 Foundation for Assistance for Internet Technologies and Infrastructure Development (FAITID) +москва + +// xn--80aqecdr1a : 2015-10-21 Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) +католик + +// xn--80asehdb : 2013-07-14 CORE Association +онлайн + +// xn--80aswg : 2013-07-14 CORE Association +сайт + +// xn--8y0a063a : 2015-03-26 China United Network Communications Corporation Limited +联通 + +// xn--9dbq2a : 2015-01-15 VeriSign Sarl +קום + +// xn--9et52u : 2014-06-12 RISE VICTORY LIMITED +时尚 + +// xn--9krt00a : 2015-03-12 Sina Corporation +微博 + +// xn--b4w605ferd : 2014-08-07 Temasek Holdings (Private) Limited +淡马锡 + +// xn--bck1b9a5dre4c : 2015-02-26 Amazon Registry Services, Inc. +ファッション + +// xn--c1avg : 2013-11-14 Public Interest Registry +орг + +// xn--c2br7g : 2015-01-15 VeriSign Sarl +नेट + +// xn--cck2b3b : 2015-02-26 Amazon Registry Services, Inc. +ストア + +// xn--cg4bki : 2013-09-27 SAMSUNG SDS CO., LTD +삼성 + +// xn--czr694b : 2014-01-16 Dot Trademark TLD Holding Company Limited +商标 + +// xn--czrs0t : 2013-12-19 Binky Moon, LLC +商店 + +// xn--czru2d : 2013-11-21 Zodiac Aquarius Limited +商城 + +// xn--d1acj3b : 2013-11-20 The Foundation for Network Initiatives “The Smart Internet” +дети + +// xn--eckvdtc9d : 2014-12-18 Amazon Registry Services, Inc. +ポイント + +// xn--efvy88h : 2014-08-22 Guangzhou YU Wei Information Technology Co., Ltd. +新闻 + +// xn--estv75g : 2015-02-19 Industrial and Commercial Bank of China Limited +工行 + +// xn--fct429k : 2015-04-09 Amazon Registry Services, Inc. +家電 + +// xn--fhbei : 2015-01-15 VeriSign Sarl +كوم + +// xn--fiq228c5hs : 2013-09-08 TLD REGISTRY LIMITED +中文网 + +// xn--fiq64b : 2013-10-14 CITIC Group Corporation +中信 + +// xn--fjq720a : 2014-05-22 Binky Moon, LLC +娱乐 + +// xn--flw351e : 2014-07-31 Charleston Road Registry Inc. +谷歌 + +// xn--fzys8d69uvgm : 2015-05-14 PCCW Enterprises Limited +電訊盈科 + +// xn--g2xx48c : 2015-01-30 Minds + Machines Group Limited +购物 + +// xn--gckr3f0f : 2015-02-26 Amazon Registry Services, Inc. +クラウド + +// xn--gk3at1e : 2015-10-08 Amazon Registry Services, Inc. +通販 + +// xn--hxt814e : 2014-05-15 Zodiac Taurus Limited +网店 + +// xn--i1b6b1a6a2e : 2013-11-14 Public Interest Registry +संगठन + +// xn--imr513n : 2014-12-11 Dot Trademark TLD Holding Company Limited +餐厅 + +// xn--io0a7i : 2013-11-14 China Internet Network Information Center (CNNIC) +网络 + +// xn--j1aef : 2015-01-15 VeriSign Sarl +ком + +// xn--jlq61u9w7b : 2015-01-08 Nokia Corporation +诺基亚 + +// xn--jvr189m : 2015-02-26 Amazon Registry Services, Inc. +食品 + +// xn--kcrx77d1x4a : 2014-11-07 Koninklijke Philips N.V. +飞利浦 + +// xn--kpu716f : 2014-12-22 Richemont DNS Inc. +手表 + +// xn--kput3i : 2014-02-13 Beijing RITT-Net Technology Development Co., Ltd +手机 + +// xn--mgba3a3ejt : 2014-11-20 Aramco Services Company +ارامكو + +// xn--mgba7c0bbn0a : 2015-05-14 Crescent Holding GmbH +العليان + +// xn--mgbaakc7dvf : 2015-09-03 Emirates Telecommunications Corporation (trading as Etisalat) +اتصالات + +// xn--mgbab2bd : 2013-10-31 CORE Association +بازار + +// xn--mgbca7dzdo : 2015-07-30 Abu Dhabi Systems and Information Centre +ابوظبي + +// xn--mgbi4ecexp : 2015-10-21 Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) +كاثوليك + +// xn--mgbt3dhd : 2014-09-04 Asia Green IT System Bilgisayar San. ve Tic. Ltd. Sti. +همراه + +// xn--mk1bu44c : 2015-01-15 VeriSign Sarl +닷컴 + +// xn--mxtq1m : 2014-03-06 Net-Chinese Co., Ltd. +政府 + +// xn--ngbc5azd : 2013-07-13 International Domain Registry Pty. Ltd. +شبكة + +// xn--ngbe9e0a : 2014-12-04 Kuwait Finance House +بيتك + +// xn--ngbrx : 2015-11-12 League of Arab States +عرب + +// xn--nqv7f : 2013-11-14 Public Interest Registry +机构 + +// xn--nqv7fs00ema : 2013-11-14 Public Interest Registry +组织机构 + +// xn--nyqy26a : 2014-11-07 Stable Tone Limited +健康 + +// xn--otu796d : 2017-08-06 Dot Trademark TLD Holding Company Limited +招聘 + +// xn--p1acf : 2013-12-12 Rusnames Limited +рус + +// xn--pbt977c : 2014-12-22 Richemont DNS Inc. +珠宝 + +// xn--pssy2u : 2015-01-15 VeriSign Sarl +大拿 + +// xn--q9jyb4c : 2013-09-17 Charleston Road Registry Inc. +みんな + +// xn--qcka1pmc : 2014-07-31 Charleston Road Registry Inc. +グーグル + +// xn--rhqv96g : 2013-09-11 Stable Tone Limited +世界 + +// xn--rovu88b : 2015-02-26 Amazon Registry Services, Inc. +書籍 + +// xn--ses554g : 2014-01-16 KNET Co., Ltd. +网址 + +// xn--t60b56a : 2015-01-15 VeriSign Sarl +닷넷 + +// xn--tckwe : 2015-01-15 VeriSign Sarl +コム + +// xn--tiq49xqyj : 2015-10-21 Pontificium Consilium de Comunicationibus Socialibus (PCCS) (Pontifical Council for Social Communication) +天主教 + +// xn--unup4y : 2013-07-14 Binky Moon, LLC +游戏 + +// xn--vermgensberater-ctb : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG +vermögensberater + +// xn--vermgensberatung-pwb : 2014-06-23 Deutsche Vermögensberatung Aktiengesellschaft DVAG +vermögensberatung + +// xn--vhquv : 2013-08-27 Binky Moon, LLC +企业 + +// xn--vuq861b : 2014-10-16 Beijing Tele-info Network Technology Co., Ltd. +信息 + +// xn--w4r85el8fhu5dnra : 2015-04-30 Kerry Trading Co. Limited +嘉里大酒店 + +// xn--w4rs40l : 2015-07-30 Kerry Trading Co. Limited +嘉里 + +// xn--xhq521b : 2013-11-14 Guangzhou YU Wei Information Technology Co., Ltd. +广东 + +// xn--zfr164b : 2013-11-08 China Organizational Name Administration Center +政务 + +// xyz : 2013-12-05 XYZ.COM LLC +xyz + +// yachts : 2014-01-09 DERYachts, LLC +yachts + +// yahoo : 2015-04-02 Yahoo! Domain Services Inc. +yahoo + +// yamaxun : 2014-12-18 Amazon Registry Services, Inc. +yamaxun + +// yandex : 2014-04-10 YANDEX, LLC +yandex + +// yodobashi : 2014-11-20 YODOBASHI CAMERA CO.,LTD. +yodobashi + +// yoga : 2014-05-29 Minds + Machines Group Limited +yoga + +// yokohama : 2013-12-12 GMO Registry, Inc. +yokohama + +// you : 2015-04-09 Amazon Registry Services, Inc. +you + +// youtube : 2014-05-01 Charleston Road Registry Inc. +youtube + +// yun : 2015-01-08 QIHOO 360 TECHNOLOGY CO. LTD. +yun + +// zappos : 2015-06-25 Amazon Registry Services, Inc. +zappos + +// zara : 2014-11-07 Industria de Diseño Textil, S.A. (INDITEX, S.A.) +zara + +// zero : 2014-12-18 Amazon Registry Services, Inc. +zero + +// zip : 2014-05-08 Charleston Road Registry Inc. +zip + +// zone : 2013-11-14 Binky Moon, LLC +zone + +// zuerich : 2014-11-07 Kanton Zürich (Canton of Zurich) +zuerich + + +// ===END ICANN DOMAINS=== +// ===BEGIN PRIVATE DOMAINS=== +// (Note: these are in alphabetical order by company name) + +// 1GB LLC : https://www.1gb.ua/ +// Submitted by 1GB LLC +cc.ua +inf.ua +ltd.ua + +// Agnat sp. z o.o. : https://domena.pl +// Submitted by Przemyslaw Plewa +beep.pl + +// alboto.ca : http://alboto.ca +// Submitted by Anton Avramov +barsy.ca + +// Alces Software Ltd : http://alces-software.com +// Submitted by Mark J. Titorenko +*.compute.estate +*.alces.network + +// alwaysdata : https://www.alwaysdata.com +// Submitted by Cyril +alwaysdata.net + +// Amazon CloudFront : https://aws.amazon.com/cloudfront/ +// Submitted by Donavan Miller +cloudfront.net + +// Amazon Elastic Compute Cloud : https://aws.amazon.com/ec2/ +// Submitted by Luke Wells +*.compute.amazonaws.com +*.compute-1.amazonaws.com +*.compute.amazonaws.com.cn +us-east-1.amazonaws.com + +// Amazon Elastic Beanstalk : https://aws.amazon.com/elasticbeanstalk/ +// Submitted by Luke Wells +cn-north-1.eb.amazonaws.com.cn +cn-northwest-1.eb.amazonaws.com.cn +elasticbeanstalk.com +ap-northeast-1.elasticbeanstalk.com +ap-northeast-2.elasticbeanstalk.com +ap-northeast-3.elasticbeanstalk.com +ap-south-1.elasticbeanstalk.com +ap-southeast-1.elasticbeanstalk.com +ap-southeast-2.elasticbeanstalk.com +ca-central-1.elasticbeanstalk.com +eu-central-1.elasticbeanstalk.com +eu-west-1.elasticbeanstalk.com +eu-west-2.elasticbeanstalk.com +eu-west-3.elasticbeanstalk.com +sa-east-1.elasticbeanstalk.com +us-east-1.elasticbeanstalk.com +us-east-2.elasticbeanstalk.com +us-gov-west-1.elasticbeanstalk.com +us-west-1.elasticbeanstalk.com +us-west-2.elasticbeanstalk.com + +// Amazon Elastic Load Balancing : https://aws.amazon.com/elasticloadbalancing/ +// Submitted by Luke Wells +*.elb.amazonaws.com +*.elb.amazonaws.com.cn + +// Amazon S3 : https://aws.amazon.com/s3/ +// Submitted by Luke Wells +s3.amazonaws.com +s3-ap-northeast-1.amazonaws.com +s3-ap-northeast-2.amazonaws.com +s3-ap-south-1.amazonaws.com +s3-ap-southeast-1.amazonaws.com +s3-ap-southeast-2.amazonaws.com +s3-ca-central-1.amazonaws.com +s3-eu-central-1.amazonaws.com +s3-eu-west-1.amazonaws.com +s3-eu-west-2.amazonaws.com +s3-eu-west-3.amazonaws.com +s3-external-1.amazonaws.com +s3-fips-us-gov-west-1.amazonaws.com +s3-sa-east-1.amazonaws.com +s3-us-gov-west-1.amazonaws.com +s3-us-east-2.amazonaws.com +s3-us-west-1.amazonaws.com +s3-us-west-2.amazonaws.com +s3.ap-northeast-2.amazonaws.com +s3.ap-south-1.amazonaws.com +s3.cn-north-1.amazonaws.com.cn +s3.ca-central-1.amazonaws.com +s3.eu-central-1.amazonaws.com +s3.eu-west-2.amazonaws.com +s3.eu-west-3.amazonaws.com +s3.us-east-2.amazonaws.com +s3.dualstack.ap-northeast-1.amazonaws.com +s3.dualstack.ap-northeast-2.amazonaws.com +s3.dualstack.ap-south-1.amazonaws.com +s3.dualstack.ap-southeast-1.amazonaws.com +s3.dualstack.ap-southeast-2.amazonaws.com +s3.dualstack.ca-central-1.amazonaws.com +s3.dualstack.eu-central-1.amazonaws.com +s3.dualstack.eu-west-1.amazonaws.com +s3.dualstack.eu-west-2.amazonaws.com +s3.dualstack.eu-west-3.amazonaws.com +s3.dualstack.sa-east-1.amazonaws.com +s3.dualstack.us-east-1.amazonaws.com +s3.dualstack.us-east-2.amazonaws.com +s3-website-us-east-1.amazonaws.com +s3-website-us-west-1.amazonaws.com +s3-website-us-west-2.amazonaws.com +s3-website-ap-northeast-1.amazonaws.com +s3-website-ap-southeast-1.amazonaws.com +s3-website-ap-southeast-2.amazonaws.com +s3-website-eu-west-1.amazonaws.com +s3-website-sa-east-1.amazonaws.com +s3-website.ap-northeast-2.amazonaws.com +s3-website.ap-south-1.amazonaws.com +s3-website.ca-central-1.amazonaws.com +s3-website.eu-central-1.amazonaws.com +s3-website.eu-west-2.amazonaws.com +s3-website.eu-west-3.amazonaws.com +s3-website.us-east-2.amazonaws.com + +// Amune : https://amune.org/ +// Submitted by Team Amune +t3l3p0rt.net +tele.amune.org + +// Apigee : https://apigee.com/ +// Submitted by Apigee Security Team +apigee.io + +// Aptible : https://www.aptible.com/ +// Submitted by Thomas Orozco +on-aptible.com + +// ASEINet : https://www.aseinet.com/ +// Submitted by Asei SEKIGUCHI +user.aseinet.ne.jp +gv.vc +d.gv.vc + +// Asociación Amigos de la Informática "Euskalamiga" : http://encounter.eus/ +// Submitted by Hector Martin +user.party.eus + +// Association potager.org : https://potager.org/ +// Submitted by Lunar +pimienta.org +poivron.org +potager.org +sweetpepper.org + +// ASUSTOR Inc. : http://www.asustor.com +// Submitted by Vincent Tseng +myasustor.com + +// Automattic Inc. : https://automattic.com/ +// Submitted by Alex Concha +go-vip.co +go-vip.net +wpcomstaging.com + +// AVM : https://avm.de +// Submitted by Andreas Weise +myfritz.net + +// AW AdvisorWebsites.com Software Inc : https://advisorwebsites.com +// Submitted by James Kennedy +*.awdev.ca +*.advisor.ws + +// b-data GmbH : https://www.b-data.io +// Submitted by Olivier Benz +b-data.io + +// backplane : https://www.backplane.io +// Submitted by Anthony Voutas +backplaneapp.io + +// Balena : https://www.balena.io +// Submitted by Petros Angelatos +balena-devices.com + +// Banzai Cloud +// Submitted by Gabor Kozma +app.banzaicloud.io + +// BetaInABox +// Submitted by Adrian +betainabox.com + +// BinaryLane : http://www.binarylane.com +// Submitted by Nathan O'Sullivan +bnr.la + +// Blackbaud, Inc. : https://www.blackbaud.com +// Submitted by Paul Crowder +blackbaudcdn.net + +// Boomla : https://boomla.com +// Submitted by Tibor Halter +boomla.net + +// Boxfuse : https://boxfuse.com +// Submitted by Axel Fontaine +boxfuse.io + +// bplaced : https://www.bplaced.net/ +// Submitted by Miroslav Bozic +square7.ch +bplaced.com +bplaced.de +square7.de +bplaced.net +square7.net + +// BrowserSafetyMark +// Submitted by Dave Tharp +browsersafetymark.io + +// Bytemark Hosting : https://www.bytemark.co.uk +// Submitted by Paul Cammish +uk0.bigv.io +dh.bytemark.co.uk +vm.bytemark.co.uk + +// callidomus : https://www.callidomus.com/ +// Submitted by Marcus Popp +mycd.eu + +// Carrd : https://carrd.co +// Submitted by AJ +carrd.co +crd.co +uwu.ai + +// CentralNic : http://www.centralnic.com/names/domains +// Submitted by registry +ae.org +ar.com +br.com +cn.com +com.de +com.se +de.com +eu.com +gb.com +gb.net +hu.com +hu.net +jp.net +jpn.com +kr.com +mex.com +no.com +qc.com +ru.com +sa.com +se.net +uk.com +uk.net +us.com +uy.com +za.bz +za.com + +// Africa.com Web Solutions Ltd : https://registry.africa.com +// Submitted by Gavin Brown +africa.com + +// iDOT Services Limited : http://www.domain.gr.com +// Submitted by Gavin Brown +gr.com + +// Radix FZC : http://domains.in.net +// Submitted by Gavin Brown +in.net + +// US REGISTRY LLC : http://us.org +// Submitted by Gavin Brown +us.org + +// co.com Registry, LLC : https://registry.co.com +// Submitted by Gavin Brown +co.com + +// c.la : http://www.c.la/ +c.la + +// certmgr.org : https://certmgr.org +// Submitted by B. Blechschmidt +certmgr.org + +// Citrix : https://citrix.com +// Submitted by Alex Stoddard +xenapponazure.com + +// Civilized Discourse Construction Kit, Inc. : https://www.discourse.org/ +// Submitted by Rishabh Nambiar +discourse.group + +// ClearVox : http://www.clearvox.nl/ +// Submitted by Leon Rowland +virtueeldomein.nl + +// Clever Cloud : https://www.clever-cloud.com/ +// Submitted by Quentin Adam +cleverapps.io + +// Clerk : https://www.clerk.dev +// Submitted by Colin Sidoti +*.lcl.dev +*.stg.dev + +// Cloud66 : https://www.cloud66.com/ +// Submitted by Khash Sajadi +c66.me +cloud66.ws +cloud66.zone + +// CloudAccess.net : https://www.cloudaccess.net/ +// Submitted by Pawel Panek +jdevcloud.com +wpdevcloud.com +cloudaccess.host +freesite.host +cloudaccess.net + +// cloudControl : https://www.cloudcontrol.com/ +// Submitted by Tobias Wilken +cloudcontrolled.com +cloudcontrolapp.com + +// Cloudera, Inc. : https://www.cloudera.com/ +// Submitted by Philip Langdale +cloudera.site + +// Cloudflare, Inc. : https://www.cloudflare.com/ +// Submitted by Jake Riesterer +trycloudflare.com +workers.dev + +// Clovyr : https://clovyr.io +// Submitted by Patrick Nielsen +wnext.app + +// co.ca : http://registry.co.ca/ +co.ca + +// Co & Co : https://co-co.nl/ +// Submitted by Govert Versluis +*.otap.co + +// i-registry s.r.o. : http://www.i-registry.cz/ +// Submitted by Martin Semrad +co.cz + +// CDN77.com : http://www.cdn77.com +// Submitted by Jan Krpes +c.cdn77.org +cdn77-ssl.net +r.cdn77.net +rsc.cdn77.org +ssl.origin.cdn77-secure.org + +// Cloud DNS Ltd : http://www.cloudns.net +// Submitted by Aleksander Hristov +cloudns.asia +cloudns.biz +cloudns.club +cloudns.cc +cloudns.eu +cloudns.in +cloudns.info +cloudns.org +cloudns.pro +cloudns.pw +cloudns.us + +// Cloudeity Inc : https://cloudeity.com +// Submitted by Stefan Dimitrov +cloudeity.net + +// CNPY : https://cnpy.gdn +// Submitted by Angelo Gladding +cnpy.gdn + +// CoDNS B.V. +co.nl +co.no + +// Combell.com : https://www.combell.com +// Submitted by Thomas Wouters +webhosting.be +hosting-cluster.nl + +// COSIMO GmbH : http://www.cosimo.de +// Submitted by Rene Marticke +dyn.cosidns.de +dynamisches-dns.de +dnsupdater.de +internet-dns.de +l-o-g-i-n.de +dynamic-dns.info +feste-ip.net +knx-server.net +static-access.net + +// Craynic, s.r.o. : http://www.craynic.com/ +// Submitted by Ales Krajnik +realm.cz + +// Cryptonomic : https://cryptonomic.net/ +// Submitted by Andrew Cady +*.cryptonomic.net + +// Cupcake : https://cupcake.io/ +// Submitted by Jonathan Rudenberg +cupcake.is + +// cyon GmbH : https://www.cyon.ch/ +// Submitted by Dominic Luechinger +cyon.link +cyon.site + +// Daplie, Inc : https://daplie.com +// Submitted by AJ ONeal +daplie.me +localhost.daplie.me + +// Datto, Inc. : https://www.datto.com/ +// Submitted by Philipp Heckel +dattolocal.com +dattorelay.com +dattoweb.com +mydatto.com +dattolocal.net +mydatto.net + +// Dansk.net : http://www.dansk.net/ +// Submitted by Anani Voule +biz.dk +co.dk +firm.dk +reg.dk +store.dk + +// dapps.earth : https://dapps.earth/ +// Submitted by Daniil Burdakov +*.dapps.earth +*.bzz.dapps.earth + +// Debian : https://www.debian.org/ +// Submitted by Peter Palfrader / Debian Sysadmin Team +debian.net + +// deSEC : https://desec.io/ +// Submitted by Peter Thomassen +dedyn.io + +// DNShome : https://www.dnshome.de/ +// Submitted by Norbert Auler +dnshome.de + +// DotArai : https://www.dotarai.com/ +// Submitted by Atsadawat Netcharadsang +online.th +shop.th + +// DrayTek Corp. : https://www.draytek.com/ +// Submitted by Paul Fang +drayddns.com + +// DreamHost : http://www.dreamhost.com/ +// Submitted by Andrew Farmer +dreamhosters.com + +// Drobo : http://www.drobo.com/ +// Submitted by Ricardo Padilha +mydrobo.com + +// Drud Holdings, LLC. : https://www.drud.com/ +// Submitted by Kevin Bridges +drud.io +drud.us + +// DuckDNS : http://www.duckdns.org/ +// Submitted by Richard Harper +duckdns.org + +// dy.fi : http://dy.fi/ +// Submitted by Heikki Hannikainen +dy.fi +tunk.org + +// DynDNS.com : http://www.dyndns.com/services/dns/dyndns/ +dyndns-at-home.com +dyndns-at-work.com +dyndns-blog.com +dyndns-free.com +dyndns-home.com +dyndns-ip.com +dyndns-mail.com +dyndns-office.com +dyndns-pics.com +dyndns-remote.com +dyndns-server.com +dyndns-web.com +dyndns-wiki.com +dyndns-work.com +dyndns.biz +dyndns.info +dyndns.org +dyndns.tv +at-band-camp.net +ath.cx +barrel-of-knowledge.info +barrell-of-knowledge.info +better-than.tv +blogdns.com +blogdns.net +blogdns.org +blogsite.org +boldlygoingnowhere.org +broke-it.net +buyshouses.net +cechire.com +dnsalias.com +dnsalias.net +dnsalias.org +dnsdojo.com +dnsdojo.net +dnsdojo.org +does-it.net +doesntexist.com +doesntexist.org +dontexist.com +dontexist.net +dontexist.org +doomdns.com +doomdns.org +dvrdns.org +dyn-o-saur.com +dynalias.com +dynalias.net +dynalias.org +dynathome.net +dyndns.ws +endofinternet.net +endofinternet.org +endoftheinternet.org +est-a-la-maison.com +est-a-la-masion.com +est-le-patron.com +est-mon-blogueur.com +for-better.biz +for-more.biz +for-our.info +for-some.biz +for-the.biz +forgot.her.name +forgot.his.name +from-ak.com +from-al.com +from-ar.com +from-az.net +from-ca.com +from-co.net +from-ct.com +from-dc.com +from-de.com +from-fl.com +from-ga.com +from-hi.com +from-ia.com +from-id.com +from-il.com +from-in.com +from-ks.com +from-ky.com +from-la.net +from-ma.com +from-md.com +from-me.org +from-mi.com +from-mn.com +from-mo.com +from-ms.com +from-mt.com +from-nc.com +from-nd.com +from-ne.com +from-nh.com +from-nj.com +from-nm.com +from-nv.com +from-ny.net +from-oh.com +from-ok.com +from-or.com +from-pa.com +from-pr.com +from-ri.com +from-sc.com +from-sd.com +from-tn.com +from-tx.com +from-ut.com +from-va.com +from-vt.com +from-wa.com +from-wi.com +from-wv.com +from-wy.com +ftpaccess.cc +fuettertdasnetz.de +game-host.org +game-server.cc +getmyip.com +gets-it.net +go.dyndns.org +gotdns.com +gotdns.org +groks-the.info +groks-this.info +ham-radio-op.net +here-for-more.info +hobby-site.com +hobby-site.org +home.dyndns.org +homedns.org +homeftp.net +homeftp.org +homeip.net +homelinux.com +homelinux.net +homelinux.org +homeunix.com +homeunix.net +homeunix.org +iamallama.com +in-the-band.net +is-a-anarchist.com +is-a-blogger.com +is-a-bookkeeper.com +is-a-bruinsfan.org +is-a-bulls-fan.com +is-a-candidate.org +is-a-caterer.com +is-a-celticsfan.org +is-a-chef.com +is-a-chef.net +is-a-chef.org +is-a-conservative.com +is-a-cpa.com +is-a-cubicle-slave.com +is-a-democrat.com +is-a-designer.com +is-a-doctor.com +is-a-financialadvisor.com +is-a-geek.com +is-a-geek.net +is-a-geek.org +is-a-green.com +is-a-guru.com +is-a-hard-worker.com +is-a-hunter.com +is-a-knight.org +is-a-landscaper.com +is-a-lawyer.com +is-a-liberal.com +is-a-libertarian.com +is-a-linux-user.org +is-a-llama.com +is-a-musician.com +is-a-nascarfan.com +is-a-nurse.com +is-a-painter.com +is-a-patsfan.org +is-a-personaltrainer.com +is-a-photographer.com +is-a-player.com +is-a-republican.com +is-a-rockstar.com +is-a-socialist.com +is-a-soxfan.org +is-a-student.com +is-a-teacher.com +is-a-techie.com +is-a-therapist.com +is-an-accountant.com +is-an-actor.com +is-an-actress.com +is-an-anarchist.com +is-an-artist.com +is-an-engineer.com +is-an-entertainer.com +is-by.us +is-certified.com +is-found.org +is-gone.com +is-into-anime.com +is-into-cars.com +is-into-cartoons.com +is-into-games.com +is-leet.com +is-lost.org +is-not-certified.com +is-saved.org +is-slick.com +is-uberleet.com +is-very-bad.org +is-very-evil.org +is-very-good.org +is-very-nice.org +is-very-sweet.org +is-with-theband.com +isa-geek.com +isa-geek.net +isa-geek.org +isa-hockeynut.com +issmarterthanyou.com +isteingeek.de +istmein.de +kicks-ass.net +kicks-ass.org +knowsitall.info +land-4-sale.us +lebtimnetz.de +leitungsen.de +likes-pie.com +likescandy.com +merseine.nu +mine.nu +misconfused.org +mypets.ws +myphotos.cc +neat-url.com +office-on-the.net +on-the-web.tv +podzone.net +podzone.org +readmyblog.org +saves-the-whales.com +scrapper-site.net +scrapping.cc +selfip.biz +selfip.com +selfip.info +selfip.net +selfip.org +sells-for-less.com +sells-for-u.com +sells-it.net +sellsyourhome.org +servebbs.com +servebbs.net +servebbs.org +serveftp.net +serveftp.org +servegame.org +shacknet.nu +simple-url.com +space-to-rent.com +stuff-4-sale.org +stuff-4-sale.us +teaches-yoga.com +thruhere.net +traeumtgerade.de +webhop.biz +webhop.info +webhop.net +webhop.org +worse-than.tv +writesthisblog.com + +// ddnss.de : https://www.ddnss.de/ +// Submitted by Robert Niedziela +ddnss.de +dyn.ddnss.de +dyndns.ddnss.de +dyndns1.de +dyn-ip24.de +home-webserver.de +dyn.home-webserver.de +myhome-server.de +ddnss.org + +// Definima : http://www.definima.com/ +// Submitted by Maxence Bitterli +definima.net +definima.io + +// dnstrace.pro : https://dnstrace.pro/ +// Submitted by Chris Partridge +bci.dnstrace.pro + +// Dynu.com : https://www.dynu.com/ +// Submitted by Sue Ye +ddnsfree.com +ddnsgeek.com +giize.com +gleeze.com +kozow.com +loseyourip.com +ooguy.com +theworkpc.com +casacam.net +dynu.net +accesscam.org +camdvr.org +freeddns.org +mywire.org +webredirect.org +myddns.rocks +blogsite.xyz + +// dynv6 : https://dynv6.com +// Submitted by Dominik Menke +dynv6.net + +// E4YOU spol. s.r.o. : https://e4you.cz/ +// Submitted by Vladimir Dudr +e4.cz + +// Enalean SAS: https://www.enalean.com +// Submitted by Thomas Cottier +mytuleap.com + +// ECG Robotics, Inc: https://ecgrobotics.org +// Submitted by +onred.one +staging.onred.one + +// Enonic : http://enonic.com/ +// Submitted by Erik Kaareng-Sunde +enonic.io +customer.enonic.io + +// EU.org https://eu.org/ +// Submitted by Pierre Beyssac +eu.org +al.eu.org +asso.eu.org +at.eu.org +au.eu.org +be.eu.org +bg.eu.org +ca.eu.org +cd.eu.org +ch.eu.org +cn.eu.org +cy.eu.org +cz.eu.org +de.eu.org +dk.eu.org +edu.eu.org +ee.eu.org +es.eu.org +fi.eu.org +fr.eu.org +gr.eu.org +hr.eu.org +hu.eu.org +ie.eu.org +il.eu.org +in.eu.org +int.eu.org +is.eu.org +it.eu.org +jp.eu.org +kr.eu.org +lt.eu.org +lu.eu.org +lv.eu.org +mc.eu.org +me.eu.org +mk.eu.org +mt.eu.org +my.eu.org +net.eu.org +ng.eu.org +nl.eu.org +no.eu.org +nz.eu.org +paris.eu.org +pl.eu.org +pt.eu.org +q-a.eu.org +ro.eu.org +ru.eu.org +se.eu.org +si.eu.org +sk.eu.org +tr.eu.org +uk.eu.org +us.eu.org + +// Evennode : http://www.evennode.com/ +// Submitted by Michal Kralik +eu-1.evennode.com +eu-2.evennode.com +eu-3.evennode.com +eu-4.evennode.com +us-1.evennode.com +us-2.evennode.com +us-3.evennode.com +us-4.evennode.com + +// eDirect Corp. : https://hosting.url.com.tw/ +// Submitted by C.S. chang +twmail.cc +twmail.net +twmail.org +mymailer.com.tw +url.tw + +// Facebook, Inc. +// Submitted by Peter Ruibal +apps.fbsbx.com + +// FAITID : https://faitid.org/ +// Submitted by Maxim Alzoba +// https://www.flexireg.net/stat_info +ru.net +adygeya.ru +bashkiria.ru +bir.ru +cbg.ru +com.ru +dagestan.ru +grozny.ru +kalmykia.ru +kustanai.ru +marine.ru +mordovia.ru +msk.ru +mytis.ru +nalchik.ru +nov.ru +pyatigorsk.ru +spb.ru +vladikavkaz.ru +vladimir.ru +abkhazia.su +adygeya.su +aktyubinsk.su +arkhangelsk.su +armenia.su +ashgabad.su +azerbaijan.su +balashov.su +bashkiria.su +bryansk.su +bukhara.su +chimkent.su +dagestan.su +east-kazakhstan.su +exnet.su +georgia.su +grozny.su +ivanovo.su +jambyl.su +kalmykia.su +kaluga.su +karacol.su +karaganda.su +karelia.su +khakassia.su +krasnodar.su +kurgan.su +kustanai.su +lenug.su +mangyshlak.su +mordovia.su +msk.su +murmansk.su +nalchik.su +navoi.su +north-kazakhstan.su +nov.su +obninsk.su +penza.su +pokrovsk.su +sochi.su +spb.su +tashkent.su +termez.su +togliatti.su +troitsk.su +tselinograd.su +tula.su +tuva.su +vladikavkaz.su +vladimir.su +vologda.su + +// Fancy Bits, LLC : http://getchannels.com +// Submitted by Aman Gupta +channelsdvr.net + +// Fastly Inc. : http://www.fastly.com/ +// Submitted by Fastly Security +fastly-terrarium.com +fastlylb.net +map.fastlylb.net +freetls.fastly.net +map.fastly.net +a.prod.fastly.net +global.prod.fastly.net +a.ssl.fastly.net +b.ssl.fastly.net +global.ssl.fastly.net + +// FASTVPS EESTI OU : https://fastvps.ru/ +// Submitted by Likhachev Vasiliy +fastpanel.direct +fastvps-server.com + +// Featherhead : https://featherhead.xyz/ +// Submitted by Simon Menke +fhapp.xyz + +// Fedora : https://fedoraproject.org/ +// submitted by Patrick Uiterwijk +fedorainfracloud.org +fedorapeople.org +cloud.fedoraproject.org +app.os.fedoraproject.org +app.os.stg.fedoraproject.org + +// Fermax : https://fermax.com/ +// submitted by Koen Van Isterdael +mydobiss.com + +// Filegear Inc. : https://www.filegear.com +// Submitted by Jason Zhu +filegear.me +filegear-au.me +filegear-de.me +filegear-gb.me +filegear-ie.me +filegear-jp.me +filegear-sg.me + +// Firebase, Inc. +// Submitted by Chris Raynor +firebaseapp.com + +// Flynn : https://flynn.io +// Submitted by Jonathan Rudenberg +flynnhub.com +flynnhosting.net + +// Freebox : http://www.freebox.fr +// Submitted by Romain Fliedel +freebox-os.com +freeboxos.com +fbx-os.fr +fbxos.fr +freebox-os.fr +freeboxos.fr + +// freedesktop.org : https://www.freedesktop.org +// Submitted by Daniel Stone +freedesktop.org + +// Futureweb OG : http://www.futureweb.at +// Submitted by Andreas Schnederle-Wagner +*.futurecms.at +*.ex.futurecms.at +*.in.futurecms.at +futurehosting.at +futuremailing.at +*.ex.ortsinfo.at +*.kunden.ortsinfo.at +*.statics.cloud + +// GDS : https://www.gov.uk/service-manual/operations/operating-servicegovuk-subdomains +// Submitted by David Illsley +service.gov.uk + +// Gehirn Inc. : https://www.gehirn.co.jp/ +// Submitted by Kohei YOSHIDA +gehirn.ne.jp +usercontent.jp + +// Gentlent, Limited : https://www.gentlent.com +// Submitted by Tom Klein +lab.ms + +// GitHub, Inc. +// Submitted by Patrick Toomey +github.io +githubusercontent.com + +// GitLab, Inc. +// Submitted by Alex Hanselka +gitlab.io + +// Glitch, Inc : https://glitch.com +// Submitted by Mads Hartmann +glitch.me + +// GOV.UK Platform as a Service : https://www.cloud.service.gov.uk/ +// Submitted by Tom Whitwell +cloudapps.digital +london.cloudapps.digital + +// UKHomeOffice : https://www.gov.uk/government/organisations/home-office +// Submitted by Jon Shanks +homeoffice.gov.uk + +// GlobeHosting, Inc. +// Submitted by Zoltan Egresi +ro.im +shop.ro + +// GoIP DNS Services : http://www.goip.de +// Submitted by Christian Poulter +goip.de + +// Google, Inc. +// Submitted by Eduardo Vela +run.app +a.run.app +web.app +*.0emm.com +appspot.com +blogspot.ae +blogspot.al +blogspot.am +blogspot.ba +blogspot.be +blogspot.bg +blogspot.bj +blogspot.ca +blogspot.cf +blogspot.ch +blogspot.cl +blogspot.co.at +blogspot.co.id +blogspot.co.il +blogspot.co.ke +blogspot.co.nz +blogspot.co.uk +blogspot.co.za +blogspot.com +blogspot.com.ar +blogspot.com.au +blogspot.com.br +blogspot.com.by +blogspot.com.co +blogspot.com.cy +blogspot.com.ee +blogspot.com.eg +blogspot.com.es +blogspot.com.mt +blogspot.com.ng +blogspot.com.tr +blogspot.com.uy +blogspot.cv +blogspot.cz +blogspot.de +blogspot.dk +blogspot.fi +blogspot.fr +blogspot.gr +blogspot.hk +blogspot.hr +blogspot.hu +blogspot.ie +blogspot.in +blogspot.is +blogspot.it +blogspot.jp +blogspot.kr +blogspot.li +blogspot.lt +blogspot.lu +blogspot.md +blogspot.mk +blogspot.mr +blogspot.mx +blogspot.my +blogspot.nl +blogspot.no +blogspot.pe +blogspot.pt +blogspot.qa +blogspot.re +blogspot.ro +blogspot.rs +blogspot.ru +blogspot.se +blogspot.sg +blogspot.si +blogspot.sk +blogspot.sn +blogspot.td +blogspot.tw +blogspot.ug +blogspot.vn +cloudfunctions.net +cloud.goog +codespot.com +googleapis.com +googlecode.com +pagespeedmobilizer.com +publishproxy.com +withgoogle.com +withyoutube.com + +// Hakaran group: http://hakaran.cz +// Submited by Arseniy Sokolov +fin.ci +free.hr +caa.li +ua.rs +conf.se + +// Handshake : https://handshake.org +// Submitted by Mike Damm +hs.zone +hs.run + +// Hashbang : https://hashbang.sh +hashbang.sh + +// Hasura : https://hasura.io +// Submitted by Shahidh K Muhammed +hasura.app +hasura-app.io + +// Hepforge : https://www.hepforge.org +// Submitted by David Grellscheid +hepforge.org + +// Heroku : https://www.heroku.com/ +// Submitted by Tom Maher +herokuapp.com +herokussl.com + +// Hibernating Rhinos +// Submitted by Oren Eini +myravendb.com +ravendb.community +ravendb.me +development.run +ravendb.run + +// HOSTBIP REGISTRY : https://www.hostbip.com/ +// Submitted by Atanunu Igbunuroghene +bpl.biz +orx.biz +ng.city +biz.gl +ng.ink +col.ng +firm.ng +gen.ng +ltd.ng +ng.school +sch.so + +// Häkkinen.fi +// Submitted by Eero Häkkinen +häkkinen.fi + +// Ici la Lune : http://www.icilalune.com/ +// Submitted by Simon Morvan +*.moonscale.io +moonscale.net + +// iki.fi +// Submitted by Hannu Aronsson +iki.fi + +// Individual Network Berlin e.V. : https://www.in-berlin.de/ +// Submitted by Christian Seitz +dyn-berlin.de +in-berlin.de +in-brb.de +in-butter.de +in-dsl.de +in-dsl.net +in-dsl.org +in-vpn.de +in-vpn.net +in-vpn.org + +// info.at : http://www.info.at/ +biz.at +info.at + +// info.cx : http://info.cx +// Submitted by Jacob Slater +info.cx + +// Interlegis : http://www.interlegis.leg.br +// Submitted by Gabriel Ferreira +ac.leg.br +al.leg.br +am.leg.br +ap.leg.br +ba.leg.br +ce.leg.br +df.leg.br +es.leg.br +go.leg.br +ma.leg.br +mg.leg.br +ms.leg.br +mt.leg.br +pa.leg.br +pb.leg.br +pe.leg.br +pi.leg.br +pr.leg.br +rj.leg.br +rn.leg.br +ro.leg.br +rr.leg.br +rs.leg.br +sc.leg.br +se.leg.br +sp.leg.br +to.leg.br + +// intermetrics GmbH : https://pixolino.com/ +// Submitted by Wolfgang Schwarz +pixolino.com + +// IPiFony Systems, Inc. : https://www.ipifony.com/ +// Submitted by Matthew Hardeman +ipifony.net + +// IServ GmbH : https://iserv.eu +// Submitted by Kim-Alexander Brodowski +mein-iserv.de +test-iserv.de +iserv.dev + +// I-O DATA DEVICE, INC. : http://www.iodata.com/ +// Submitted by Yuji Minagawa +iobb.net + +// Jino : https://www.jino.ru +// Submitted by Sergey Ulyashin +myjino.ru +*.hosting.myjino.ru +*.landing.myjino.ru +*.spectrum.myjino.ru +*.vps.myjino.ru + +// Joyent : https://www.joyent.com/ +// Submitted by Brian Bennett +*.triton.zone +*.cns.joyent.com + +// JS.ORG : http://dns.js.org +// Submitted by Stefan Keim +js.org + +// KaasHosting : http://www.kaashosting.nl/ +// Submitted by Wouter Bakker +kaas.gg +khplay.nl + +// Keyweb AG : https://www.keyweb.de +// Submitted by Martin Dannehl +keymachine.de + +// KingHost : https://king.host +// Submitted by Felipe Keller Braz +kinghost.net +uni5.net + +// KnightPoint Systems, LLC : http://www.knightpoint.com/ +// Submitted by Roy Keene +knightpoint.systems + +// .KRD : http://nic.krd/data/krd/Registration%20Policy.pdf +co.krd +edu.krd + +// LCube - Professional hosting e.K. : https://www.lcube-webhosting.de +// Submitted by Lars Laehn +git-repos.de +lcube-server.de +svn-repos.de + +// Leadpages : https://www.leadpages.net +// Submitted by Greg Dallavalle +leadpages.co +lpages.co +lpusercontent.com + +// Lelux.fi : https://lelux.fi/ +// Submitted by Lelux Admin +lelux.site + +// Lifetime Hosting : https://Lifetime.Hosting/ +// Submitted by Mike Fillator +co.business +co.education +co.events +co.financial +co.network +co.place +co.technology + +// Lightmaker Property Manager, Inc. : https://app.lmpm.com/ +// Submitted by Greg Holland +app.lmpm.com + +// Linki Tools UG : https://linki.tools +// Submitted by Paulo Matos +linkitools.space + +// linkyard ldt: https://www.linkyard.ch/ +// Submitted by Mario Siegenthaler +linkyard.cloud +linkyard-cloud.ch + +// Linode : https://linode.com +// Submitted by +members.linode.com +nodebalancer.linode.com + +// LiquidNet Ltd : http://www.liquidnetlimited.com/ +// Submitted by Victor Velchev +we.bs + +// Log'in Line : https://www.loginline.com/ +// Submitted by Rémi Mach +loginline.app +loginline.dev +loginline.io +loginline.services +loginline.site + +// LubMAN UMCS Sp. z o.o : https://lubman.pl/ +// Submitted by Ireneusz Maliszewski +krasnik.pl +leczna.pl +lubartow.pl +lublin.pl +poniatowa.pl +swidnik.pl + +// Lug.org.uk : https://lug.org.uk +// Submitted by Jon Spriggs +uklugs.org +glug.org.uk +lug.org.uk +lugs.org.uk + +// Lukanet Ltd : https://lukanet.com +// Submitted by Anton Avramov +barsy.bg +barsy.co.uk +barsyonline.co.uk +barsycenter.com +barsyonline.com +barsy.club +barsy.de +barsy.eu +barsy.in +barsy.info +barsy.io +barsy.me +barsy.menu +barsy.mobi +barsy.net +barsy.online +barsy.org +barsy.pro +barsy.pub +barsy.shop +barsy.site +barsy.support +barsy.uk + +// Magento Commerce +// Submitted by Damien Tournoud +*.magentosite.cloud + +// May First - People Link : https://mayfirst.org/ +// Submitted by Jamie McClelland +mayfirst.info +mayfirst.org + +// Mail.Ru Group : https://hb.cldmail.ru +// Submitted by Ilya Zaretskiy +hb.cldmail.ru + +// Memset hosting : https://www.memset.com +// Submitted by Tom Whitwell +miniserver.com +memset.net + +// MetaCentrum, CESNET z.s.p.o. : https://www.metacentrum.cz/en/ +// Submitted by Zdeněk Šustr +cloud.metacentrum.cz +custom.metacentrum.cz + +// MetaCentrum, CESNET z.s.p.o. : https://www.metacentrum.cz/en/ +// Submitted by Radim Janča +flt.cloud.muni.cz +usr.cloud.muni.cz + +// Meteor Development Group : https://www.meteor.com/hosting +// Submitted by Pierre Carrier +meteorapp.com +eu.meteorapp.com + +// Michau Enterprises Limited : http://www.co.pl/ +co.pl + +// Microsoft Corporation : http://microsoft.com +// Submitted by Justin Luk +azurecontainer.io +azurewebsites.net +azure-mobile.net +cloudapp.net + +// Mozilla Corporation : https://mozilla.com +// Submitted by Ben Francis +mozilla-iot.org + +// Mozilla Foundation : https://mozilla.org/ +// Submitted by glob +bmoattachments.org + +// MSK-IX : https://www.msk-ix.ru/ +// Submitted by Khannanov Roman +net.ru +org.ru +pp.ru + +// Nabu Casa : https://www.nabucasa.com +// Submitted by Paulus Schoutsen +ui.nabu.casa + +// Names.of.London : https://names.of.london/ +// Submitted by James Stevens or +pony.club +of.fashion +on.fashion +of.football +in.london +of.london +for.men +and.mom +for.mom +for.one +for.sale +of.work +to.work + +// NCTU.ME : https://nctu.me/ +// Submitted by Tocknicsu +nctu.me + +// Netlify : https://www.netlify.com +// Submitted by Jessica Parsons +bitballoon.com +netlify.com + +// Neustar Inc. +// Submitted by Trung Tran +4u.com + +// ngrok : https://ngrok.com/ +// Submitted by Alan Shreve +ngrok.io + +// Nimbus Hosting Ltd. : https://www.nimbushosting.co.uk/ +// Submitted by Nicholas Ford +nh-serv.co.uk + +// NFSN, Inc. : https://www.NearlyFreeSpeech.NET/ +// Submitted by Jeff Wheelhouse +nfshost.com + +// Now-DNS : https://now-dns.com +// Submitted by Steve Russell +dnsking.ch +mypi.co +n4t.co +001www.com +ddnslive.com +myiphost.com +forumz.info +16-b.it +32-b.it +64-b.it +soundcast.me +tcp4.me +dnsup.net +hicam.net +now-dns.net +ownip.net +vpndns.net +dynserv.org +now-dns.org +x443.pw +now-dns.top +ntdll.top +freeddns.us +crafting.xyz +zapto.xyz + +// nsupdate.info : https://www.nsupdate.info/ +// Submitted by Thomas Waldmann +nsupdate.info +nerdpol.ovh + +// No-IP.com : https://noip.com/ +// Submitted by Deven Reza +blogsyte.com +brasilia.me +cable-modem.org +ciscofreak.com +collegefan.org +couchpotatofries.org +damnserver.com +ddns.me +ditchyourip.com +dnsfor.me +dnsiskinky.com +dvrcam.info +dynns.com +eating-organic.net +fantasyleague.cc +geekgalaxy.com +golffan.us +health-carereform.com +homesecuritymac.com +homesecuritypc.com +hopto.me +ilovecollege.info +loginto.me +mlbfan.org +mmafan.biz +myactivedirectory.com +mydissent.net +myeffect.net +mymediapc.net +mypsx.net +mysecuritycamera.com +mysecuritycamera.net +mysecuritycamera.org +net-freaks.com +nflfan.org +nhlfan.net +no-ip.ca +no-ip.co.uk +no-ip.net +noip.us +onthewifi.com +pgafan.net +point2this.com +pointto.us +privatizehealthinsurance.net +quicksytes.com +read-books.org +securitytactics.com +serveexchange.com +servehumour.com +servep2p.com +servesarcasm.com +stufftoread.com +ufcfan.org +unusualperson.com +workisboring.com +3utilities.com +bounceme.net +ddns.net +ddnsking.com +gotdns.ch +hopto.org +myftp.biz +myftp.org +myvnc.com +no-ip.biz +no-ip.info +no-ip.org +noip.me +redirectme.net +servebeer.com +serveblog.net +servecounterstrike.com +serveftp.com +servegame.com +servehalflife.com +servehttp.com +serveirc.com +serveminecraft.net +servemp3.com +servepics.com +servequake.com +sytes.net +webhop.me +zapto.org + +// NodeArt : https://nodeart.io +// Submitted by Konstantin Nosov +stage.nodeart.io + +// Nodum B.V. : https://nodum.io/ +// Submitted by Wietse Wind +nodum.co +nodum.io + +// Nucleos Inc. : https://nucleos.com +// Submitted by Piotr Zduniak +pcloud.host + +// NYC.mn : http://www.information.nyc.mn +// Submitted by Matthew Brown +nyc.mn + +// NymNom : https://nymnom.com/ +// Submitted by Dave McCormack +nom.ae +nom.af +nom.ai +nom.al +nym.by +nym.bz +nom.cl +nym.ec +nom.gd +nom.ge +nom.gl +nym.gr +nom.gt +nym.gy +nym.hk +nom.hn +nym.ie +nom.im +nom.ke +nym.kz +nym.la +nym.lc +nom.li +nym.li +nym.lt +nym.lu +nym.me +nom.mk +nym.mn +nym.mx +nom.nu +nym.nz +nym.pe +nym.pt +nom.pw +nom.qa +nym.ro +nom.rs +nom.si +nym.sk +nom.st +nym.su +nym.sx +nom.tj +nym.tw +nom.ug +nom.uy +nom.vc +nom.vg + +// Octopodal Solutions, LLC. : https://ulterius.io/ +// Submitted by Andrew Sampson +cya.gg + +// Omnibond Systems, LLC. : https://www.omnibond.com +// Submitted by Cole Estep +cloudycluster.net + +// One Fold Media : http://www.onefoldmedia.com/ +// Submitted by Eddie Jones +nid.io + +// OpenCraft GmbH : http://opencraft.com/ +// Submitted by Sven Marnach +opencraft.hosting + +// Opera Software, A.S.A. +// Submitted by Yngve Pettersen +operaunite.com + +// OutSystems +// Submitted by Duarte Santos +outsystemscloud.com + +// OwnProvider GmbH: http://www.ownprovider.com +// Submitted by Jan Moennich +ownprovider.com +own.pm + +// OX : http://www.ox.rs +// Submitted by Adam Grand +ox.rs + +// oy.lc +// Submitted by Charly Coste +oy.lc + +// Pagefog : https://pagefog.com/ +// Submitted by Derek Myers +pgfog.com + +// Pagefront : https://www.pagefronthq.com/ +// Submitted by Jason Kriss +pagefrontapp.com + +// .pl domains (grandfathered) +art.pl +gliwice.pl +krakow.pl +poznan.pl +wroc.pl +zakopane.pl + +// Pantheon Systems, Inc. : https://pantheon.io/ +// Submitted by Gary Dylina +pantheonsite.io +gotpantheon.com + +// Peplink | Pepwave : http://peplink.com/ +// Submitted by Steve Leung +mypep.link + +// Planet-Work : https://www.planet-work.com/ +// Submitted by Frédéric VANNIÈRE +on-web.fr + +// Platform.sh : https://platform.sh +// Submitted by Nikola Kotur +*.platform.sh +*.platformsh.site + +// Port53 : https://port53.io/ +// Submitted by Maximilian Schieder +dyn53.io + +// Positive Codes Technology Company : http://co.bn/faq.html +// Submitted by Zulfais +co.bn + +// prgmr.com : https://prgmr.com/ +// Submitted by Sarah Newman +xen.prgmr.com + +// priv.at : http://www.nic.priv.at/ +// Submitted by registry +priv.at + +// privacytools.io : https://www.privacytools.io/ +// Submitted by Jonah Aragon +prvcy.page + +// Protocol Labs : https://protocol.ai/ +// Submitted by Michael Burns +*.dweb.link + +// Protonet GmbH : http://protonet.io +// Submitted by Martin Meier +protonet.io + +// Publication Presse Communication SARL : https://ppcom.fr +// Submitted by Yaacov Akiba Slama +chirurgiens-dentistes-en-france.fr +byen.site + +// pubtls.org: https://www.pubtls.org +// Submitted by Kor Nielsen +pubtls.org + +// Qualifio : https://qualifio.com/ +// Submitted by Xavier De Cock +qualifioapp.com + +// Redstar Consultants : https://www.redstarconsultants.com/ +// Submitted by Jons Slemmer +instantcloud.cn + +// Russian Academy of Sciences +// Submitted by Tech Support +ras.ru + +// QA2 +// Submitted by Daniel Dent (https://www.danieldent.com/) +qa2.com + +// QNAP System Inc : https://www.qnap.com +// Submitted by Nick Chang +dev-myqnapcloud.com +alpha-myqnapcloud.com +myqnapcloud.com + +// Quip : https://quip.com +// Submitted by Patrick Linehan +*.quipelements.com + +// Qutheory LLC : http://qutheory.io +// Submitted by Jonas Schwartz +vapor.cloud +vaporcloud.io + +// Rackmaze LLC : https://www.rackmaze.com +// Submitted by Kirill Pertsev +rackmaze.com +rackmaze.net + +// Rancher Labs, Inc : https://rancher.com +// Submitted by Vincent Fiduccia +*.on-rancher.cloud +*.on-rio.io + +// Read The Docs, Inc : https://www.readthedocs.org +// Submitted by David Fischer +readthedocs.io + +// Red Hat, Inc. OpenShift : https://openshift.redhat.com/ +// Submitted by Tim Kramer +rhcloud.com + +// Render : https://render.com +// Submitted by Anurag Goel +app.render.com +onrender.com + +// Repl.it : https://repl.it +// Submitted by Mason Clayton +repl.co +repl.run + +// Resin.io : https://resin.io +// Submitted by Tim Perry +resindevice.io +devices.resinstaging.io + +// RethinkDB : https://www.rethinkdb.com/ +// Submitted by Chris Kastorff +hzc.io + +// Revitalised Limited : http://www.revitalised.co.uk +// Submitted by Jack Price +wellbeingzone.eu +ptplus.fit +wellbeingzone.co.uk + +// Rochester Institute of Technology : http://www.rit.edu/ +// Submitted by Jennifer Herting +git-pages.rit.edu + +// Sandstorm Development Group, Inc. : https://sandcats.io/ +// Submitted by Asheesh Laroia +sandcats.io + +// SBE network solutions GmbH : https://www.sbe.de/ +// Submitted by Norman Meilick +logoip.de +logoip.com + +// schokokeks.org GbR : https://schokokeks.org/ +// Submitted by Hanno Böck +schokokeks.net + +// Scry Security : http://www.scrysec.com +// Submitted by Shante Adam +scrysec.com + +// Securepoint GmbH : https://www.securepoint.de +// Submitted by Erik Anders +firewall-gateway.com +firewall-gateway.de +my-gateway.de +my-router.de +spdns.de +spdns.eu +firewall-gateway.net +my-firewall.org +myfirewall.org +spdns.org + +// Service Online LLC : http://drs.ua/ +// Submitted by Serhii Bulakh +biz.ua +co.ua +pp.ua + +// ShiftEdit : https://shiftedit.net/ +// Submitted by Adam Jimenez +shiftedit.io + +// Shopblocks : http://www.shopblocks.com/ +// Submitted by Alex Bowers +myshopblocks.com + +// Shopit : https://www.shopitcommerce.com/ +// Submitted by Craig McMahon +shopitsite.com + +// Siemens Mobility GmbH +// Submitted by Oliver Graebner +mo-siemens.io + +// SinaAppEngine : http://sae.sina.com.cn/ +// Submitted by SinaAppEngine +1kapp.com +appchizi.com +applinzi.com +sinaapp.com +vipsinaapp.com + +// Siteleaf : https://www.siteleaf.com/ +// Submitted by Skylar Challand +siteleaf.net + +// Skyhat : http://www.skyhat.io +// Submitted by Shante Adam +bounty-full.com +alpha.bounty-full.com +beta.bounty-full.com + +// Stackhero : https://www.stackhero.io +// Submitted by Adrien Gillon +stackhero-network.com + +// staticland : https://static.land +// Submitted by Seth Vincent +static.land +dev.static.land +sites.static.land + +// SourceLair PC : https://www.sourcelair.com +// Submitted by Antonis Kalipetis +apps.lair.io +*.stolos.io + +// SpaceKit : https://www.spacekit.io/ +// Submitted by Reza Akhavan +spacekit.io + +// SpeedPartner GmbH: https://www.speedpartner.de/ +// Submitted by Stefan Neufeind +customer.speedpartner.de + +// Standard Library : https://stdlib.com +// Submitted by Jacob Lee +api.stdlib.com + +// Storj Labs Inc. : https://storj.io/ +// Submitted by Philip Hutchins +storj.farm + +// Studenten Net Twente : http://www.snt.utwente.nl/ +// Submitted by Silke Hofstra +utwente.io + +// Student-Run Computing Facility : https://www.srcf.net/ +// Submitted by Edwin Balani +soc.srcf.net +user.srcf.net + +// Sub 6 Limited: http://www.sub6.com +// Submitted by Dan Miller +temp-dns.com + +// Swisscom Application Cloud: https://developer.swisscom.com +// Submitted by Matthias.Winzeler +applicationcloud.io +scapp.io + +// Symfony, SAS : https://symfony.com/ +// Submitted by Fabien Potencier +*.s5y.io +*.sensiosite.cloud + +// Syncloud : https://syncloud.org +// Submitted by Boris Rybalkin +syncloud.it + +// Synology, Inc. : https://www.synology.com/ +// Submitted by Rony Weng +diskstation.me +dscloud.biz +dscloud.me +dscloud.mobi +dsmynas.com +dsmynas.net +dsmynas.org +familyds.com +familyds.net +familyds.org +i234.me +myds.me +synology.me +vpnplus.to +direct.quickconnect.to + +// TAIFUN Software AG : http://taifun-software.de +// Submitted by Bjoern Henke +taifun-dns.de + +// TASK geographical domains (www.task.gda.pl/uslugi/dns) +gda.pl +gdansk.pl +gdynia.pl +med.pl +sopot.pl + +// Teckids e.V. : https://www.teckids.org +// Submitted by Dominik George +edugit.org + +// Telebit : https://telebit.cloud +// Submitted by AJ ONeal +telebit.app +telebit.io +*.telebit.xyz + +// The Gwiddle Foundation : https://gwiddlefoundation.org.uk +// Submitted by Joshua Bayfield +gwiddle.co.uk + +// Thingdust AG : https://thingdust.com/ +// Submitted by Adrian Imboden +thingdustdata.com +cust.dev.thingdust.io +cust.disrec.thingdust.io +cust.prod.thingdust.io +cust.testing.thingdust.io + +// Tlon.io : https://tlon.io +// Submitted by Mark Staarink +arvo.network +azimuth.network + +// TownNews.com : http://www.townnews.com +// Submitted by Dustin Ward +bloxcms.com +townnews-staging.com + +// TrafficPlex GmbH : https://www.trafficplex.de/ +// Submitted by Phillipp Röll +12hp.at +2ix.at +4lima.at +lima-city.at +12hp.ch +2ix.ch +4lima.ch +lima-city.ch +trafficplex.cloud +de.cool +12hp.de +2ix.de +4lima.de +lima-city.de +1337.pictures +clan.rip +lima-city.rocks +webspace.rocks +lima.zone + +// TransIP : https://www.transip.nl +// Submitted by Rory Breuk +*.transurl.be +*.transurl.eu +*.transurl.nl + +// TuxFamily : http://tuxfamily.org +// Submitted by TuxFamily administrators +tuxfamily.org + +// TwoDNS : https://www.twodns.de/ +// Submitted by TwoDNS-Support +dd-dns.de +diskstation.eu +diskstation.org +dray-dns.de +draydns.de +dyn-vpn.de +dynvpn.de +mein-vigor.de +my-vigor.de +my-wan.de +syno-ds.de +synology-diskstation.de +synology-ds.de + +// Uberspace : https://uberspace.de +// Submitted by Moritz Werner +uber.space +*.uberspace.de + +// UDR Limited : http://www.udr.hk.com +// Submitted by registry +hk.com +hk.org +ltd.hk +inc.hk + +// United Gameserver GmbH : https://united-gameserver.de +// Submitted by Stefan Schwarz +virtualuser.de +virtual-user.de + +// .US +// Submitted by Ed Moore +lib.de.us + +// VeryPositive SIA : http://very.lv +// Submitted by Danko Aleksejevs +2038.io + +// Viprinet Europe GmbH : http://www.viprinet.com +// Submitted by Simon Kissel +router.management + +// Virtual-Info : https://www.virtual-info.info/ +// Submitted by Adnan RIHAN +v-info.info + +// Voorloper.com: https://voorloper.com +// Submitted by Nathan van Bakel +voorloper.cloud + +// Waffle Computer Inc., Ltd. : https://docs.waffleinfo.com +// Submitted by Masayuki Note +wafflecell.com + +// WebHare bv: https://www.webhare.com/ +// Submitted by Arnold Hendriks +*.webhare.dev + +// WeDeploy by Liferay, Inc. : https://www.wedeploy.com +// Submitted by Henrique Vicente +wedeploy.io +wedeploy.me +wedeploy.sh + +// Western Digital Technologies, Inc : https://www.wdc.com +// Submitted by Jung Jin +remotewd.com + +// Wikimedia Labs : https://wikitech.wikimedia.org +// Submitted by Yuvi Panda +wmflabs.org + +// XenonCloud GbR: https://xenoncloud.net +// Submitted by Julian Uphoff +half.host + +// XnBay Technology : http://www.xnbay.com/ +// Submitted by XnBay Developer +xnbay.com +u2.xnbay.com +u2-local.xnbay.com + +// XS4ALL Internet bv : https://www.xs4all.nl/ +// Submitted by Daniel Mostertman +cistron.nl +demon.nl +xs4all.space + +// Yandex.Cloud LLC: https://cloud.yandex.com +// Submitted by Alexander Lodin +yandexcloud.net +storage.yandexcloud.net +website.yandexcloud.net + +// YesCourse Pty Ltd : https://yescourse.com +// Submitted by Atul Bhouraskar +official.academy + +// Yola : https://www.yola.com/ +// Submitted by Stefano Rivera +yolasite.com + +// Yombo : https://yombo.net +// Submitted by Mitch Schwenk +ybo.faith +yombo.me +homelink.one +ybo.party +ybo.review +ybo.science +ybo.trade + +// Yunohost : https://yunohost.org +// Submitted by Valentin Grimaud +nohost.me +noho.st + +// ZaNiC : http://www.za.net/ +// Submitted by registry +za.net +za.org + +// Zeit, Inc. : https://zeit.domains/ +// Submitted by Olli Vanhoja +now.sh + +// Zine EOOD : https://zine.bg/ +// Submitted by Martin Angelov +bss.design + +// Zitcom A/S : https://www.zitcom.dk +// Submitted by Emil Stahl +basicserver.io +virtualserver.io +site.builder.nu +enterprisecloud.nu + +// ===END PRIVATE DOMAINS=== diff --git a/bin/buildLocales.js b/bin/buildLocales.js deleted file mode 100644 index f4180b2a4..000000000 --- a/bin/buildLocales.js +++ /dev/null @@ -1,42 +0,0 @@ -const path = require('path'); -const fs = require('fs'); - -const I18N_PATH = path.join(__dirname, '..', 'assets', 'i18n'); - -const unify = (lang, files) => { - const obj = {}; - - files.forEach(file => { - const contents = fs.readFileSync(path.join(I18N_PATH, lang, file), { encoding: 'utf8' }); - const json = JSON.parse(contents); - - const mainKey = path.basename(file).split('.')[0]; - - Object.keys(json).forEach(key => { - const newKey = key.startsWith('@') - ? `@${mainKey}__${key.replace('@', '')}` - : `${mainKey}__${key}`; - obj[newKey] = json[key]; - }); - }) - - return obj; -}; - -const langs = fs.readdirSync(I18N_PATH); - -langs.forEach(lang => { - if (!fs.statSync(path.join(I18N_PATH, lang)).isDirectory()) { - return; - } - - const files = fs.readdirSync(path.join(I18N_PATH, lang)); - const langObj = unify(lang, files); - const output = JSON.stringify(langObj, null, 2); - - fs.writeFileSync(path.join(I18N_PATH, `intl_${lang}.arb`), output, { encoding: 'utf8' }); - - console.log(`Built locale ${lang}.`); -}); - -console.log('Done!'); diff --git a/bin/build_locales.dart b/bin/build_locales.dart new file mode 100644 index 000000000..a9c228ae4 --- /dev/null +++ b/bin/build_locales.dart @@ -0,0 +1,60 @@ +import 'dart:convert'; +import 'dart:io'; + +void main() { + final i18nPath = File('${Directory.current.path}/assets/i18n'); + + var langs = Directory(i18nPath.path).listSync().where( + (langDir) => langDir.statSync().type == FileSystemEntityType.directory); + + var jsonEncoder = JsonEncoder.withIndent(' '); + langs.forEach((lang) { + var files = Directory(lang.path).listSync().where( + (arbFile) => arbFile.statSync().type == FileSystemEntityType.file); + var langObj = _unify(lang, files); + var output = jsonEncoder.convert(langObj); + + File('${i18nPath.path}/intl_${_getBaseName(lang)}.arb') + .writeAsStringSync(output); + print('Built locale ${_getBaseName(lang)}.'); + }); + + print('Done!'); +} + +Map _unify( + FileSystemEntity lang, Iterable files) { + var obj = {}; + + files.forEach((file) { + var contents = File(file.path).readAsStringSync(); + Map json = jsonDecode(contents); + + var mainKey = _getBaseName(file); + + json.keys.forEach((key) { + var newKey = key.startsWith('@') + ? '@${mainKey}__${key.substring(1)}' + : '${mainKey}__$key'; + obj[newKey] = json[key]; + }); + }); + + return obj; +} + +String _getBaseName(FileSystemEntity file) { + var filename = file.path.replaceFirst(file.parent.path, ''); + + if ((Platform.isWindows && filename.startsWith(r'\')) || + filename.startsWith('/')) { + filename = filename.substring(1); + } + + var dotIndex = filename.lastIndexOf('.'); + if (dotIndex >= 0) { + return filename.substring(0, dotIndex); + } else { + return filename; + } +} diff --git a/bin/splitLocales.js b/bin/splitLocales.js deleted file mode 100644 index 48cdce4a9..000000000 --- a/bin/splitLocales.js +++ /dev/null @@ -1,42 +0,0 @@ -const path = require('path'); -const fs = require('fs'); - -const I18N_PATH = path.join(__dirname, '..', 'assets', 'i18n'); - -const contents = fs.readFileSync(path.join(I18N_PATH, 'intl_messages.arb'), { encoding: 'utf8' }); -const json = JSON.parse(contents); - -const translationStrings = {}; -const mainKeys = []; - -Object.keys(json).forEach(key => { - const mainKey = key.split('__')[0]; - const translationKey = key.split('__').splice(1).join('__'); - - if (!translationStrings[mainKey]) { - translationStrings[mainKey] = {}; - } - - translationStrings[mainKey][translationKey] = json[key]; - - if (!mainKey.startsWith('@') && !mainKeys.includes(mainKey)) { - mainKeys.push(mainKey); - } -}); - -mainKeys.forEach(mainKey => { - const output = {}; - const current = translationStrings[mainKey]; - - Object.keys(current).forEach(key => { - output[key] = current[key]; - output[`@${key}`] = translationStrings[`@${mainKey}`][key]; - }); - - const str = JSON.stringify(output, null, 2); - fs.writeFileSync(path.join(I18N_PATH, 'en', `${mainKey}.arb`), str, { encoding: 'utf8' }); - - console.log(`Generated ${mainKey}.arb!`); -}); - -console.log('Done!'); diff --git a/bin/split_locales.dart b/bin/split_locales.dart new file mode 100644 index 000000000..dde8b85c6 --- /dev/null +++ b/bin/split_locales.dart @@ -0,0 +1,44 @@ +import 'dart:convert'; +import 'dart:io'; + +void main() { + final i18nPath = File('${Directory.current.path}/assets/i18n'); + final contents = + File('${i18nPath.path}/intl_messages.arb').readAsStringSync(); + final Map json = jsonDecode(contents); + + var translationStrings = {}; + var mainKeys = []; + + json.keys.forEach((key) { + var mainKey = key.split('__')[0]; + var translationKey = key.split('__').sublist(1).join('__'); + + if (!translationStrings.containsKey(mainKey)) { + translationStrings[mainKey] = {}; + } + + translationStrings[mainKey][translationKey] = json[key]; + + if (!mainKey.startsWith('@') && !mainKeys.contains(mainKey)) { + mainKeys.add(mainKey); + } + }); + + const jsonEncoder = JsonEncoder.withIndent(' '); + mainKeys.forEach((mainKey) { + var output = {}; + var current = translationStrings[mainKey]; + + current.keys.forEach((key) { + output[key] = current[key]; + output['@$key'] = translationStrings['@$mainKey'][key]; + }); + + var str = jsonEncoder.convert(output); + File('${i18nPath.path}/en/$mainKey.arb').writeAsStringSync(str); + print('Generated $mainKey.arb.'); + }); + + print('Done!'); +} diff --git a/ios/.gitignore b/ios/.gitignore old mode 100644 new mode 100755 diff --git a/ios/Flutter/AppFrameworkInfo.plist b/ios/Flutter/AppFrameworkInfo.plist old mode 100644 new mode 100755 diff --git a/ios/Flutter/Debug.xcconfig b/ios/Flutter/Debug.xcconfig old mode 100644 new mode 100755 diff --git a/ios/Flutter/Release.xcconfig b/ios/Flutter/Release.xcconfig old mode 100644 new mode 100755 diff --git a/ios/Flutter/development.xcconfig b/ios/Flutter/development.xcconfig old mode 100644 new mode 100755 diff --git a/ios/Flutter/flutter_export_environment.sh b/ios/Flutter/flutter_export_environment.sh index 9720702d6..d2b393aa4 100755 --- a/ios/Flutter/flutter_export_environment.sh +++ b/ios/Flutter/flutter_export_environment.sh @@ -1,11 +1,10 @@ #!/bin/sh # This is a generated file; do not edit or check into version control. -export "FLUTTER_ROOT=/Users/shantanu/Documents/Openbook/devtools/flutter" -export "FLUTTER_APPLICATION_PATH=/Users/shantanu/Documents/Openbook/openbook-app" -export "FLUTTER_TARGET=/Users/shantanu/Documents/Openbook/openbook-app/lib/main.dart" +export "FLUTTER_ROOT=/Users/lifenautjoe/Documents/code/libraries/flutter" +export "FLUTTER_APPLICATION_PATH=/Users/lifenautjoe/Documents/code/okuna/okuna-app" +export "FLUTTER_TARGET=lib/main.dart" export "FLUTTER_BUILD_DIR=build" export "SYMROOT=${SOURCE_ROOT}/../build/ios" -export "FLUTTER_FRAMEWORK_DIR=/Users/shantanu/Documents/Openbook/devtools/flutter/bin/cache/artifacts/engine/ios" -export "FLUTTER_BUILD_NAME=0.0.46" -export "FLUTTER_BUILD_NUMBER=50" -export "TRACK_WIDGET_CREATION=true" +export "FLUTTER_FRAMEWORK_DIR=/Users/lifenautjoe/Documents/code/libraries/flutter/bin/cache/artifacts/engine/ios-release" +export "FLUTTER_BUILD_NAME=0.0.52" +export "FLUTTER_BUILD_NUMBER=59" diff --git a/ios/Flutter/production.xcconfig b/ios/Flutter/production.xcconfig old mode 100644 new mode 100755 diff --git a/ios/Gemfile b/ios/Gemfile old mode 100644 new mode 100755 diff --git a/ios/OneSignalNotificationServiceExtension-Bridging-Header.h b/ios/OneSignalNotificationServiceExtension-Bridging-Header.h old mode 100644 new mode 100755 diff --git a/ios/OneSignalNotificationServiceExtension/Info.plist b/ios/OneSignalNotificationServiceExtension/Info.plist old mode 100644 new mode 100755 index cdf516fc7..730f09990 --- a/ios/OneSignalNotificationServiceExtension/Info.plist +++ b/ios/OneSignalNotificationServiceExtension/Info.plist @@ -17,9 +17,9 @@ CFBundlePackageType XPC! CFBundleShortVersionString - 0.0.51 + 0.0.52 CFBundleVersion - 51 + 52 NSExtension NSExtensionPointIdentifier diff --git a/ios/OneSignalNotificationServiceExtension/NotificationService.h b/ios/OneSignalNotificationServiceExtension/NotificationService.h old mode 100644 new mode 100755 diff --git a/ios/OneSignalNotificationServiceExtension/NotificationService.m b/ios/OneSignalNotificationServiceExtension/NotificationService.m old mode 100644 new mode 100755 diff --git a/ios/OneSignalNotificationServiceExtension/OneSignalNotificationServiceExtension.entitlements b/ios/OneSignalNotificationServiceExtension/OneSignalNotificationServiceExtension.entitlements old mode 100644 new mode 100755 diff --git a/ios/Podfile b/ios/Podfile old mode 100644 new mode 100755 index afc86d6fc..a69c5aaaf --- a/ios/Podfile +++ b/ios/Podfile @@ -27,7 +27,6 @@ def parse_KV_file(file, separator='=') end target 'Runner' do - use_frameworks! # Prepare symlinks folder. We use symlinks to avoid having Podfile.lock # referring to absolute paths on developers' machines. system('rm -rf .symlinks') @@ -51,12 +50,15 @@ target 'Runner' do plugin_pods.map { |p| symlink = File.join('.symlinks', 'plugins', p[:name]) File.symlink(p[:path], symlink) - pod p[:name], :path => File.join(symlink, 'ios') + if p[:name] == 'flutter_ffmpeg' + pod p[:name]+'/full-gpl-lts', :path => File.join(symlink, 'ios') + else + pod p[:name], :path => File.join(symlink, 'ios') + end } end target 'OneSignalNotificationServiceExtension' do - use_frameworks! pod 'OneSignal', '>= 2.9.5', '< 3.0' end diff --git a/ios/Podfile.lock b/ios/Podfile.lock index 37e185b64..109fde24e 100644 --- a/ios/Podfile.lock +++ b/ios/Podfile.lock @@ -1,15 +1,21 @@ PODS: - - BSGridCollectionViewLayout (1.2.3) - - BSImagePicker (2.10.0): - - BSGridCollectionViewLayout (= 1.2.3) - - BSImageView (= 1.0.3) - - BSImageView (1.0.3) + - connectivity (0.0.1): + - Flutter + - Reachability - device_info (0.0.1): - Flutter + - file_picker (0.0.1): + - Flutter - Flutter (1.0.0) - flutter_exif_rotation (0.0.1): - Flutter - - flutter_secure_storage (3.2.0): + - flutter_ffmpeg/full-gpl-lts (0.2.7): + - Flutter + - mobile-ffmpeg-full-gpl (= 4.2.2.LTS) + - flutter_image_compress (0.0.1): + - Flutter + - Mantle + - flutter_secure_storage (3.3.1): - Flutter - FMDB (2.7.5): - FMDB/standard (= 2.7.5) @@ -23,15 +29,28 @@ PODS: - intercom_flutter (1.0.7): - Flutter - Intercom - - multi_image_picker (4.5.0): - - BSImagePicker (~> 2.10.0) - - Flutter + - libwebp (1.0.3): + - libwebp/demux (= 1.0.3) + - libwebp/mux (= 1.0.3) + - libwebp/webp (= 1.0.3) + - libwebp/demux (1.0.3): + - libwebp/webp + - libwebp/mux (1.0.3): + - libwebp/demux + - libwebp/webp (1.0.3) + - Mantle (2.1.0): + - Mantle/extobjc (= 2.1.0) + - Mantle/extobjc (2.1.0) + - mobile-ffmpeg-full-gpl (4.2.2.LTS) - OneSignal (2.10.1) - onesignal_flutter (2.0.2): - Flutter - OneSignal (= 2.10.1) - path_provider (0.0.1): - Flutter + - Reachability (3.2) + - screen (0.0.1): + - Flutter - share (0.5.2): - Flutter - shared_preferences (0.0.1): @@ -46,43 +65,63 @@ PODS: - Flutter - video_player (0.0.1): - Flutter + - VIMediaCache + - video_thumbnail (0.0.1): + - Flutter + - libwebp + - VIMediaCache (0.4) DEPENDENCIES: + - connectivity (from `.symlinks/plugins/connectivity/ios`) - device_info (from `.symlinks/plugins/device_info/ios`) + - file_picker (from `.symlinks/plugins/file_picker/ios`) - Flutter (from `.symlinks/flutter/ios-release`) - flutter_exif_rotation (from `.symlinks/plugins/flutter_exif_rotation/ios`) + - flutter_ffmpeg/full-gpl-lts (from `.symlinks/plugins/flutter_ffmpeg/ios`) + - flutter_image_compress (from `.symlinks/plugins/flutter_image_compress/ios`) - flutter_secure_storage (from `.symlinks/plugins/flutter_secure_storage/ios`) - image_cropper (from `.symlinks/plugins/image_cropper/ios`) - image_picker (from `.symlinks/plugins/image_picker/ios`) - intercom_flutter (from `.symlinks/plugins/intercom_flutter/ios`) - - multi_image_picker (from `.symlinks/plugins/multi_image_picker/ios`) - OneSignal (< 3.0, >= 2.9.5) - onesignal_flutter (from `.symlinks/plugins/onesignal_flutter/ios`) - path_provider (from `.symlinks/plugins/path_provider/ios`) + - screen (from `.symlinks/plugins/screen/ios`) - share (from `.symlinks/plugins/share/ios`) - shared_preferences (from `.symlinks/plugins/shared_preferences/ios`) - sqflite (from `.symlinks/plugins/sqflite/ios`) - uni_links (from `.symlinks/plugins/uni_links/ios`) - url_launcher (from `.symlinks/plugins/url_launcher/ios`) - video_player (from `.symlinks/plugins/video_player/ios`) + - video_thumbnail (from `.symlinks/plugins/video_thumbnail/ios`) SPEC REPOS: https://github.com/cocoapods/specs.git: - - BSGridCollectionViewLayout - - BSImagePicker - - BSImageView - FMDB - Intercom + - libwebp + - Mantle + - mobile-ffmpeg-full-gpl - OneSignal + - Reachability - TOCropViewController + - VIMediaCache EXTERNAL SOURCES: + connectivity: + :path: ".symlinks/plugins/connectivity/ios" device_info: :path: ".symlinks/plugins/device_info/ios" + file_picker: + :path: ".symlinks/plugins/file_picker/ios" Flutter: :path: ".symlinks/flutter/ios-release" flutter_exif_rotation: :path: ".symlinks/plugins/flutter_exif_rotation/ios" + flutter_ffmpeg: + :path: ".symlinks/plugins/flutter_ffmpeg/ios" + flutter_image_compress: + :path: ".symlinks/plugins/flutter_image_compress/ios" flutter_secure_storage: :path: ".symlinks/plugins/flutter_secure_storage/ios" image_cropper: @@ -91,12 +130,12 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/image_picker/ios" intercom_flutter: :path: ".symlinks/plugins/intercom_flutter/ios" - multi_image_picker: - :path: ".symlinks/plugins/multi_image_picker/ios" onesignal_flutter: :path: ".symlinks/plugins/onesignal_flutter/ios" path_provider: :path: ".symlinks/plugins/path_provider/ios" + screen: + :path: ".symlinks/plugins/screen/ios" share: :path: ".symlinks/plugins/share/ios" shared_preferences: @@ -109,32 +148,41 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/url_launcher/ios" video_player: :path: ".symlinks/plugins/video_player/ios" + video_thumbnail: + :path: ".symlinks/plugins/video_thumbnail/ios" SPEC CHECKSUMS: - BSGridCollectionViewLayout: 568273e113fbc815f868f1898ef0465aee68f955 - BSImagePicker: fa0c15b6740e8aa7a7b7f0fe38a71ad4cfa0ec4a - BSImageView: a149459433a2687157d034c78e059d30ac7f2544 + connectivity: c72716e202a1225ec4810740d5cb56b8ae3bf4cc device_info: 3ebad48f726348f69abd802f3334a8d1ed795fbd - Flutter: 58dd7d1b27887414a370fcccb9e645c08ffd7a6a + file_picker: 408623be2125b79a4539cf703be3d4b3abe5e245 + Flutter: 0e3d915762c693b495b44d77113d4970485de6ec flutter_exif_rotation: 093dd59f20679d71ce9ae186f2b86c01307b9a6a - flutter_secure_storage: 0c5779648ff644110e507909b77a57e620cbbf8b + flutter_ffmpeg: 05ee218287a2b55a13df8f7970aab1a52094083e + flutter_image_compress: f69d0e0e078ce52b4810695593bc861ee319ae7d + flutter_secure_storage: 7953c38a04c3fdbb00571bcd87d8e3b5ceb9daec FMDB: 2ce00b547f966261cd18927a3ddb07cb6f3db82a image_cropper: f25bdfbf1ef970c9a0a0f78306fb6a0aaac7229e image_picker: 16e5fec1fbc87fd3b297c53e4048521eaf17cd06 Intercom: d189cf8cc8591e7e63dbb10ee4401a70a7fdc9d6 intercom_flutter: 46ce58645b14bb02ede6d4982268d4796ee39427 - multi_image_picker: d6e8f30e690884434ad13f1417567edb21da8547 + libwebp: 057912d6d0abfb6357d8bb05c0ea470301f5d61e + Mantle: 2fa750afa478cd625a94230fbf1c13462f29395b + mobile-ffmpeg-full-gpl: efbd28ed385c931e90421f4f3a78a2349c3c76d0 OneSignal: 8fb749fa07f88006403c9b659a570fb7fb74519a onesignal_flutter: f0eab25765dd95978c19dc64a87a8a33387909fa path_provider: f96fff6166a8867510d2c25fdcc346327cc4b259 + Reachability: 33e18b67625424e47b6cde6d202dce689ad7af96 + screen: abd91ca7bf3426e1cc3646d27e9b2358d6bf07b0 share: 7d22fe8baedfe93aefd864bf0b73f29711fbb0a3 shared_preferences: 1feebfa37bb57264736e16865e7ffae7fc99b523 sqflite: ff1d9da63c06588cc8d1faf7256d741f16989d5a TOCropViewController: 00dc36c4e4a0f4a45efa91adbf22df8a4fae01d3 uni_links: d97da20c7701486ba192624d99bffaaffcfc298a url_launcher: 0067ddb8f10d36786672aa0722a21717dba3a298 - video_player: 3964090a33353060ed7f58aa6427c7b4b208ec21 + video_player: c0fe23822450df713f9ce34bddbc97ed8b55e4f5 + video_thumbnail: c4e2a3c539e247d4de13cd545344fd2d26ffafd1 + VIMediaCache: aa650f82cb114c68a343beb4e67416cf5eb2f3a2 -PODFILE CHECKSUM: d3e4257a4755deb71f0bcbcc7c1e0639177bc4ed +PODFILE CHECKSUM: 43ead701385d268ad85aa42b0bb96ad47cef7863 COCOAPODS: 1.7.5 diff --git a/ios/Runner-Bridging-Header.h b/ios/Runner-Bridging-Header.h old mode 100644 new mode 100755 diff --git a/ios/Runner.xcodeproj/project.pbxproj b/ios/Runner.xcodeproj/project.pbxproj index d9014f7e9..a250dd4e1 100644 --- a/ios/Runner.xcodeproj/project.pbxproj +++ b/ios/Runner.xcodeproj/project.pbxproj @@ -11,12 +11,14 @@ 3B3967161E833CAA004F5970 /* AppFrameworkInfo.plist in Resources */ = {isa = PBXBuildFile; fileRef = 3B3967151E833CAA004F5970 /* AppFrameworkInfo.plist */; }; 3B80C3941E831B6300D905FE /* App.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; }; 3B80C3951E831B6300D905FE /* App.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 3B80C3931E831B6300D905FE /* App.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; - 84D9CFE5F0718635252D7379 /* Pods_OneSignalNotificationServiceExtension.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE2F8A8BC5DC89A5ADEF49D1 /* Pods_OneSignalNotificationServiceExtension.framework */; }; + 57D1735EE1208D167BF5234C /* libPods-Runner.a in Frameworks */ = {isa = PBXBuildFile; fileRef = D7DF2A99130AA70B5DC39C6D /* libPods-Runner.a */; }; 89ABAE522203425900049DFB /* NotificationService.m in Sources */ = {isa = PBXBuildFile; fileRef = 89ABAE512203425900049DFB /* NotificationService.m */; }; 89ABAE562203425900049DFB /* OneSignalNotificationServiceExtension.appex in Embed App Extensions */ = {isa = PBXBuildFile; fileRef = 89ABAE4E2203425900049DFB /* OneSignalNotificationServiceExtension.appex */; settings = {ATTRIBUTES = (RemoveHeadersOnCopy, ); }; }; - 89C7784522F1E19F00ED03F2 /* BSGridCollectionViewLayout.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 89B81DB422A7F41F00B3E9E0 /* BSGridCollectionViewLayout.framework */; }; - 89C7786522F1E1BF00ED03F2 /* BSImagePicker.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 89B81DB622A7F41F00B3E9E0 /* BSImagePicker.framework */; }; - 89C7788522F1E1F300ED03F2 /* multi_image_picker.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 89B81DBC22A7F41F00B3E9E0 /* multi_image_picker.framework */; }; + 89E6848F2320235F00E0855B /* libTOCropViewController.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 898053AE22047AAF00E47AD9 /* libTOCropViewController.a */; }; + 89FE1A9E23202382007C6904 /* libimage_cropper.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 898053A022047AAF00E47AD9 /* libimage_cropper.a */; }; + 89FE1ABF232023A4007C6904 /* liblibwebp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 89E6848A2320235F00E0855B /* liblibwebp.a */; }; + 89FE1AE0232023BB007C6904 /* libvideo_thumbnail.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 89E6848E2320235F00E0855B /* libvideo_thumbnail.a */; }; + 89FE1B37232028F2007C6904 /* libflutter_ffmpeg.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 89E684882320235F00E0855B /* libflutter_ffmpeg.a */; }; 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; }; 9705A1C71CF904A300538489 /* Flutter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 9740EEBA1CF902C7004384FC /* Flutter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 978B8F6F1D3862AE00F588F7 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 7AFFD8EE1D35381100E5BB4D /* AppDelegate.m */; }; @@ -24,8 +26,8 @@ 97C146FC1CF9000F007C117D /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FA1CF9000F007C117D /* Main.storyboard */; }; 97C146FE1CF9000F007C117D /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FD1CF9000F007C117D /* Assets.xcassets */; }; 97C147011CF9000F007C117D /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 97C146FF1CF9000F007C117D /* LaunchScreen.storyboard */; }; - D9A32CBE0439E00B856D454C /* Pods_Runner.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = BEBB57E8B03FDA9D0A698867 /* Pods_Runner.framework */; }; E1F2275FABEF7145E160E79B /* ImageConverterPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = E1F22BB7CB46FD200F3653B1 /* ImageConverterPlugin.m */; }; + E86A568444B82966BB6D222B /* libPods-OneSignalNotificationServiceExtension.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 21814CF3B0391E7DC244D795 /* libPods-OneSignalNotificationServiceExtension.a */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -141,54 +143,54 @@ remoteGlobalIDString = 89ABAE4D2203425900049DFB; remoteInfo = OneSignalNotificationServiceExtension; }; - 89B81DB322A7F41F00B3E9E0 /* PBXContainerItemProxy */ = { + 89CB943622F5B45B004F2969 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 8980538D22047AAE00E47AD9 /* Pods.xcodeproj */; proxyType = 2; - remoteGlobalIDString = E17ED85F3FB0A1819C818427E1B96D7D; - remoteInfo = BSGridCollectionViewLayout; + remoteGlobalIDString = 7FACDD2ED69BB96907B509538EEA0AE0; + remoteInfo = onesignal_flutter; }; - 89B81DB522A7F41F00B3E9E0 /* PBXContainerItemProxy */ = { + 89CF474322419BFD001BC50D /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 8980538D22047AAE00E47AD9 /* Pods.xcodeproj */; proxyType = 2; - remoteGlobalIDString = F0A7A725902A8FF9A7D6AB717B2F7501; - remoteInfo = BSImagePicker; + remoteGlobalIDString = 1CE8375F5D12E4C085E8D4CF09BCD280; + remoteInfo = flutter_exif_rotation; }; - 89B81DB722A7F41F00B3E9E0 /* PBXContainerItemProxy */ = { + 89E684852320235F00E0855B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 8980538D22047AAE00E47AD9 /* Pods.xcodeproj */; proxyType = 2; - remoteGlobalIDString = 95ED3BFAFDF702EF9348BDAB4EE5507C; - remoteInfo = "BSImagePicker-BSImagePicker"; + remoteGlobalIDString = 308378B6ADC631E53C97B459FBCD7A32; + remoteInfo = file_picker; }; - 89B81DB922A7F41F00B3E9E0 /* PBXContainerItemProxy */ = { + 89E684872320235F00E0855B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 8980538D22047AAE00E47AD9 /* Pods.xcodeproj */; proxyType = 2; - remoteGlobalIDString = 03FE8D1D31B74F15F3AEC7ACEEE84D4F; - remoteInfo = BSImageView; + remoteGlobalIDString = 6C38C109921DC83F83BCDB4B2CE6FA2B; + remoteInfo = flutter_ffmpeg; }; - 89B81DBB22A7F41F00B3E9E0 /* PBXContainerItemProxy */ = { + 89E684892320235F00E0855B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 8980538D22047AAE00E47AD9 /* Pods.xcodeproj */; proxyType = 2; - remoteGlobalIDString = BFBFB5926D8AB35D39D19DC735F22517; - remoteInfo = multi_image_picker; + remoteGlobalIDString = 5E4674603A5D5B9215FFA0F8E69F8B71; + remoteInfo = libwebp; }; - 89CB943622F5B45B004F2969 /* PBXContainerItemProxy */ = { + 89E6848B2320235F00E0855B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 8980538D22047AAE00E47AD9 /* Pods.xcodeproj */; proxyType = 2; - remoteGlobalIDString = 7FACDD2ED69BB96907B509538EEA0AE0; - remoteInfo = onesignal_flutter; + remoteGlobalIDString = 850AD38670CF241970ABFC9AC1628775; + remoteInfo = screen; }; - 89CF474322419BFD001BC50D /* PBXContainerItemProxy */ = { + 89E6848D2320235F00E0855B /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; containerPortal = 8980538D22047AAE00E47AD9 /* Pods.xcodeproj */; proxyType = 2; - remoteGlobalIDString = 1CE8375F5D12E4C085E8D4CF09BCD280; - remoteInfo = flutter_exif_rotation; + remoteGlobalIDString = D5C33499E0A792AA58CBE7F332D32B85; + remoteInfo = video_thumbnail; }; 89EE3230227B56510094ACB0 /* PBXContainerItemProxy */ = { isa = PBXContainerItemProxy; @@ -204,6 +206,41 @@ remoteGlobalIDString = C9753D7E828995FC13548AB75309010D; remoteInfo = shared_preferences; }; + 89F1965E2334D0FB0072EF30 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 8980538D22047AAE00E47AD9 /* Pods.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 04C9ADE89F275E929D78DD9C4E6C2AF2; + remoteInfo = VIMediaCache; + }; + 89FE1BA42323BCA0007C6904 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 8980538D22047AAE00E47AD9 /* Pods.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 2A617D469C33D86199664B769B253D0A; + remoteInfo = flutter_image_compress; + }; + 89FE1BA62323BCA0007C6904 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 8980538D22047AAE00E47AD9 /* Pods.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 6BCD3E077861DE8917A0FFFBC6BD96CF; + remoteInfo = Mantle; + }; + 89FE1C6A23268E35007C6904 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 8980538D22047AAE00E47AD9 /* Pods.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = AB29BA624A975573A9C284F8A3D19ECE; + remoteInfo = connectivity; + }; + 89FE1C6C23268E35007C6904 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = 8980538D22047AAE00E47AD9 /* Pods.xcodeproj */; + proxyType = 2; + remoteGlobalIDString = 400FF55D0451E7A8F33A3D0D3E11C1B9; + remoteInfo = Reachability; + }; /* End PBXContainerItemProxy section */ /* Begin PBXCopyFilesBuildPhase section */ @@ -236,6 +273,7 @@ 1498D2321E8E86230040F4C2 /* GeneratedPluginRegistrant.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = GeneratedPluginRegistrant.h; sourceTree = ""; }; 1498D2331E8E89220040F4C2 /* GeneratedPluginRegistrant.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = GeneratedPluginRegistrant.m; sourceTree = ""; }; 1784943963C450A4DEF87C40 /* Pods-Runner.release-development.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release-development.xcconfig"; path = "Pods/Target Support Files/Pods-Runner/Pods-Runner.release-development.xcconfig"; sourceTree = ""; }; + 21814CF3B0391E7DC244D795 /* libPods-OneSignalNotificationServiceExtension.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-OneSignalNotificationServiceExtension.a"; sourceTree = BUILT_PRODUCTS_DIR; }; 2FFDEC4ADF6B2C2A8B3DD958 /* Pods-Runner.release-production.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.release-production.xcconfig"; path = "Pods/Target Support Files/Pods-Runner/Pods-Runner.release-production.xcconfig"; sourceTree = ""; }; 37BDAB2A2170B9A900811BA5 /* development.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = development.plist; sourceTree = ""; }; 37BDAB2B2170B9AA00811BA5 /* production.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = production.plist; sourceTree = ""; }; @@ -277,9 +315,8 @@ AAF4B8238CF43C30122544EF /* Pods-OneSignalNotificationServiceExtension.release-production.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OneSignalNotificationServiceExtension.release-production.xcconfig"; path = "Pods/Target Support Files/Pods-OneSignalNotificationServiceExtension/Pods-OneSignalNotificationServiceExtension.release-production.xcconfig"; sourceTree = ""; }; B23196F4E53E7786037AC8B5 /* Pods-OneSignalNotificationServiceExtension.release-development.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OneSignalNotificationServiceExtension.release-development.xcconfig"; path = "Pods/Target Support Files/Pods-OneSignalNotificationServiceExtension/Pods-OneSignalNotificationServiceExtension.release-development.xcconfig"; sourceTree = ""; }; B8C5EF8EAA2C535BD8CF08A4 /* Pods-Runner.debug-development.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Runner.debug-development.xcconfig"; path = "Pods/Target Support Files/Pods-Runner/Pods-Runner.debug-development.xcconfig"; sourceTree = ""; }; - BEBB57E8B03FDA9D0A698867 /* Pods_Runner.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Runner.framework; sourceTree = BUILT_PRODUCTS_DIR; }; CBD573B1F3D19BD6C5F5624A /* Pods-OneSignalNotificationServiceExtension.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OneSignalNotificationServiceExtension.release.xcconfig"; path = "Pods/Target Support Files/Pods-OneSignalNotificationServiceExtension/Pods-OneSignalNotificationServiceExtension.release.xcconfig"; sourceTree = ""; }; - CE2F8A8BC5DC89A5ADEF49D1 /* Pods_OneSignalNotificationServiceExtension.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_OneSignalNotificationServiceExtension.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + D7DF2A99130AA70B5DC39C6D /* libPods-Runner.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-Runner.a"; sourceTree = BUILT_PRODUCTS_DIR; }; E1F22626634D0BDCB0D779FE /* ImageConverterPlugin.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ImageConverterPlugin.h; sourceTree = ""; }; E1F22BB7CB46FD200F3653B1 /* ImageConverterPlugin.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ImageConverterPlugin.m; sourceTree = ""; }; E6C0DC9AEB28225FDDAABF70 /* Pods-OneSignalNotificationServiceExtension.profile.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-OneSignalNotificationServiceExtension.profile.xcconfig"; path = "Pods/Target Support Files/Pods-OneSignalNotificationServiceExtension/Pods-OneSignalNotificationServiceExtension.profile.xcconfig"; sourceTree = ""; }; @@ -292,10 +329,12 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 89C7788522F1E1F300ED03F2 /* multi_image_picker.framework in Frameworks */, - 89C7786522F1E1BF00ED03F2 /* BSImagePicker.framework in Frameworks */, - 89C7784522F1E19F00ED03F2 /* BSGridCollectionViewLayout.framework in Frameworks */, - 84D9CFE5F0718635252D7379 /* Pods_OneSignalNotificationServiceExtension.framework in Frameworks */, + 89FE1B37232028F2007C6904 /* libflutter_ffmpeg.a in Frameworks */, + 89FE1AE0232023BB007C6904 /* libvideo_thumbnail.a in Frameworks */, + 89FE1ABF232023A4007C6904 /* liblibwebp.a in Frameworks */, + 89FE1A9E23202382007C6904 /* libimage_cropper.a in Frameworks */, + 89E6848F2320235F00E0855B /* libTOCropViewController.a in Frameworks */, + E86A568444B82966BB6D222B /* libPods-OneSignalNotificationServiceExtension.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -305,7 +344,7 @@ files = ( 9705A1C61CF904A100538489 /* Flutter.framework in Frameworks */, 3B80C3941E831B6300D905FE /* App.framework in Frameworks */, - D9A32CBE0439E00B856D454C /* Pods_Runner.framework in Frameworks */, + 57D1735EE1208D167BF5234C /* libPods-Runner.a in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -344,8 +383,8 @@ 8980538622047A2300E47AD9 /* Runner */, 89805384220479C200E47AD9 /* video_player */, 898053822204791900E47AD9 /* VideoPlayerPlugin.h */, - CE2F8A8BC5DC89A5ADEF49D1 /* Pods_OneSignalNotificationServiceExtension.framework */, - BEBB57E8B03FDA9D0A698867 /* Pods_Runner.framework */, + 21814CF3B0391E7DC244D795 /* libPods-OneSignalNotificationServiceExtension.a */, + D7DF2A99130AA70B5DC39C6D /* libPods-Runner.a */, ); name = Frameworks; sourceTree = ""; @@ -360,30 +399,35 @@ 8980538E22047AAE00E47AD9 /* Products */ = { isa = PBXGroup; children = ( - 89B81DB422A7F41F00B3E9E0 /* BSGridCollectionViewLayout.framework */, - 89B81DB622A7F41F00B3E9E0 /* BSImagePicker.framework */, - 89B81DB822A7F41F00B3E9E0 /* BSImagePicker.bundle */, - 89B81DBA22A7F41F00B3E9E0 /* BSImageView.framework */, - 8925094A222F0E0900455D87 /* device_info.framework */, - 89CF474422419BFD001BC50D /* flutter_exif_rotation.framework */, - 8980539E22047AAF00E47AD9 /* flutter_secure_storage.framework */, - 8928E31E22356450001DB32A /* FMDB.framework */, - 898053A022047AAF00E47AD9 /* image_cropper.framework */, - 898053A222047AAF00E47AD9 /* image_picker.framework */, - 8902A1062236D5BF005F914D /* intercom_flutter.framework */, - 89B81DBC22A7F41F00B3E9E0 /* multi_image_picker.framework */, - 89CB943722F5B45B004F2969 /* onesignal_flutter.framework */, - 898053A622047AAF00E47AD9 /* path_provider.framework */, - 898053A822047AAF00E47AD9 /* Pods_OneSignalNotificationServiceExtension.framework */, - 898053AA22047AAF00E47AD9 /* Pods_Runner.framework */, - 89EE3231227B56510094ACB0 /* share.framework */, - 89EE3233227B56510094ACB0 /* shared_preferences.framework */, - 8928E32022356450001DB32A /* sqflite.framework */, - 898053AE22047AAF00E47AD9 /* TOCropViewController.framework */, + 89FE1C6B23268E35007C6904 /* libconnectivity.a */, + 8925094A222F0E0900455D87 /* libdevice_info.a */, + 89E684862320235F00E0855B /* libfile_picker.a */, + 89CF474422419BFD001BC50D /* libflutter_exif_rotation.a */, + 89E684882320235F00E0855B /* libflutter_ffmpeg.a */, + 89FE1BA52323BCA0007C6904 /* libflutter_image_compress.a */, + 8980539E22047AAF00E47AD9 /* libflutter_secure_storage.a */, + 8928E31E22356450001DB32A /* libFMDB.a */, + 898053A022047AAF00E47AD9 /* libimage_cropper.a */, + 898053A222047AAF00E47AD9 /* libimage_picker.a */, + 8902A1062236D5BF005F914D /* libintercom_flutter.a */, + 89E6848A2320235F00E0855B /* liblibwebp.a */, + 89FE1BA72323BCA0007C6904 /* libMantle.a */, + 89CB943722F5B45B004F2969 /* libonesignal_flutter.a */, + 898053A622047AAF00E47AD9 /* libpath_provider.a */, + 898053A822047AAF00E47AD9 /* libPods-OneSignalNotificationServiceExtension.a */, + 898053AA22047AAF00E47AD9 /* libPods-Runner.a */, + 89FE1C6D23268E35007C6904 /* libReachability.a */, + 89E6848C2320235F00E0855B /* libscreen.a */, + 89EE3231227B56510094ACB0 /* libshare.a */, + 89EE3233227B56510094ACB0 /* libshared_preferences.a */, + 8928E32022356450001DB32A /* libsqflite.a */, + 898053AE22047AAF00E47AD9 /* libTOCropViewController.a */, 898053B022047AAF00E47AD9 /* TOCropViewControllerBundle.bundle */, - 898053B222047AAF00E47AD9 /* uni_links.framework */, - 898053B422047AAF00E47AD9 /* url_launcher.framework */, - 898053B622047AAF00E47AD9 /* video_player.framework */, + 898053B222047AAF00E47AD9 /* libuni_links.a */, + 898053B422047AAF00E47AD9 /* liburl_launcher.a */, + 898053B622047AAF00E47AD9 /* libvideo_player.a */, + 89E6848E2320235F00E0855B /* libvideo_thumbnail.a */, + 89F1965F2334D0FB0072EF30 /* libVIMediaCache.a */, ); name = Products; sourceTree = ""; @@ -583,80 +627,80 @@ /* End PBXProject section */ /* Begin PBXReferenceProxy section */ - 8902A1062236D5BF005F914D /* intercom_flutter.framework */ = { + 8902A1062236D5BF005F914D /* libintercom_flutter.a */ = { isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = intercom_flutter.framework; + fileType = archive.ar; + path = libintercom_flutter.a; remoteRef = 8902A1052236D5BF005F914D /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 8925094A222F0E0900455D87 /* device_info.framework */ = { + 8925094A222F0E0900455D87 /* libdevice_info.a */ = { isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = device_info.framework; + fileType = archive.ar; + path = libdevice_info.a; remoteRef = 89250949222F0E0900455D87 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 8928E31E22356450001DB32A /* FMDB.framework */ = { + 8928E31E22356450001DB32A /* libFMDB.a */ = { isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = FMDB.framework; + fileType = archive.ar; + path = libFMDB.a; remoteRef = 8928E31D22356450001DB32A /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 8928E32022356450001DB32A /* sqflite.framework */ = { + 8928E32022356450001DB32A /* libsqflite.a */ = { isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = sqflite.framework; + fileType = archive.ar; + path = libsqflite.a; remoteRef = 8928E31F22356450001DB32A /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 8980539E22047AAF00E47AD9 /* flutter_secure_storage.framework */ = { + 8980539E22047AAF00E47AD9 /* libflutter_secure_storage.a */ = { isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = flutter_secure_storage.framework; + fileType = archive.ar; + path = libflutter_secure_storage.a; remoteRef = 8980539D22047AAF00E47AD9 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 898053A022047AAF00E47AD9 /* image_cropper.framework */ = { + 898053A022047AAF00E47AD9 /* libimage_cropper.a */ = { isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = image_cropper.framework; + fileType = archive.ar; + path = libimage_cropper.a; remoteRef = 8980539F22047AAF00E47AD9 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 898053A222047AAF00E47AD9 /* image_picker.framework */ = { + 898053A222047AAF00E47AD9 /* libimage_picker.a */ = { isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = image_picker.framework; + fileType = archive.ar; + path = libimage_picker.a; remoteRef = 898053A122047AAF00E47AD9 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 898053A622047AAF00E47AD9 /* path_provider.framework */ = { + 898053A622047AAF00E47AD9 /* libpath_provider.a */ = { isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = path_provider.framework; + fileType = archive.ar; + path = libpath_provider.a; remoteRef = 898053A522047AAF00E47AD9 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 898053A822047AAF00E47AD9 /* Pods_OneSignalNotificationServiceExtension.framework */ = { + 898053A822047AAF00E47AD9 /* libPods-OneSignalNotificationServiceExtension.a */ = { isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Pods_OneSignalNotificationServiceExtension.framework; + fileType = archive.ar; + path = "libPods-OneSignalNotificationServiceExtension.a"; remoteRef = 898053A722047AAF00E47AD9 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 898053AA22047AAF00E47AD9 /* Pods_Runner.framework */ = { + 898053AA22047AAF00E47AD9 /* libPods-Runner.a */ = { isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = Pods_Runner.framework; + fileType = archive.ar; + path = "libPods-Runner.a"; remoteRef = 898053A922047AAF00E47AD9 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 898053AE22047AAF00E47AD9 /* TOCropViewController.framework */ = { + 898053AE22047AAF00E47AD9 /* libTOCropViewController.a */ = { isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = TOCropViewController.framework; + fileType = archive.ar; + path = libTOCropViewController.a; remoteRef = 898053AD22047AAF00E47AD9 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -667,90 +711,125 @@ remoteRef = 898053AF22047AAF00E47AD9 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 898053B222047AAF00E47AD9 /* uni_links.framework */ = { + 898053B222047AAF00E47AD9 /* libuni_links.a */ = { isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = uni_links.framework; + fileType = archive.ar; + path = libuni_links.a; remoteRef = 898053B122047AAF00E47AD9 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 898053B422047AAF00E47AD9 /* url_launcher.framework */ = { + 898053B422047AAF00E47AD9 /* liburl_launcher.a */ = { isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = url_launcher.framework; + fileType = archive.ar; + path = liburl_launcher.a; remoteRef = 898053B322047AAF00E47AD9 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 898053B622047AAF00E47AD9 /* video_player.framework */ = { + 898053B622047AAF00E47AD9 /* libvideo_player.a */ = { isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = video_player.framework; + fileType = archive.ar; + path = libvideo_player.a; remoteRef = 898053B522047AAF00E47AD9 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 89B81DB422A7F41F00B3E9E0 /* BSGridCollectionViewLayout.framework */ = { + 89CB943722F5B45B004F2969 /* libonesignal_flutter.a */ = { isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = BSGridCollectionViewLayout.framework; - remoteRef = 89B81DB322A7F41F00B3E9E0 /* PBXContainerItemProxy */; + fileType = archive.ar; + path = libonesignal_flutter.a; + remoteRef = 89CB943622F5B45B004F2969 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 89B81DB622A7F41F00B3E9E0 /* BSImagePicker.framework */ = { + 89CF474422419BFD001BC50D /* libflutter_exif_rotation.a */ = { isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = BSImagePicker.framework; - remoteRef = 89B81DB522A7F41F00B3E9E0 /* PBXContainerItemProxy */; + fileType = archive.ar; + path = libflutter_exif_rotation.a; + remoteRef = 89CF474322419BFD001BC50D /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 89B81DB822A7F41F00B3E9E0 /* BSImagePicker.bundle */ = { + 89E684862320235F00E0855B /* libfile_picker.a */ = { isa = PBXReferenceProxy; - fileType = wrapper.cfbundle; - path = BSImagePicker.bundle; - remoteRef = 89B81DB722A7F41F00B3E9E0 /* PBXContainerItemProxy */; + fileType = archive.ar; + path = libfile_picker.a; + remoteRef = 89E684852320235F00E0855B /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 89B81DBA22A7F41F00B3E9E0 /* BSImageView.framework */ = { + 89E684882320235F00E0855B /* libflutter_ffmpeg.a */ = { isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = BSImageView.framework; - remoteRef = 89B81DB922A7F41F00B3E9E0 /* PBXContainerItemProxy */; + fileType = archive.ar; + path = libflutter_ffmpeg.a; + remoteRef = 89E684872320235F00E0855B /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 89B81DBC22A7F41F00B3E9E0 /* multi_image_picker.framework */ = { + 89E6848A2320235F00E0855B /* liblibwebp.a */ = { isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = multi_image_picker.framework; - remoteRef = 89B81DBB22A7F41F00B3E9E0 /* PBXContainerItemProxy */; + fileType = archive.ar; + path = liblibwebp.a; + remoteRef = 89E684892320235F00E0855B /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 89CB943722F5B45B004F2969 /* onesignal_flutter.framework */ = { + 89E6848C2320235F00E0855B /* libscreen.a */ = { isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = onesignal_flutter.framework; - remoteRef = 89CB943622F5B45B004F2969 /* PBXContainerItemProxy */; + fileType = archive.ar; + path = libscreen.a; + remoteRef = 89E6848B2320235F00E0855B /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 89CF474422419BFD001BC50D /* flutter_exif_rotation.framework */ = { + 89E6848E2320235F00E0855B /* libvideo_thumbnail.a */ = { isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = flutter_exif_rotation.framework; - remoteRef = 89CF474322419BFD001BC50D /* PBXContainerItemProxy */; + fileType = archive.ar; + path = libvideo_thumbnail.a; + remoteRef = 89E6848D2320235F00E0855B /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 89EE3231227B56510094ACB0 /* share.framework */ = { + 89EE3231227B56510094ACB0 /* libshare.a */ = { isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = share.framework; + fileType = archive.ar; + path = libshare.a; remoteRef = 89EE3230227B56510094ACB0 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; - 89EE3233227B56510094ACB0 /* shared_preferences.framework */ = { + 89EE3233227B56510094ACB0 /* libshared_preferences.a */ = { isa = PBXReferenceProxy; - fileType = wrapper.framework; - path = shared_preferences.framework; + fileType = archive.ar; + path = libshared_preferences.a; remoteRef = 89EE3232227B56510094ACB0 /* PBXContainerItemProxy */; sourceTree = BUILT_PRODUCTS_DIR; }; + 89F1965F2334D0FB0072EF30 /* libVIMediaCache.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libVIMediaCache.a; + remoteRef = 89F1965E2334D0FB0072EF30 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 89FE1BA52323BCA0007C6904 /* libflutter_image_compress.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libflutter_image_compress.a; + remoteRef = 89FE1BA42323BCA0007C6904 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 89FE1BA72323BCA0007C6904 /* libMantle.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libMantle.a; + remoteRef = 89FE1BA62323BCA0007C6904 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 89FE1C6B23268E35007C6904 /* libconnectivity.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libconnectivity.a; + remoteRef = 89FE1C6A23268E35007C6904 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; + 89FE1C6D23268E35007C6904 /* libReachability.a */ = { + isa = PBXReferenceProxy; + fileType = archive.ar; + path = libReachability.a; + remoteRef = 89FE1C6C23268E35007C6904 /* PBXContainerItemProxy */; + sourceTree = BUILT_PRODUCTS_DIR; + }; /* End PBXReferenceProxy section */ /* Begin PBXResourcesBuildPhase section */ @@ -784,11 +863,13 @@ "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-resources.sh", "${PODS_ROOT}/Intercom/Intercom/Intercom.framework/Versions/A/Resources/Intercom.bundle", "${PODS_ROOT}/Intercom/Intercom/Intercom.framework/Versions/A/Resources/IntercomTranslations.bundle", + "${PODS_CONFIGURATION_BUILD_DIR}/TOCropViewController/TOCropViewControllerBundle.bundle", ); name = "[CP] Copy Pods Resources"; outputPaths = ( "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/Intercom.bundle", "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/IntercomTranslations.bundle", + "${TARGET_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/TOCropViewControllerBundle.bundle", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -802,45 +883,11 @@ ); inputPaths = ( "${PODS_ROOT}/Target Support Files/Pods-Runner/Pods-Runner-frameworks.sh", - "${BUILT_PRODUCTS_DIR}/BSGridCollectionViewLayout/BSGridCollectionViewLayout.framework", - "${BUILT_PRODUCTS_DIR}/BSImagePicker/BSImagePicker.framework", - "${BUILT_PRODUCTS_DIR}/BSImageView/BSImageView.framework", - "${BUILT_PRODUCTS_DIR}/FMDB/FMDB.framework", "${PODS_ROOT}/../.symlinks/flutter/ios-release/Flutter.framework", - "${BUILT_PRODUCTS_DIR}/TOCropViewController/TOCropViewController.framework", - "${BUILT_PRODUCTS_DIR}/device_info/device_info.framework", - "${BUILT_PRODUCTS_DIR}/flutter_exif_rotation/flutter_exif_rotation.framework", - "${BUILT_PRODUCTS_DIR}/flutter_secure_storage/flutter_secure_storage.framework", - "${BUILT_PRODUCTS_DIR}/image_picker/image_picker.framework", - "${BUILT_PRODUCTS_DIR}/multi_image_picker/multi_image_picker.framework", - "${BUILT_PRODUCTS_DIR}/path_provider/path_provider.framework", - "${BUILT_PRODUCTS_DIR}/share/share.framework", - "${BUILT_PRODUCTS_DIR}/shared_preferences/shared_preferences.framework", - "${BUILT_PRODUCTS_DIR}/sqflite/sqflite.framework", - "${BUILT_PRODUCTS_DIR}/uni_links/uni_links.framework", - "${BUILT_PRODUCTS_DIR}/url_launcher/url_launcher.framework", - "${BUILT_PRODUCTS_DIR}/video_player/video_player.framework", ); name = "[CP] Embed Pods Frameworks"; outputPaths = ( - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/BSGridCollectionViewLayout.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/BSImagePicker.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/BSImageView.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/FMDB.framework", "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/Flutter.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/TOCropViewController.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/device_info.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_exif_rotation.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/flutter_secure_storage.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/image_picker.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/multi_image_picker.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/path_provider.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/share.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/shared_preferences.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/sqflite.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/uni_links.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/url_launcher.framework", - "${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/video_player.framework", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; @@ -1005,7 +1052,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 10.2; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -1092,7 +1139,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 10.2; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -1174,7 +1221,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 10.2; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -1261,7 +1308,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 10.2; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -1343,7 +1390,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 10.2; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; @@ -1674,7 +1721,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 10.2; MTL_ENABLE_DEBUG_INFO = YES; ONLY_ACTIVE_ARCH = YES; SDKROOT = iphoneos; @@ -1724,7 +1771,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 8.0; + IPHONEOS_DEPLOYMENT_TARGET = 10.2; MTL_ENABLE_DEBUG_INFO = NO; SDKROOT = iphoneos; TARGETED_DEVICE_FAMILY = "1,2"; diff --git a/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcodeproj/project.xcworkspace/contents.xcworkspacedata old mode 100644 new mode 100755 diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist old mode 100644 new mode 100755 diff --git a/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings old mode 100644 new mode 100755 diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme old mode 100644 new mode 100755 index e4f93ede2..6609084de --- a/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme +++ b/ios/Runner.xcodeproj/xcshareddata/xcschemes/Runner.xcscheme @@ -61,6 +61,13 @@ ReferencedContainer = "container:Runner.xcodeproj"> + + + + diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/development.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/development.xcscheme old mode 100644 new mode 100755 diff --git a/ios/Runner.xcodeproj/xcshareddata/xcschemes/production.xcscheme b/ios/Runner.xcodeproj/xcshareddata/xcschemes/production.xcscheme old mode 100644 new mode 100755 diff --git a/ios/Runner.xcworkspace/contents.xcworkspacedata b/ios/Runner.xcworkspace/contents.xcworkspacedata old mode 100644 new mode 100755 diff --git a/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/ios/Runner.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist old mode 100644 new mode 100755 diff --git a/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings b/ios/Runner.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings old mode 100644 new mode 100755 diff --git a/ios/Runner/AppDelegate.h b/ios/Runner/AppDelegate.h old mode 100644 new mode 100755 diff --git a/ios/Runner/AppDelegate.m b/ios/Runner/AppDelegate.m old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Contents.json old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-1024x1024@1x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png b/ios/Runner/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json b/ios/Runner/Assets.xcassets/LaunchImage.imageset/Contents.json old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@2x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png b/ios/Runner/Assets.xcassets/LaunchImage.imageset/LaunchImage@3x.png old mode 100644 new mode 100755 diff --git a/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md b/ios/Runner/Assets.xcassets/LaunchImage.imageset/README.md old mode 100644 new mode 100755 diff --git a/ios/Runner/Base.lproj/LaunchScreen.storyboard b/ios/Runner/Base.lproj/LaunchScreen.storyboard old mode 100644 new mode 100755 diff --git a/ios/Runner/Base.lproj/Main.storyboard b/ios/Runner/Base.lproj/Main.storyboard old mode 100644 new mode 100755 diff --git a/ios/Runner/ImageConverterPlugin.h b/ios/Runner/ImageConverterPlugin.h old mode 100644 new mode 100755 diff --git a/ios/Runner/ImageConverterPlugin.m b/ios/Runner/ImageConverterPlugin.m old mode 100644 new mode 100755 diff --git a/ios/Runner/Info.plist b/ios/Runner/Info.plist old mode 100644 new mode 100755 index 578bda10a..ab102507a --- a/ios/Runner/Info.plist +++ b/ios/Runner/Info.plist @@ -23,11 +23,11 @@ CFBundlePackageType APPL CFBundleShortVersionString - 0.0.51 + 0.0.52 CFBundleSignature ???? CFBundleVersion - 51 + 52 ITSAppUsesNonExemptEncryption LSRequiresIPhoneOS @@ -51,6 +51,7 @@ We use this permission to allow you to share photos/videos from your library. UIBackgroundModes + fetch remote-notification UILaunchStoryboardName @@ -60,6 +61,8 @@ UISupportedInterfaceOrientations UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight UISupportedInterfaceOrientations~ipad diff --git a/ios/Runner/Runner.entitlements b/ios/Runner/Runner.entitlements old mode 100644 new mode 100755 diff --git a/ios/Runner/development.plist b/ios/Runner/development.plist old mode 100644 new mode 100755 diff --git a/ios/Runner/main.m b/ios/Runner/main.m old mode 100644 new mode 100755 diff --git a/ios/Runner/production.plist b/ios/Runner/production.plist old mode 100644 new mode 100755 diff --git a/ios/fastlane/Fastfile b/ios/fastlane/Fastfile old mode 100644 new mode 100755 diff --git a/ios/fastlane/README.md b/ios/fastlane/README.md old mode 100644 new mode 100755 diff --git a/ios/fastlane/sample.Appfile b/ios/fastlane/sample.Appfile old mode 100644 new mode 100755 diff --git a/lib/delegates/es_es_localizations_delegate.dart b/lib/delegates/es_es_localizations_delegate.dart new file mode 100644 index 000000000..a70b17b6e --- /dev/null +++ b/lib/delegates/es_es_localizations_delegate.dart @@ -0,0 +1,134 @@ +import 'package:Okuna/translation/constants.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_localizations/flutter_localizations.dart'; +import 'package:intl/intl.dart' as intl; + +class MaterialLocalizationEsES extends MaterialLocalizationEs { + + const MaterialLocalizationEsES({ + String localeName = 'es-ES', + @required intl.DateFormat fullYearFormat, + @required intl.DateFormat mediumDateFormat, + @required intl.DateFormat longDateFormat, + @required intl.DateFormat yearMonthFormat, + @required intl.NumberFormat decimalFormat, + @required intl.NumberFormat twoDigitZeroPaddedFormat, + }) : super( + localeName: localeName, + fullYearFormat: fullYearFormat, + mediumDateFormat: mediumDateFormat, + longDateFormat: longDateFormat, + yearMonthFormat: yearMonthFormat, + decimalFormat: decimalFormat, + twoDigitZeroPaddedFormat: twoDigitZeroPaddedFormat, + ); +} + +class MaterialLocalizationEsESDelegate extends LocalizationsDelegate { + const MaterialLocalizationEsESDelegate(); + + @override + bool isSupported(Locale locale) { + return supportedLocales.contains(locale); + } + + @override + Future load(Locale locale) { + intl.DateFormat fullYearFormat; + intl.DateFormat mediumDateFormat; + intl.DateFormat longDateFormat; + intl.DateFormat yearMonthFormat; + intl.NumberFormat decimalFormat; + intl.NumberFormat twoDigitZeroPaddedFormat; + decimalFormat = intl.NumberFormat.decimalPattern(locale.languageCode); + twoDigitZeroPaddedFormat = intl.NumberFormat('00', locale.languageCode); + fullYearFormat = intl.DateFormat.y(locale.languageCode); + mediumDateFormat = intl.DateFormat.MMMEd(locale.languageCode); + longDateFormat = intl.DateFormat.yMMMMEEEEd(locale.languageCode); + yearMonthFormat = intl.DateFormat.yMMMM(locale.languageCode); + + return SynchronousFuture(MaterialLocalizationEsES( + fullYearFormat: fullYearFormat, + mediumDateFormat: mediumDateFormat, + longDateFormat: longDateFormat, + yearMonthFormat: yearMonthFormat, + decimalFormat: decimalFormat, + twoDigitZeroPaddedFormat: twoDigitZeroPaddedFormat + )); + } + @override + bool shouldReload(MaterialLocalizationEsESDelegate old) => false; +} + +class CupertinoLocalizationEsES extends CupertinoLocalizationEs { + + const CupertinoLocalizationEsES({ + String localeName = 'es-ES', + @required intl.DateFormat fullYearFormat, + @required intl.DateFormat dayFormat, + @required intl.DateFormat mediumDateFormat, + @required intl.DateFormat singleDigitHourFormat, + @required intl.DateFormat singleDigitMinuteFormat, + @required intl.DateFormat doubleDigitMinuteFormat, + @required intl.DateFormat singleDigitSecondFormat, + @required intl.NumberFormat decimalFormat, + }) : super( + localeName: localeName, + fullYearFormat: fullYearFormat, + dayFormat: dayFormat, + mediumDateFormat: mediumDateFormat, + singleDigitHourFormat: singleDigitHourFormat, + singleDigitMinuteFormat: singleDigitMinuteFormat, + doubleDigitMinuteFormat: doubleDigitMinuteFormat, + singleDigitSecondFormat: singleDigitSecondFormat, + decimalFormat: decimalFormat, + ); +} + + +class CupertinoLocalizationEsESDelegate extends LocalizationsDelegate { + const CupertinoLocalizationEsESDelegate(); + + @override + bool isSupported(Locale locale) { + return supportedLocales.contains(locale); + } + + @override + Future load(Locale locale) { + intl.DateFormat fullYearFormat; + intl.DateFormat dayFormat; + intl.DateFormat mediumDateFormat; + intl.DateFormat singleDigitHourFormat; + intl.DateFormat singleDigitMinuteFormat; + intl.DateFormat doubleDigitMinuteFormat; + intl.DateFormat singleDigitSecondFormat; + intl.NumberFormat decimalFormat; + + fullYearFormat = intl.DateFormat.y(locale.languageCode); + dayFormat = intl.DateFormat.d(locale.languageCode); + mediumDateFormat = intl.DateFormat.MMMEd(locale.languageCode); + singleDigitHourFormat = intl.DateFormat('HH', locale.languageCode); + singleDigitMinuteFormat = intl.DateFormat.m(locale.languageCode); + doubleDigitMinuteFormat = intl.DateFormat('mm', locale.languageCode); + singleDigitSecondFormat = intl.DateFormat.s(locale.languageCode); + decimalFormat = intl.NumberFormat.decimalPattern(locale.languageCode); + + return SynchronousFuture(CupertinoLocalizationEsES( + fullYearFormat: fullYearFormat, + dayFormat: dayFormat, + mediumDateFormat: mediumDateFormat, + singleDigitHourFormat: singleDigitHourFormat, + singleDigitMinuteFormat: singleDigitMinuteFormat, + doubleDigitMinuteFormat: doubleDigitMinuteFormat, + singleDigitSecondFormat: singleDigitSecondFormat, + decimalFormat: decimalFormat, + )); + } + + @override + bool shouldReload(CupertinoLocalizationEsESDelegate old) => false; + +} \ No newline at end of file diff --git a/lib/delegates/es_es_material_localizations_delegate.dart b/lib/delegates/es_es_material_localizations_delegate.dart deleted file mode 100644 index 28586ca57..000000000 --- a/lib/delegates/es_es_material_localizations_delegate.dart +++ /dev/null @@ -1,62 +0,0 @@ -import 'package:Okuna/translation/constants.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_localizations/flutter_localizations.dart'; -import 'package:intl/intl.dart' as intl; - -class MaterialLocalizationEsES extends MaterialLocalizationEs { - - const MaterialLocalizationEsES({ - String localeName = 'es-ES', - @required intl.DateFormat fullYearFormat, - @required intl.DateFormat mediumDateFormat, - @required intl.DateFormat longDateFormat, - @required intl.DateFormat yearMonthFormat, - @required intl.NumberFormat decimalFormat, - @required intl.NumberFormat twoDigitZeroPaddedFormat, - }) : super( - localeName: localeName, - fullYearFormat: fullYearFormat, - mediumDateFormat: mediumDateFormat, - longDateFormat: longDateFormat, - yearMonthFormat: yearMonthFormat, - decimalFormat: decimalFormat, - twoDigitZeroPaddedFormat: twoDigitZeroPaddedFormat, - ); -} - -class MaterialLocalizationEsESDelegate extends LocalizationsDelegate { - const MaterialLocalizationEsESDelegate(); - - @override - bool isSupported(Locale locale) { - return supportedLocales.contains(locale); - } - - @override - Future load(Locale locale) { - intl.DateFormat fullYearFormat; - intl.DateFormat mediumDateFormat; - intl.DateFormat longDateFormat; - intl.DateFormat yearMonthFormat; - intl.NumberFormat decimalFormat; - intl.NumberFormat twoDigitZeroPaddedFormat; - decimalFormat = intl.NumberFormat.decimalPattern(locale.languageCode); - twoDigitZeroPaddedFormat = intl.NumberFormat('00', locale.languageCode); - fullYearFormat = intl.DateFormat.y(locale.languageCode); - mediumDateFormat = intl.DateFormat.MMMEd(locale.languageCode); - longDateFormat = intl.DateFormat.yMMMMEEEEd(locale.languageCode); - yearMonthFormat = intl.DateFormat.yMMMM(locale.languageCode); - - return SynchronousFuture(MaterialLocalizationEsES( - fullYearFormat: fullYearFormat, - mediumDateFormat: mediumDateFormat, - longDateFormat: longDateFormat, - yearMonthFormat: yearMonthFormat, - decimalFormat: decimalFormat, - twoDigitZeroPaddedFormat: twoDigitZeroPaddedFormat - )); - } - @override - bool shouldReload(MaterialLocalizationEsESDelegate old) => false; -} \ No newline at end of file diff --git a/lib/delegates/pt_br_localizations_delegate.dart b/lib/delegates/pt_br_localizations_delegate.dart new file mode 100644 index 000000000..9d1bdf844 --- /dev/null +++ b/lib/delegates/pt_br_localizations_delegate.dart @@ -0,0 +1,133 @@ +import 'package:Okuna/translation/constants.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_localizations/flutter_localizations.dart'; +import 'package:intl/intl.dart' as intl; + +class MaterialLocalizationPtBR extends MaterialLocalizationPt { + + const MaterialLocalizationPtBR({ + String localeName = 'pt-BR', + @required intl.DateFormat fullYearFormat, + @required intl.DateFormat mediumDateFormat, + @required intl.DateFormat longDateFormat, + @required intl.DateFormat yearMonthFormat, + @required intl.NumberFormat decimalFormat, + @required intl.NumberFormat twoDigitZeroPaddedFormat, + }) : super( + localeName: localeName, + fullYearFormat: fullYearFormat, + mediumDateFormat: mediumDateFormat, + longDateFormat: longDateFormat, + yearMonthFormat: yearMonthFormat, + decimalFormat: decimalFormat, + twoDigitZeroPaddedFormat: twoDigitZeroPaddedFormat, + ); +} + +class MaterialLocalizationPtBRDelegate extends LocalizationsDelegate { + const MaterialLocalizationPtBRDelegate(); + + @override + bool isSupported(Locale locale) { + return supportedLocales.contains(locale); + } + + @override + Future load(Locale locale) { + intl.DateFormat fullYearFormat; + intl.DateFormat mediumDateFormat; + intl.DateFormat longDateFormat; + intl.DateFormat yearMonthFormat; + intl.NumberFormat decimalFormat; + intl.NumberFormat twoDigitZeroPaddedFormat; + decimalFormat = intl.NumberFormat.decimalPattern(locale.languageCode); + twoDigitZeroPaddedFormat = intl.NumberFormat('00', locale.languageCode); + fullYearFormat = intl.DateFormat.y(locale.languageCode); + mediumDateFormat = intl.DateFormat.MMMEd(locale.languageCode); + longDateFormat = intl.DateFormat.yMMMMEEEEd(locale.languageCode); + yearMonthFormat = intl.DateFormat.yMMMM(locale.languageCode); + + return SynchronousFuture(MaterialLocalizationPtBR( + fullYearFormat: fullYearFormat, + mediumDateFormat: mediumDateFormat, + longDateFormat: longDateFormat, + yearMonthFormat: yearMonthFormat, + decimalFormat: decimalFormat, + twoDigitZeroPaddedFormat: twoDigitZeroPaddedFormat + )); + } + @override + bool shouldReload(MaterialLocalizationPtBRDelegate old) => false; +} + +class CupertinoLocalizationPtBR extends CupertinoLocalizationPt { + + const CupertinoLocalizationPtBR({ + String localeName = 'pt-BR', + @required intl.DateFormat fullYearFormat, + @required intl.DateFormat dayFormat, + @required intl.DateFormat mediumDateFormat, + @required intl.DateFormat singleDigitHourFormat, + @required intl.DateFormat singleDigitMinuteFormat, + @required intl.DateFormat doubleDigitMinuteFormat, + @required intl.DateFormat singleDigitSecondFormat, + @required intl.NumberFormat decimalFormat, + }) : super( + localeName: localeName, + fullYearFormat: fullYearFormat, + dayFormat: dayFormat, + mediumDateFormat: mediumDateFormat, + singleDigitHourFormat: singleDigitHourFormat, + singleDigitMinuteFormat: singleDigitMinuteFormat, + doubleDigitMinuteFormat: doubleDigitMinuteFormat, + singleDigitSecondFormat: singleDigitSecondFormat, + decimalFormat: decimalFormat, + ); +} + + +class CupertinoLocalizationPtBRDelegate extends LocalizationsDelegate { + const CupertinoLocalizationPtBRDelegate(); + + @override + bool isSupported(Locale locale) { + return supportedLocales.contains(locale); + } + + @override + Future load(Locale locale) { + + intl.DateFormat fullYearFormat; + intl.DateFormat dayFormat; + intl.DateFormat mediumDateFormat; + intl.DateFormat singleDigitHourFormat; + intl.DateFormat singleDigitMinuteFormat; + intl.DateFormat doubleDigitMinuteFormat; + intl.DateFormat singleDigitSecondFormat; + intl.NumberFormat decimalFormat; + + fullYearFormat = intl.DateFormat.y(locale.languageCode); + dayFormat = intl.DateFormat.d(locale.languageCode); + mediumDateFormat = intl.DateFormat.MMMEd(locale.languageCode); + singleDigitHourFormat = intl.DateFormat('HH', locale.languageCode); + singleDigitMinuteFormat = intl.DateFormat.m(locale.languageCode); + doubleDigitMinuteFormat = intl.DateFormat('mm', locale.languageCode); + singleDigitSecondFormat = intl.DateFormat.s(locale.languageCode); + decimalFormat = intl.NumberFormat.decimalPattern(locale.languageCode); + + return SynchronousFuture(CupertinoLocalizationPtBR( + fullYearFormat: fullYearFormat, + dayFormat: dayFormat, + mediumDateFormat: mediumDateFormat, + singleDigitHourFormat: singleDigitHourFormat, + singleDigitMinuteFormat: singleDigitMinuteFormat, + doubleDigitMinuteFormat: doubleDigitMinuteFormat, + singleDigitSecondFormat: singleDigitSecondFormat, + decimalFormat: decimalFormat, + )); + } + @override + bool shouldReload(CupertinoLocalizationPtBRDelegate old) => false; +} \ No newline at end of file diff --git a/lib/delegates/pt_br_material_localizations_delegate.dart b/lib/delegates/pt_br_material_localizations_delegate.dart deleted file mode 100644 index a4923e9b1..000000000 --- a/lib/delegates/pt_br_material_localizations_delegate.dart +++ /dev/null @@ -1,62 +0,0 @@ -import 'package:Okuna/translation/constants.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_localizations/flutter_localizations.dart'; -import 'package:intl/intl.dart' as intl; - -class MaterialLocalizationPtBR extends MaterialLocalizationPt { - - const MaterialLocalizationPtBR({ - String localeName = 'pt-BR', - @required intl.DateFormat fullYearFormat, - @required intl.DateFormat mediumDateFormat, - @required intl.DateFormat longDateFormat, - @required intl.DateFormat yearMonthFormat, - @required intl.NumberFormat decimalFormat, - @required intl.NumberFormat twoDigitZeroPaddedFormat, - }) : super( - localeName: localeName, - fullYearFormat: fullYearFormat, - mediumDateFormat: mediumDateFormat, - longDateFormat: longDateFormat, - yearMonthFormat: yearMonthFormat, - decimalFormat: decimalFormat, - twoDigitZeroPaddedFormat: twoDigitZeroPaddedFormat, - ); -} - -class MaterialLocalizationPtBRDelegate extends LocalizationsDelegate { - const MaterialLocalizationPtBRDelegate(); - - @override - bool isSupported(Locale locale) { - return supportedLocales.contains(locale); - } - - @override - Future load(Locale locale) { - intl.DateFormat fullYearFormat; - intl.DateFormat mediumDateFormat; - intl.DateFormat longDateFormat; - intl.DateFormat yearMonthFormat; - intl.NumberFormat decimalFormat; - intl.NumberFormat twoDigitZeroPaddedFormat; - decimalFormat = intl.NumberFormat.decimalPattern(locale.languageCode); - twoDigitZeroPaddedFormat = intl.NumberFormat('00', locale.languageCode); - fullYearFormat = intl.DateFormat.y(locale.languageCode); - mediumDateFormat = intl.DateFormat.MMMEd(locale.languageCode); - longDateFormat = intl.DateFormat.yMMMMEEEEd(locale.languageCode); - yearMonthFormat = intl.DateFormat.yMMMM(locale.languageCode); - - return SynchronousFuture(MaterialLocalizationPtBR( - fullYearFormat: fullYearFormat, - mediumDateFormat: mediumDateFormat, - longDateFormat: longDateFormat, - yearMonthFormat: yearMonthFormat, - decimalFormat: decimalFormat, - twoDigitZeroPaddedFormat: twoDigitZeroPaddedFormat - )); - } - @override - bool shouldReload(MaterialLocalizationPtBRDelegate old) => false; -} \ No newline at end of file diff --git a/lib/delegates/sv_se_localizations_delegate.dart b/lib/delegates/sv_se_localizations_delegate.dart new file mode 100644 index 000000000..fdc0eecf7 --- /dev/null +++ b/lib/delegates/sv_se_localizations_delegate.dart @@ -0,0 +1,133 @@ +import 'package:Okuna/translation/constants.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_localizations/flutter_localizations.dart'; +import 'package:intl/intl.dart' as intl; + +class MaterialLocalizationSvSE extends MaterialLocalizationSv { + + const MaterialLocalizationSvSE({ + String localeName = 'sv-SE', + @required intl.DateFormat fullYearFormat, + @required intl.DateFormat mediumDateFormat, + @required intl.DateFormat longDateFormat, + @required intl.DateFormat yearMonthFormat, + @required intl.NumberFormat decimalFormat, + @required intl.NumberFormat twoDigitZeroPaddedFormat, + }) : super( + localeName: localeName, + fullYearFormat: fullYearFormat, + mediumDateFormat: mediumDateFormat, + longDateFormat: longDateFormat, + yearMonthFormat: yearMonthFormat, + decimalFormat: decimalFormat, + twoDigitZeroPaddedFormat: twoDigitZeroPaddedFormat, + ); +} + +class MaterialLocalizationSvSEDelegate extends LocalizationsDelegate { + const MaterialLocalizationSvSEDelegate(); + + @override + bool isSupported(Locale locale) { + return supportedLocales.contains(locale); + } + + @override + Future load(Locale locale) { + intl.DateFormat fullYearFormat; + intl.DateFormat mediumDateFormat; + intl.DateFormat longDateFormat; + intl.DateFormat yearMonthFormat; + intl.NumberFormat decimalFormat; + intl.NumberFormat twoDigitZeroPaddedFormat; + decimalFormat = intl.NumberFormat.decimalPattern(locale.languageCode); + twoDigitZeroPaddedFormat = intl.NumberFormat('00', locale.languageCode); + fullYearFormat = intl.DateFormat.y(locale.languageCode); + mediumDateFormat = intl.DateFormat.MMMEd(locale.languageCode); + longDateFormat = intl.DateFormat.yMMMMEEEEd(locale.languageCode); + yearMonthFormat = intl.DateFormat.yMMMM(locale.languageCode); + + return SynchronousFuture(MaterialLocalizationSvSE( + fullYearFormat: fullYearFormat, + mediumDateFormat: mediumDateFormat, + longDateFormat: longDateFormat, + yearMonthFormat: yearMonthFormat, + decimalFormat: decimalFormat, + twoDigitZeroPaddedFormat: twoDigitZeroPaddedFormat + )); + } + @override + bool shouldReload(MaterialLocalizationSvSEDelegate old) => false; +} + +class CupertinoLocalizationSvSE extends CupertinoLocalizationSv { + + const CupertinoLocalizationSvSE({ + String localeName = 'sv-SE', + @required intl.DateFormat fullYearFormat, + @required intl.DateFormat dayFormat, + @required intl.DateFormat mediumDateFormat, + @required intl.DateFormat singleDigitHourFormat, + @required intl.DateFormat singleDigitMinuteFormat, + @required intl.DateFormat doubleDigitMinuteFormat, + @required intl.DateFormat singleDigitSecondFormat, + @required intl.NumberFormat decimalFormat, + }) : super( + localeName: localeName, + fullYearFormat: fullYearFormat, + dayFormat: dayFormat, + mediumDateFormat: mediumDateFormat, + singleDigitHourFormat: singleDigitHourFormat, + singleDigitMinuteFormat: singleDigitMinuteFormat, + doubleDigitMinuteFormat: doubleDigitMinuteFormat, + singleDigitSecondFormat: singleDigitSecondFormat, + decimalFormat: decimalFormat, + ); +} + + +class CupertinoLocalizationSvSEDelegate extends LocalizationsDelegate { + const CupertinoLocalizationSvSEDelegate(); + + @override + bool isSupported(Locale locale) { + return supportedLocales.contains(locale); + } + + @override + Future load(Locale locale) { + + intl.DateFormat fullYearFormat; + intl.DateFormat dayFormat; + intl.DateFormat mediumDateFormat; + intl.DateFormat singleDigitHourFormat; + intl.DateFormat singleDigitMinuteFormat; + intl.DateFormat doubleDigitMinuteFormat; + intl.DateFormat singleDigitSecondFormat; + intl.NumberFormat decimalFormat; + + fullYearFormat = intl.DateFormat.y(locale.languageCode); + dayFormat = intl.DateFormat.d(locale.languageCode); + mediumDateFormat = intl.DateFormat.MMMEd(locale.languageCode); + singleDigitHourFormat = intl.DateFormat('HH', locale.languageCode); + singleDigitMinuteFormat = intl.DateFormat.m(locale.languageCode); + doubleDigitMinuteFormat = intl.DateFormat('mm', locale.languageCode); + singleDigitSecondFormat = intl.DateFormat.s(locale.languageCode); + decimalFormat = intl.NumberFormat.decimalPattern(locale.languageCode); + + return SynchronousFuture(CupertinoLocalizationSvSE( + fullYearFormat: fullYearFormat, + dayFormat: dayFormat, + mediumDateFormat: mediumDateFormat, + singleDigitHourFormat: singleDigitHourFormat, + singleDigitMinuteFormat: singleDigitMinuteFormat, + doubleDigitMinuteFormat: doubleDigitMinuteFormat, + singleDigitSecondFormat: singleDigitSecondFormat, + decimalFormat: decimalFormat, + )); + } + @override + bool shouldReload(CupertinoLocalizationSvSEDelegate old) => false; +} \ No newline at end of file diff --git a/lib/delegates/sv_se_material_localizations_delegate.dart b/lib/delegates/sv_se_material_localizations_delegate.dart deleted file mode 100644 index 479dfceac..000000000 --- a/lib/delegates/sv_se_material_localizations_delegate.dart +++ /dev/null @@ -1,62 +0,0 @@ -import 'package:Okuna/translation/constants.dart'; -import 'package:flutter/foundation.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_localizations/flutter_localizations.dart'; -import 'package:intl/intl.dart' as intl; - -class MaterialLocalizationSvSE extends MaterialLocalizationSv { - - const MaterialLocalizationSvSE({ - String localeName = 'sv-SE', - @required intl.DateFormat fullYearFormat, - @required intl.DateFormat mediumDateFormat, - @required intl.DateFormat longDateFormat, - @required intl.DateFormat yearMonthFormat, - @required intl.NumberFormat decimalFormat, - @required intl.NumberFormat twoDigitZeroPaddedFormat, - }) : super( - localeName: localeName, - fullYearFormat: fullYearFormat, - mediumDateFormat: mediumDateFormat, - longDateFormat: longDateFormat, - yearMonthFormat: yearMonthFormat, - decimalFormat: decimalFormat, - twoDigitZeroPaddedFormat: twoDigitZeroPaddedFormat, - ); -} - -class MaterialLocalizationSvSEDelegate extends LocalizationsDelegate { - const MaterialLocalizationSvSEDelegate(); - - @override - bool isSupported(Locale locale) { - return supportedLocales.contains(locale); - } - - @override - Future load(Locale locale) { - intl.DateFormat fullYearFormat; - intl.DateFormat mediumDateFormat; - intl.DateFormat longDateFormat; - intl.DateFormat yearMonthFormat; - intl.NumberFormat decimalFormat; - intl.NumberFormat twoDigitZeroPaddedFormat; - decimalFormat = intl.NumberFormat.decimalPattern(locale.languageCode); - twoDigitZeroPaddedFormat = intl.NumberFormat('00', locale.languageCode); - fullYearFormat = intl.DateFormat.y(locale.languageCode); - mediumDateFormat = intl.DateFormat.MMMEd(locale.languageCode); - longDateFormat = intl.DateFormat.yMMMMEEEEd(locale.languageCode); - yearMonthFormat = intl.DateFormat.yMMMM(locale.languageCode); - - return SynchronousFuture(MaterialLocalizationSvSE( - fullYearFormat: fullYearFormat, - mediumDateFormat: mediumDateFormat, - longDateFormat: longDateFormat, - yearMonthFormat: yearMonthFormat, - decimalFormat: decimalFormat, - twoDigitZeroPaddedFormat: twoDigitZeroPaddedFormat - )); - } - @override - bool shouldReload(MaterialLocalizationSvSEDelegate old) => false; -} \ No newline at end of file diff --git a/lib/locale/messages_all.dart b/lib/locale/messages_all.dart index a293f364f..7e6e59081 100644 --- a/lib/locale/messages_all.dart +++ b/lib/locale/messages_all.dart @@ -2,44 +2,50 @@ // This is a library that looks up messages for specific locales by // delegating to the appropriate library. +// Ignore issues from commonly used lints in this file. +// ignore_for_file:implementation_imports, file_names, unnecessary_new +// ignore_for_file:unnecessary_brace_in_string_interps, directives_ordering +// ignore_for_file:argument_type_not_assignable, invalid_assignment +// ignore_for_file:prefer_single_quotes, prefer_generic_function_type_aliases +// ignore_for_file:comment_references + import 'dart:async'; import 'package:intl/intl.dart'; import 'package:intl/message_lookup_by_library.dart'; -// ignore: implementation_imports import 'package:intl/src/intl_helpers.dart'; +import 'messages_da.dart' as messages_da; import 'messages_de.dart' as messages_de; import 'messages_en.dart' as messages_en; import 'messages_es-ES.dart' as messages_es_es; import 'messages_fr.dart' as messages_fr; +import 'messages_hu.dart' as messages_hu; import 'messages_it.dart' as messages_it; +import 'messages_nl.dart' as messages_nl; import 'messages_pt-BR.dart' as messages_pt_br; import 'messages_sv-SE.dart' as messages_sv_se; import 'messages_tr.dart' as messages_tr; typedef Future LibraryLoader(); Map _deferredLibraries = { -// ignore: unnecessary_new + 'da': () => new Future.value(null), 'de': () => new Future.value(null), -// ignore: unnecessary_new 'en': () => new Future.value(null), -// ignore: unnecessary_new 'es_ES': () => new Future.value(null), -// ignore: unnecessary_new 'fr': () => new Future.value(null), -// ignore: unnecessary_new + 'hu': () => new Future.value(null), 'it': () => new Future.value(null), -// ignore: unnecessary_new + 'nl': () => new Future.value(null), 'pt_BR': () => new Future.value(null), -// ignore: unnecessary_new 'sv_SE': () => new Future.value(null), -// ignore: unnecessary_new 'tr': () => new Future.value(null), }; -MessageLookupByLibrary _findExact(localeName) { +MessageLookupByLibrary _findExact(String localeName) { switch (localeName) { + case 'da': + return messages_da.messages; case 'de': return messages_de.messages; case 'en': @@ -48,8 +54,12 @@ MessageLookupByLibrary _findExact(localeName) { return messages_es_es.messages; case 'fr': return messages_fr.messages; + case 'hu': + return messages_hu.messages; case 'it': return messages_it.messages; + case 'nl': + return messages_nl.messages; case 'pt_BR': return messages_pt_br.messages; case 'sv_SE': @@ -68,16 +78,12 @@ Future initializeMessages(String localeName) async { (locale) => _deferredLibraries[locale] != null, onFailure: (_) => null); if (availableLocale == null) { - // ignore: unnecessary_new return new Future.value(false); } var lib = _deferredLibraries[availableLocale]; - // ignore: unnecessary_new await (lib == null ? new Future.value(false) : lib()); - // ignore: unnecessary_new initializeInternalMessageLookup(() => new CompositeMessageLookup()); messageLookup.addLocale(availableLocale, _findGeneratedMessagesFor); - // ignore: unnecessary_new return new Future.value(true); } @@ -89,7 +95,7 @@ bool _messagesExistFor(String locale) { } } -MessageLookupByLibrary _findGeneratedMessagesFor(locale) { +MessageLookupByLibrary _findGeneratedMessagesFor(String locale) { var actualLocale = Intl.verifiedLocale(locale, _messagesExistFor, onFailure: (_) => null); if (actualLocale == null) return null; diff --git a/lib/locale/messages_da.dart b/lib/locale/messages_da.dart new file mode 100644 index 000000000..43399802a --- /dev/null +++ b/lib/locale/messages_da.dart @@ -0,0 +1,901 @@ +// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart +// This is a library that provides messages for a da locale. All the +// messages from the main program should be duplicated here with the same +// function name. + +// Ignore issues from commonly used lints in this file. +// ignore_for_file:unnecessary_brace_in_string_interps, unnecessary_new +// ignore_for_file:prefer_single_quotes,comment_references, directives_ordering +// ignore_for_file:annotate_overrides,prefer_generic_function_type_aliases +// ignore_for_file:unused_import, file_names + +import 'package:intl/intl.dart'; +import 'package:intl/message_lookup_by_library.dart'; + +final messages = new MessageLookup(); + +typedef String MessageIfAbsent(String messageStr, List args); + +class MessageLookup extends MessageLookupByLibrary { + String get localeName => 'da'; + + static m0(minLength, maxLength) => "(${minLength}-${maxLength} tegn)"; + + static m1(minLength, maxLength) => "Beskrivelse skal være imellem ${minLength} og ${maxLength} tegn."; + + static m2(minLength, maxLength) => "Navn skal være imellem ${minLength} og ${maxLength} tegn."; + + static m3(minLength, maxLength) => "Adgangskoden skal være imellem ${minLength} og ${maxLength} tegn."; + + static m4(maxLength) => "Et brugernavn kan ikke være længere end ${maxLength} tegn."; + + static m5(maxLength) => "Kaldenavne kan ikke være længere end ${maxLength} tegn."; + + static m6(username) => "Er du sikker på at du tilføje @${username} som fællesskabs administrator?"; + + static m7(username) => "Er du sikker på, at du vil blokere @${username}?"; + + static m8(maxLength) => "Beskrivelsen kan ikke være længere end ${maxLength} tegn."; + + static m9(username) => "Er du sikker på at du tilføje @${username} som fællesskabs moderator?"; + + static m10(maxLength) => "Et brugernavn kan ikke være længere end ${maxLength} tegn."; + + static m11(min) => "Du skal vælge mindst ${min} kategorier!"; + + static m12(min) => "Du skal vælge mindst ${min} kategori!"; + + static m13(max) => "Vælg op til ${max} kategorier"; + + static m14(maxLength) => "Regler kan ikke være længere end ${maxLength} tegn."; + + static m15(takenName) => "Fællesskabs navn \'${takenName}\' er i brug"; + + static m16(maxLength) => "Titlen kan ikke være længere end ${maxLength} tegn."; + + static m17(categoryName) => "Populær i ${categoryName}"; + + static m18(currentUserLanguage) => "Sprog (${currentUserLanguage})"; + + static m19(limit) => "Fil for stor (limit: ${limit} MB)"; + + static m20(resourceCount, resourceName) => "Se alle ${resourceCount} ${resourceName}"; + + static m21(postCommentText) => "[name] [username] kommenterede også: ${postCommentText}"; + + static m22(postCommentText) => "[name] [username] kommenterede på dit indlæg: ${postCommentText}"; + + static m23(postCommentText) => "[name] [username] svarede også: ${postCommentText}"; + + static m24(postCommentText) => "[name] [username] svarede: ${postCommentText}"; + + static m25(postCommentText) => "[name] [username] nævnte dig i en kommentar: ${postCommentText}"; + + static m26(communityName) => "[name] [username] indbyder dig til at blive medlem i fælleskabet /c/${communityName}."; + + static m27(maxLength) => "En kommentar kan ikke være længere end ${maxLength} tegn."; + + static m28(commentsCount) => "Se alle ${commentsCount} kommentarer"; + + static m29(circlesSearchQuery) => "Ingen cirkler indeholder \'${circlesSearchQuery}\'."; + + static m30(name) => "${name} har ikke delt noget endnu."; + + static m31(postCreatorUsername) => "@${postCreatorUsername}\'s cirkler"; + + static m32(description) => "Mislykkedes at forhåndsvise link med hjemmeside fejl: ${description}"; + + static m33(maxLength) => "Kredsnavn må ikke være længere end ${maxLength} tegn."; + + static m34(prettyUsersCount) => "${prettyUsersCount} personer"; + + static m35(username) => "Er du sikker på, at du vil blokere @${username}?"; + + static m36(userName) => "Bekræft kontakt med ${userName}"; + + static m37(userName) => "Forbind med ${userName}"; + + static m38(userName) => "Fjern forbindelse med ${userName}"; + + static m39(limit) => "Billede for stort (limit: ${limit} MB)"; + + static m40(username) => "Brugernavnet @${username} er allerede taget"; + + static m41(searchQuery) => "Intet passende emoji fundet \'${searchQuery}\'."; + + static m42(searchQuery) => "Ingen liste fundet for \'${searchQuery}\'"; + + static m43(prettyUsersCount) => "${prettyUsersCount} konti"; + + static m44(prettyUsersCount) => "${prettyUsersCount} Konti"; + + static m45(groupName) => "Se alle ${groupName}"; + + static m46(iosLink, androidLink, inviteLink) => "Hej, jeg vil gerne invitere dig til Okuna. Først skal du downloade app\'en hos iTunes (${iosLink}) eller Play store (${androidLink}). Dernæst skal du indføje denne personlige invitationslink i \'Sign up\' skemaet i Okuna app\'en: ${inviteLink}"; + + static m47(username) => "Blevet medlem med brugernavn @${username}"; + + static m48(email) => "Verserende, invitationsemail sendt til ${email}"; + + static m49(maxLength) => "Listenavn må ikke være længere end ${maxLength} tegn"; + + static m50(maxLength) => "Biografien kan ikke være længere end ${maxLength} tegn."; + + static m51(maxLength) => "Bopæl kan ikke være længere end ${maxLength} tegn."; + + static m52(takenConnectionsCircleName) => "Kredsnavn \'${takenConnectionsCircleName}\' er allerede taget"; + + static m53(listName) => "Listenavn \'${listName}\' er allerede taget"; + + static m54(searchQuery) => "Ingen overensstemmelse med \'${searchQuery}\'."; + + static m55(resourcePluralName) => "Ingen ${resourcePluralName} fundet."; + + static m56(resourcePluralName) => "Søg ${resourcePluralName} ..."; + + static m57(searchQuery) => "Ingen fællesskaber fundet for \'${searchQuery}\'."; + + static m58(searchQuery) => "Ingen resultater for \'${searchQuery}\'."; + + static m59(searchQuery) => "Ingen brugere fundet for \'${searchQuery}\'."; + + static m60(searchQuery) => "Søger efter \'${searchQuery}\'"; + + final messages = _notInlinedMessages(_notInlinedMessages); + static _notInlinedMessages(_) => { + "application_settings__comment_sort_newest_first" : MessageLookupByLibrary.simpleMessage("Nyeste først"), + "application_settings__comment_sort_oldest_first" : MessageLookupByLibrary.simpleMessage("Ældste først"), + "application_settings__link_previews" : MessageLookupByLibrary.simpleMessage("Link forhåndsvisninger"), + "application_settings__link_previews_autoplay_always" : MessageLookupByLibrary.simpleMessage("Altid"), + "application_settings__link_previews_autoplay_never" : MessageLookupByLibrary.simpleMessage("Aldrig"), + "application_settings__link_previews_autoplay_wifi_only" : MessageLookupByLibrary.simpleMessage("Kun Wi-Fi"), + "application_settings__link_previews_show" : MessageLookupByLibrary.simpleMessage("Vis"), + "application_settings__tap_to_change" : MessageLookupByLibrary.simpleMessage("(Tryk for at ændre)"), + "application_settings__videos" : MessageLookupByLibrary.simpleMessage("Videoer"), + "application_settings__videos_autoplay" : MessageLookupByLibrary.simpleMessage("Automatisk afspilning"), + "application_settings__videos_autoplay_always" : MessageLookupByLibrary.simpleMessage("Altid"), + "application_settings__videos_autoplay_never" : MessageLookupByLibrary.simpleMessage("Aldrig"), + "application_settings__videos_autoplay_wifi_only" : MessageLookupByLibrary.simpleMessage("Kun Wi-Fi"), + "application_settings__videos_sound" : MessageLookupByLibrary.simpleMessage("Lyd"), + "application_settings__videos_sound_disabled" : MessageLookupByLibrary.simpleMessage("Deaktiveret"), + "application_settings__videos_sound_enabled" : MessageLookupByLibrary.simpleMessage("Aktiveret"), + "auth__change_password_current_pwd" : MessageLookupByLibrary.simpleMessage("Nuværende adgangskode"), + "auth__change_password_current_pwd_hint" : MessageLookupByLibrary.simpleMessage("Angiv den nuværende adgangskode"), + "auth__change_password_current_pwd_incorrect" : MessageLookupByLibrary.simpleMessage("Den indtastede adgangskode er forkert"), + "auth__change_password_new_pwd" : MessageLookupByLibrary.simpleMessage("Ny adgangskode"), + "auth__change_password_new_pwd_error" : MessageLookupByLibrary.simpleMessage("Verificer venligst at adgangskoden er mellem 10 og 100 tegn lang"), + "auth__change_password_new_pwd_hint" : MessageLookupByLibrary.simpleMessage("Indtast din nye adgangskode"), + "auth__change_password_save_success" : MessageLookupByLibrary.simpleMessage("Alt vel! Din adgangskode er opdateret"), + "auth__change_password_save_text" : MessageLookupByLibrary.simpleMessage("Gem"), + "auth__change_password_title" : MessageLookupByLibrary.simpleMessage("Ændre adgangskode"), + "auth__create_acc__almost_there" : MessageLookupByLibrary.simpleMessage("Næsten færdig..."), + "auth__create_acc__are_you_legal_age" : MessageLookupByLibrary.simpleMessage("Er du ældre end 16 år?"), + "auth__create_acc__avatar_choose_camera" : MessageLookupByLibrary.simpleMessage("Tag et billede"), + "auth__create_acc__avatar_choose_gallery" : MessageLookupByLibrary.simpleMessage("Vælg et eksisterende billede"), + "auth__create_acc__avatar_remove_photo" : MessageLookupByLibrary.simpleMessage("Fjern billede"), + "auth__create_acc__avatar_tap_to_change" : MessageLookupByLibrary.simpleMessage("Tryk for at ændre"), + "auth__create_acc__can_change_username" : MessageLookupByLibrary.simpleMessage("Hvis du ønsker, kan du altid ændre det via din profil side."), + "auth__create_acc__congratulations" : MessageLookupByLibrary.simpleMessage("Tillykke!"), + "auth__create_acc__create_account" : MessageLookupByLibrary.simpleMessage("Opret konto"), + "auth__create_acc__done" : MessageLookupByLibrary.simpleMessage("Opret konto"), + "auth__create_acc__done_continue" : MessageLookupByLibrary.simpleMessage("Log ind"), + "auth__create_acc__done_created" : MessageLookupByLibrary.simpleMessage("Din konto er oprettet med brugernavn "), + "auth__create_acc__done_description" : MessageLookupByLibrary.simpleMessage("Din konto er oprettet."), + "auth__create_acc__done_subtext" : MessageLookupByLibrary.simpleMessage("Du kan ændre dette senere i profil indstillinger."), + "auth__create_acc__done_title" : MessageLookupByLibrary.simpleMessage("Hurra!"), + "auth__create_acc__email_empty_error" : MessageLookupByLibrary.simpleMessage("😱 Din email adresse kan ikke være tom"), + "auth__create_acc__email_invalid_error" : MessageLookupByLibrary.simpleMessage("😅 Angiv venligst en gyldig email adresse."), + "auth__create_acc__email_placeholder" : MessageLookupByLibrary.simpleMessage("john_travolta@mail.com"), + "auth__create_acc__email_server_error" : MessageLookupByLibrary.simpleMessage("😭 Vi har problemer med vores servere, prøv venligst igen om et par minutter."), + "auth__create_acc__email_taken_error" : MessageLookupByLibrary.simpleMessage("🤔 Der findes allerede en konto med denne email adresse."), + "auth__create_acc__lets_get_started" : MessageLookupByLibrary.simpleMessage("Lad os komme i gang"), + "auth__create_acc__link_empty_error" : MessageLookupByLibrary.simpleMessage("Link feltet må ikke være tomt."), + "auth__create_acc__link_invalid_error" : MessageLookupByLibrary.simpleMessage("Fejl i linket."), + "auth__create_acc__name_characters_error" : MessageLookupByLibrary.simpleMessage("😅 Et brugernavn kan kun indeholde alfanumeriske tegn (indtil vidre)."), + "auth__create_acc__name_empty_error" : MessageLookupByLibrary.simpleMessage("😱 Dit navn må ikke være tomt."), + "auth__create_acc__name_length_error" : MessageLookupByLibrary.simpleMessage("😱 Dit navn kan ikke være længere end 50 tegn. (Hvis det er, beklager vi meget.)"), + "auth__create_acc__name_placeholder" : MessageLookupByLibrary.simpleMessage("James Bond"), + "auth__create_acc__next" : MessageLookupByLibrary.simpleMessage("Næste"), + "auth__create_acc__one_last_thing" : MessageLookupByLibrary.simpleMessage("En sidste ting..."), + "auth__create_acc__password_empty_error" : MessageLookupByLibrary.simpleMessage("😱 Din adgangskode må ikke være tom"), + "auth__create_acc__password_length_error" : MessageLookupByLibrary.simpleMessage("😅 Adgangskoden skal være imellem 8 og 64 tegn."), + "auth__create_acc__paste_link" : MessageLookupByLibrary.simpleMessage("Indsæt dit registrerings link nedenfor"), + "auth__create_acc__paste_link_help_text" : MessageLookupByLibrary.simpleMessage("Benyt linket fra tilmeld Okuna knappen i din email invitation."), + "auth__create_acc__paste_password_reset_link" : MessageLookupByLibrary.simpleMessage("Indsæt dit link til nulstilling af adgangskode nedenfor"), + "auth__create_acc__previous" : MessageLookupByLibrary.simpleMessage("Tilbage"), + "auth__create_acc__register" : MessageLookupByLibrary.simpleMessage("Tilmeld"), + "auth__create_acc__request_invite" : MessageLookupByLibrary.simpleMessage("Har du ingen invitation? Anmod om en her."), + "auth__create_acc__submit_error_desc_server" : MessageLookupByLibrary.simpleMessage("😭 Vi har problemer med vores servere, prøv venligst igen om et par minutter."), + "auth__create_acc__submit_error_desc_validation" : MessageLookupByLibrary.simpleMessage("😅 Det ser ud til at nogle af informationerne ikke var korrekte, kontroller venligst og prøv igen."), + "auth__create_acc__submit_error_title" : MessageLookupByLibrary.simpleMessage("Åh nej..."), + "auth__create_acc__submit_loading_desc" : MessageLookupByLibrary.simpleMessage("Vi opretter din konto."), + "auth__create_acc__submit_loading_title" : MessageLookupByLibrary.simpleMessage("Hav tålmodighed!"), + "auth__create_acc__subscribe" : MessageLookupByLibrary.simpleMessage("Bestil"), + "auth__create_acc__subscribe_to_waitlist_text" : MessageLookupByLibrary.simpleMessage("Anmod om en invitation!"), + "auth__create_acc__username_characters_error" : MessageLookupByLibrary.simpleMessage("😅 Et brugernavn kan kun indeholde alfanumeriske tegn og understreg."), + "auth__create_acc__username_empty_error" : MessageLookupByLibrary.simpleMessage("😱 Brugernavnet må ikke være tomt."), + "auth__create_acc__username_length_error" : MessageLookupByLibrary.simpleMessage("😅 Et brugernavn kan ikke være længere end 30 tegn."), + "auth__create_acc__username_placeholder" : MessageLookupByLibrary.simpleMessage("pablopicasso"), + "auth__create_acc__username_server_error" : MessageLookupByLibrary.simpleMessage("😭 Vi har problemer med vores servere, prøv venligst igen om et par minutter."), + "auth__create_acc__username_taken_error" : MessageLookupByLibrary.simpleMessage("😩 Brugernavnet @%s er allerede benyttet."), + "auth__create_acc__welcome_to_beta" : MessageLookupByLibrary.simpleMessage("Velkommen til beta!"), + "auth__create_acc__what_avatar" : MessageLookupByLibrary.simpleMessage("Tilføj et profilbillede"), + "auth__create_acc__what_email" : MessageLookupByLibrary.simpleMessage("Hvad er din email?"), + "auth__create_acc__what_name" : MessageLookupByLibrary.simpleMessage("Hvad er dit navn?"), + "auth__create_acc__what_password" : MessageLookupByLibrary.simpleMessage("Vælg en adgangskode"), + "auth__create_acc__what_password_subtext" : MessageLookupByLibrary.simpleMessage("(min 10 tegn.)"), + "auth__create_acc__what_username" : MessageLookupByLibrary.simpleMessage("Vælg et brugernavn"), + "auth__create_acc__your_subscribed" : MessageLookupByLibrary.simpleMessage("Du er nr. {0} på ventelisten."), + "auth__create_acc__your_username_is" : MessageLookupByLibrary.simpleMessage("Dit brugernavn er "), + "auth__create_acc_password_hint_text" : m0, + "auth__create_account" : MessageLookupByLibrary.simpleMessage("Tilmeld dig"), + "auth__description_empty_error" : MessageLookupByLibrary.simpleMessage("Beskrivelse må ikke være tom."), + "auth__description_range_error" : m1, + "auth__email_empty_error" : MessageLookupByLibrary.simpleMessage("Email adresse kan ikke være tom."), + "auth__email_invalid_error" : MessageLookupByLibrary.simpleMessage("Angiv venligst en gyldig email adresse."), + "auth__headline" : MessageLookupByLibrary.simpleMessage("Better social."), + "auth__login" : MessageLookupByLibrary.simpleMessage("Log ind"), + "auth__login__connection_error" : MessageLookupByLibrary.simpleMessage("Vi kan ikke forbinde til vores servere. Er du forbundet med internettet?"), + "auth__login__credentials_mismatch_error" : MessageLookupByLibrary.simpleMessage("De angivne oplysninger er ikke gyldige."), + "auth__login__email_label" : MessageLookupByLibrary.simpleMessage("Email"), + "auth__login__forgot_password" : MessageLookupByLibrary.simpleMessage("Glemt adgangskode"), + "auth__login__forgot_password_subtitle" : MessageLookupByLibrary.simpleMessage("Angiv venligst dit brugernavn eller email"), + "auth__login__login" : MessageLookupByLibrary.simpleMessage("Fortsæt"), + "auth__login__or_text" : MessageLookupByLibrary.simpleMessage("Eller"), + "auth__login__password_empty_error" : MessageLookupByLibrary.simpleMessage("Adgangskode er obligatorisk."), + "auth__login__password_label" : MessageLookupByLibrary.simpleMessage("Adgangskode"), + "auth__login__password_length_error" : MessageLookupByLibrary.simpleMessage("Adgangskoden skal være imellem 8 og 64 tegn."), + "auth__login__previous" : MessageLookupByLibrary.simpleMessage("Forrige"), + "auth__login__server_error" : MessageLookupByLibrary.simpleMessage("Æh øh... Vi oplever problemer med serverne. Prøv venligst igen om nogle minutter."), + "auth__login__subtitle" : MessageLookupByLibrary.simpleMessage("Indtast dine oplysninger for at fortsætte."), + "auth__login__title" : MessageLookupByLibrary.simpleMessage("Velkommen tilbage!"), + "auth__login__username_characters_error" : MessageLookupByLibrary.simpleMessage("Et brugernavn kan kun indeholde alfanumeriske tegn og underscore."), + "auth__login__username_empty_error" : MessageLookupByLibrary.simpleMessage("Brugernavnet er obligatorisk."), + "auth__login__username_label" : MessageLookupByLibrary.simpleMessage("Brugernavn"), + "auth__login__username_length_error" : MessageLookupByLibrary.simpleMessage("Et brugernavn kan ikke være længere end 30 tegn."), + "auth__name_empty_error" : MessageLookupByLibrary.simpleMessage("Navn er obligatorisk."), + "auth__name_range_error" : m2, + "auth__password_empty_error" : MessageLookupByLibrary.simpleMessage("Adgangskoden må ikke være tom."), + "auth__password_range_error" : m3, + "auth__reset_password_success_info" : MessageLookupByLibrary.simpleMessage("Din adgangskode er blevet ændret"), + "auth__reset_password_success_title" : MessageLookupByLibrary.simpleMessage("Klar!"), + "auth__username_characters_error" : MessageLookupByLibrary.simpleMessage("Et brugernavn kan kun indeholde alfanumeriske tegn og underscore."), + "auth__username_empty_error" : MessageLookupByLibrary.simpleMessage("Brugernavn må ikke være tomt."), + "auth__username_maxlength_error" : m4, + "community__about" : MessageLookupByLibrary.simpleMessage("Om"), + "community__actions_invite_people_title" : MessageLookupByLibrary.simpleMessage("Inviter til fællesskab"), + "community__actions_manage_text" : MessageLookupByLibrary.simpleMessage("Administrere"), + "community__add_administrators_title" : MessageLookupByLibrary.simpleMessage("Tilføj administrator."), + "community__add_moderator_title" : MessageLookupByLibrary.simpleMessage("Tilføj en moderator"), + "community__adjectives_range_error" : m5, + "community__admin_add_confirmation" : m6, + "community__admin_desc" : MessageLookupByLibrary.simpleMessage("Dette vil tillade medlemmet at redigere fællesskabs detaljerne, administratorer, moderatorer og blokerede brugere."), + "community__administrated_communities" : MessageLookupByLibrary.simpleMessage("administrerede fællesskaber"), + "community__administrated_community" : MessageLookupByLibrary.simpleMessage("administreret fællesskab"), + "community__administrated_title" : MessageLookupByLibrary.simpleMessage("Administreret"), + "community__administrator_plural" : MessageLookupByLibrary.simpleMessage("administratorer"), + "community__administrator_text" : MessageLookupByLibrary.simpleMessage("administrator"), + "community__administrator_you" : MessageLookupByLibrary.simpleMessage("Dig"), + "community__administrators_title" : MessageLookupByLibrary.simpleMessage("Administratorer"), + "community__ban_confirmation" : m7, + "community__ban_desc" : MessageLookupByLibrary.simpleMessage("Dette vil fjerne brugeren fra fællesskabet og forhindre den i at blive medlem igen."), + "community__ban_user_title" : MessageLookupByLibrary.simpleMessage("Bloker bruger"), + "community__banned_user_text" : MessageLookupByLibrary.simpleMessage("blokerede brugere"), + "community__banned_users_text" : MessageLookupByLibrary.simpleMessage("blokerede brugere"), + "community__banned_users_title" : MessageLookupByLibrary.simpleMessage("Blokerede brugere"), + "community__button_rules" : MessageLookupByLibrary.simpleMessage("Regler"), + "community__button_staff" : MessageLookupByLibrary.simpleMessage("Personale"), + "community__categories" : MessageLookupByLibrary.simpleMessage("kategorier."), + "community__category" : MessageLookupByLibrary.simpleMessage("kategori."), + "community__communities" : MessageLookupByLibrary.simpleMessage("fælleskaber"), + "community__communities_all_text" : MessageLookupByLibrary.simpleMessage("Alle"), + "community__communities_no_category_found" : MessageLookupByLibrary.simpleMessage("Ingen kategorier fundet. Prøv igen om nogle minutter."), + "community__communities_refresh_text" : MessageLookupByLibrary.simpleMessage("Opdater"), + "community__communities_title" : MessageLookupByLibrary.simpleMessage("Fælleskaber"), + "community__community" : MessageLookupByLibrary.simpleMessage("fællesskab"), + "community__community_members" : MessageLookupByLibrary.simpleMessage("Fællesskabs medlemmer"), + "community__community_staff" : MessageLookupByLibrary.simpleMessage("Fællesskabs administration"), + "community__confirmation_title" : MessageLookupByLibrary.simpleMessage("Bekræftelse"), + "community__delete_confirmation" : MessageLookupByLibrary.simpleMessage("Er du sikker på at du vil slette fællesskabet?"), + "community__delete_desc" : MessageLookupByLibrary.simpleMessage("Du vil ikke længere se dens opslag i din tidslinje og kan heller ikke lave opslag til den længere."), + "community__description_range_error" : m8, + "community__favorite_action" : MessageLookupByLibrary.simpleMessage("Favorit fællesskab"), + "community__favorite_communities" : MessageLookupByLibrary.simpleMessage("favorit fællesskaber"), + "community__favorite_community" : MessageLookupByLibrary.simpleMessage("favorit fællesskab"), + "community__favorites_title" : MessageLookupByLibrary.simpleMessage("Favoritter"), + "community__invite_to_community_resource_plural" : MessageLookupByLibrary.simpleMessage("forbindelser og følgere"), + "community__invite_to_community_resource_singular" : MessageLookupByLibrary.simpleMessage("forbindelse eller følger"), + "community__invite_to_community_title" : MessageLookupByLibrary.simpleMessage("Inviter til fællesskab"), + "community__invited_by_member" : MessageLookupByLibrary.simpleMessage("Du skal inviteres af et medlem."), + "community__invited_by_moderator" : MessageLookupByLibrary.simpleMessage("Du skal inviteres af en moderator."), + "community__is_private" : MessageLookupByLibrary.simpleMessage("Dette fællesskab er privat."), + "community__join_communities_desc" : MessageLookupByLibrary.simpleMessage("Tilmeld fællesskaber for at se denne tab komme til live!"), + "community__join_community" : MessageLookupByLibrary.simpleMessage("Deltag"), + "community__joined_communities" : MessageLookupByLibrary.simpleMessage("tilmeldte fællesskaber"), + "community__joined_community" : MessageLookupByLibrary.simpleMessage("tilmeldt fællesskab"), + "community__joined_title" : MessageLookupByLibrary.simpleMessage("Tilmeldt"), + "community__leave_community" : MessageLookupByLibrary.simpleMessage("Forlad"), + "community__leave_confirmation" : MessageLookupByLibrary.simpleMessage("Er du sikker på at du vil forlade fællesskabet?"), + "community__leave_desc" : MessageLookupByLibrary.simpleMessage("Du vil ikke længere se dens opslag i din tidslinje og kan heller ikke lave opslag til den længere."), + "community__manage_add_favourite" : MessageLookupByLibrary.simpleMessage("Føj fællesskabet til dine favoritter"), + "community__manage_admins_desc" : MessageLookupByLibrary.simpleMessage("Se, tilføje og fjerne administratorer."), + "community__manage_admins_title" : MessageLookupByLibrary.simpleMessage("Administratorer"), + "community__manage_banned_desc" : MessageLookupByLibrary.simpleMessage("Se, tilføje og fjerne blokerede brugere."), + "community__manage_banned_title" : MessageLookupByLibrary.simpleMessage("Blokerede brugere"), + "community__manage_closed_posts_desc" : MessageLookupByLibrary.simpleMessage("Se og administrere lukkede opslag"), + "community__manage_closed_posts_title" : MessageLookupByLibrary.simpleMessage("Lukkede opslag"), + "community__manage_delete_desc" : MessageLookupByLibrary.simpleMessage("Slet fællesskabet, for evigt."), + "community__manage_delete_title" : MessageLookupByLibrary.simpleMessage("Slet fællesskab"), + "community__manage_details_desc" : MessageLookupByLibrary.simpleMessage("Ændre titel, navn, avatar, coverbillede mv."), + "community__manage_details_title" : MessageLookupByLibrary.simpleMessage("Detaljer"), + "community__manage_invite_desc" : MessageLookupByLibrary.simpleMessage("Inviter dine forbindelser og følgere til at slutte sig til fællesskabet."), + "community__manage_invite_title" : MessageLookupByLibrary.simpleMessage("Inviter personer"), + "community__manage_leave_desc" : MessageLookupByLibrary.simpleMessage("Forlad fællesskabet."), + "community__manage_leave_title" : MessageLookupByLibrary.simpleMessage("Forlad fællesskab"), + "community__manage_mod_reports_desc" : MessageLookupByLibrary.simpleMessage("Gennemse fællesskabets moderations rapporter."), + "community__manage_mod_reports_title" : MessageLookupByLibrary.simpleMessage("Moderations rapporter"), + "community__manage_mods_desc" : MessageLookupByLibrary.simpleMessage("Se, tilføje og fjerne moderatorer."), + "community__manage_mods_title" : MessageLookupByLibrary.simpleMessage("Moderatorer"), + "community__manage_remove_favourite" : MessageLookupByLibrary.simpleMessage("Fjern fællesskabet fra dine favoritter"), + "community__manage_title" : MessageLookupByLibrary.simpleMessage("Administrere fællesskab"), + "community__member" : MessageLookupByLibrary.simpleMessage("medlem"), + "community__member_capitalized" : MessageLookupByLibrary.simpleMessage("Medlem"), + "community__member_plural" : MessageLookupByLibrary.simpleMessage("medlemmer"), + "community__members_capitalized" : MessageLookupByLibrary.simpleMessage("Medlemmer"), + "community__moderated_communities" : MessageLookupByLibrary.simpleMessage("modererede fællesskaber"), + "community__moderated_community" : MessageLookupByLibrary.simpleMessage("modereret fællesskab"), + "community__moderated_title" : MessageLookupByLibrary.simpleMessage("Modereret"), + "community__moderator_add_confirmation" : m9, + "community__moderator_desc" : MessageLookupByLibrary.simpleMessage("Dette vil tillade medlemmet at redigere fællesskabs detaljerne, moderatorer og blokerede brugere."), + "community__moderator_resource_name" : MessageLookupByLibrary.simpleMessage("moderator"), + "community__moderators_resource_name" : MessageLookupByLibrary.simpleMessage("moderatorer"), + "community__moderators_title" : MessageLookupByLibrary.simpleMessage("Moderatorer"), + "community__moderators_you" : MessageLookupByLibrary.simpleMessage("Dig"), + "community__name_characters_error" : MessageLookupByLibrary.simpleMessage("Et brugernavn kan kun indeholde alfanumeriske tegn og underscore."), + "community__name_empty_error" : MessageLookupByLibrary.simpleMessage("Navn er obligatorisk."), + "community__name_range_error" : m10, + "community__no" : MessageLookupByLibrary.simpleMessage("Nej"), + "community__pick_atleast_min_categories" : m11, + "community__pick_atleast_min_category" : m12, + "community__pick_upto_max" : m13, + "community__post_plural" : MessageLookupByLibrary.simpleMessage("opslag"), + "community__post_singular" : MessageLookupByLibrary.simpleMessage("opslag"), + "community__posts" : MessageLookupByLibrary.simpleMessage("Opslag"), + "community__refresh_text" : MessageLookupByLibrary.simpleMessage("Opdater"), + "community__refreshing" : MessageLookupByLibrary.simpleMessage("Opdaterer fællesskab"), + "community__retry_loading_posts" : MessageLookupByLibrary.simpleMessage("Tryk for at prøve igen"), + "community__rules_empty_error" : MessageLookupByLibrary.simpleMessage("Regler er obligatoriske."), + "community__rules_range_error" : m14, + "community__rules_text" : MessageLookupByLibrary.simpleMessage("Regler"), + "community__rules_title" : MessageLookupByLibrary.simpleMessage("Fællesskabs regler"), + "community__save_community_create_community" : MessageLookupByLibrary.simpleMessage("Opret fællesskab"), + "community__save_community_create_text" : MessageLookupByLibrary.simpleMessage("Opret"), + "community__save_community_edit_community" : MessageLookupByLibrary.simpleMessage("Rediger fællesskab"), + "community__save_community_label_title" : MessageLookupByLibrary.simpleMessage("Titel"), + "community__save_community_label_title_hint_text" : MessageLookupByLibrary.simpleMessage("f.eks Rejse, Fotografi, Spil."), + "community__save_community_name_category" : MessageLookupByLibrary.simpleMessage("Kategori"), + "community__save_community_name_label_color" : MessageLookupByLibrary.simpleMessage("Farve"), + "community__save_community_name_label_color_hint_text" : MessageLookupByLibrary.simpleMessage("(Tryk for at ændre)"), + "community__save_community_name_label_desc_optional" : MessageLookupByLibrary.simpleMessage("Beskrivelse · Valgfrit"), + "community__save_community_name_label_desc_optional_hint_text" : MessageLookupByLibrary.simpleMessage("Hvad handler dit fællesskab om?"), + "community__save_community_name_label_member_adjective" : MessageLookupByLibrary.simpleMessage("Medlems kaldenavn · Valgfrit"), + "community__save_community_name_label_member_adjective_hint_text" : MessageLookupByLibrary.simpleMessage("f.eks rejsende, fotograf, gamer."), + "community__save_community_name_label_members_adjective" : MessageLookupByLibrary.simpleMessage("Medlems kaldenavn (flertal) · Valgfrit"), + "community__save_community_name_label_members_adjective_hint_text" : MessageLookupByLibrary.simpleMessage("f.eks rejsende, fotografer, gamers."), + "community__save_community_name_label_rules_optional" : MessageLookupByLibrary.simpleMessage("Regler · Valgfrit"), + "community__save_community_name_label_rules_optional_hint_text" : MessageLookupByLibrary.simpleMessage("Er der noget du vil have dine brugere skal vide?"), + "community__save_community_name_label_type" : MessageLookupByLibrary.simpleMessage("Type"), + "community__save_community_name_label_type_hint_text" : MessageLookupByLibrary.simpleMessage("(Tryk for at ændre)"), + "community__save_community_name_member_invites" : MessageLookupByLibrary.simpleMessage("Medlems invitationer"), + "community__save_community_name_member_invites_subtitle" : MessageLookupByLibrary.simpleMessage("Medlemmer kan invitere folk til fællesskabet"), + "community__save_community_name_taken" : m15, + "community__save_community_name_title" : MessageLookupByLibrary.simpleMessage("Navn"), + "community__save_community_name_title_hint_text" : MessageLookupByLibrary.simpleMessage(" f.eks rejse, fotografi, spil."), + "community__save_community_save_text" : MessageLookupByLibrary.simpleMessage("Gem"), + "community__title_empty_error" : MessageLookupByLibrary.simpleMessage("Titel må ikke være tom."), + "community__title_range_error" : m16, + "community__trending_in_all" : MessageLookupByLibrary.simpleMessage("Populær i alle kategorier"), + "community__trending_in_category" : m17, + "community__trending_none_found" : MessageLookupByLibrary.simpleMessage("Ingen populære fællesskaber fundet. Prøv igen om få minutter."), + "community__trending_refresh" : MessageLookupByLibrary.simpleMessage("Opdater"), + "community__type_private" : MessageLookupByLibrary.simpleMessage("Privat"), + "community__type_public" : MessageLookupByLibrary.simpleMessage("Offentlig"), + "community__unfavorite_action" : MessageLookupByLibrary.simpleMessage("Fjern fællesskab fra favoritter"), + "community__user_you_text" : MessageLookupByLibrary.simpleMessage("Dig"), + "community__yes" : MessageLookupByLibrary.simpleMessage("Ja"), + "contextual_account_search_box__suggestions" : MessageLookupByLibrary.simpleMessage("Forslag"), + "drawer__account_settings" : MessageLookupByLibrary.simpleMessage("Konto Indstillinger"), + "drawer__account_settings_blocked_users" : MessageLookupByLibrary.simpleMessage("Blokerede brugere"), + "drawer__account_settings_change_email" : MessageLookupByLibrary.simpleMessage("Skift Email"), + "drawer__account_settings_change_password" : MessageLookupByLibrary.simpleMessage("Skift Adgangskode"), + "drawer__account_settings_delete_account" : MessageLookupByLibrary.simpleMessage("Slet konto"), + "drawer__account_settings_language" : m18, + "drawer__account_settings_language_text" : MessageLookupByLibrary.simpleMessage("Sprog"), + "drawer__account_settings_notifications" : MessageLookupByLibrary.simpleMessage("Notifikationer"), + "drawer__app_account_text" : MessageLookupByLibrary.simpleMessage("App & Konto"), + "drawer__application_settings" : MessageLookupByLibrary.simpleMessage("App-indstillinger"), + "drawer__connections" : MessageLookupByLibrary.simpleMessage("Mine forbindelser"), + "drawer__customize" : MessageLookupByLibrary.simpleMessage("Tilpas"), + "drawer__developer_settings" : MessageLookupByLibrary.simpleMessage("Udviklerindstillinger"), + "drawer__global_moderation" : MessageLookupByLibrary.simpleMessage("Global moderation"), + "drawer__help" : MessageLookupByLibrary.simpleMessage("Support & Feedback"), + "drawer__lists" : MessageLookupByLibrary.simpleMessage("Mine lister"), + "drawer__logout" : MessageLookupByLibrary.simpleMessage("Log ud"), + "drawer__main_title" : MessageLookupByLibrary.simpleMessage("Mit Okuna"), + "drawer__menu_title" : MessageLookupByLibrary.simpleMessage("Menu"), + "drawer__my_circles" : MessageLookupByLibrary.simpleMessage("Mine cirkler"), + "drawer__my_followers" : MessageLookupByLibrary.simpleMessage("Mine følgere"), + "drawer__my_following" : MessageLookupByLibrary.simpleMessage("Hvem jeg følger"), + "drawer__my_invites" : MessageLookupByLibrary.simpleMessage("Mine invitationer"), + "drawer__my_lists" : MessageLookupByLibrary.simpleMessage("Mine lister"), + "drawer__my_mod_penalties" : MessageLookupByLibrary.simpleMessage("Mine moderations straffe points"), + "drawer__my_pending_mod_tasks" : MessageLookupByLibrary.simpleMessage("Mine udestående moderations opgaver"), + "drawer__profile" : MessageLookupByLibrary.simpleMessage("Profil"), + "drawer__settings" : MessageLookupByLibrary.simpleMessage("Indstillinger"), + "drawer__themes" : MessageLookupByLibrary.simpleMessage("Temaer"), + "drawer__useful_links_guidelines" : MessageLookupByLibrary.simpleMessage("Okuna retningslinjer"), + "drawer__useful_links_guidelines_bug_tracker" : MessageLookupByLibrary.simpleMessage("Indberetning af fejl"), + "drawer__useful_links_guidelines_bug_tracker_desc" : MessageLookupByLibrary.simpleMessage("Indberet fejl eller stem på foreslåede rettelser"), + "drawer__useful_links_guidelines_desc" : MessageLookupByLibrary.simpleMessage("De retningslinjer, som vi alle forventes at følge for et sundt og venskabeligt samvær."), + "drawer__useful_links_guidelines_feature_requests" : MessageLookupByLibrary.simpleMessage("Foreslå ny funktionalitet"), + "drawer__useful_links_guidelines_feature_requests_desc" : MessageLookupByLibrary.simpleMessage("Foreslå ny funktionalitet eller stem på eksisterende forslag"), + "drawer__useful_links_guidelines_github" : MessageLookupByLibrary.simpleMessage("Github project board"), + "drawer__useful_links_guidelines_github_desc" : MessageLookupByLibrary.simpleMessage("Se hvad vi i øjeblikket arbejder med"), + "drawer__useful_links_guidelines_handbook" : MessageLookupByLibrary.simpleMessage("Okuna håndbog"), + "drawer__useful_links_guidelines_handbook_desc" : MessageLookupByLibrary.simpleMessage("En bog med alt hvad der er værd at vide om at benytte platformen"), + "drawer__useful_links_slack_channel" : MessageLookupByLibrary.simpleMessage("Fællesskabets Slack Channel"), + "drawer__useful_links_slack_channel_desc" : MessageLookupByLibrary.simpleMessage("Stedet hvor alt om Okuna diskuteres"), + "drawer__useful_links_support" : MessageLookupByLibrary.simpleMessage("Støt Okuna"), + "drawer__useful_links_support_desc" : MessageLookupByLibrary.simpleMessage("Find en vej at støtte os på vores tur!"), + "drawer__useful_links_title" : MessageLookupByLibrary.simpleMessage("Nyttige links"), + "error__no_internet_connection" : MessageLookupByLibrary.simpleMessage("Ingen internetforbindelse"), + "error__unknown_error" : MessageLookupByLibrary.simpleMessage("Ukendt fejl"), + "image_picker__error_too_large" : m19, + "image_picker__from_camera" : MessageLookupByLibrary.simpleMessage("Fra kamera"), + "image_picker__from_gallery" : MessageLookupByLibrary.simpleMessage("Fra galleri"), + "moderation__actions_chat_with_team" : MessageLookupByLibrary.simpleMessage("Chat med teamet"), + "moderation__actions_review" : MessageLookupByLibrary.simpleMessage("Gennemgå"), + "moderation__category_text" : MessageLookupByLibrary.simpleMessage("Kategori"), + "moderation__community_moderated_objects" : MessageLookupByLibrary.simpleMessage("Fællesskabs modererede objekter"), + "moderation__community_review_approve" : MessageLookupByLibrary.simpleMessage("Godkend"), + "moderation__community_review_item_verified" : MessageLookupByLibrary.simpleMessage("Denne anmeldelse er gennemgået"), + "moderation__community_review_object" : MessageLookupByLibrary.simpleMessage("Objekt"), + "moderation__community_review_reject" : MessageLookupByLibrary.simpleMessage("afvis"), + "moderation__community_review_title" : MessageLookupByLibrary.simpleMessage("Gennemse moderet objekt"), + "moderation__confirm_report_community_reported" : MessageLookupByLibrary.simpleMessage("Fællesskabs anmeldelse"), + "moderation__confirm_report_item_reported" : MessageLookupByLibrary.simpleMessage("Objekt anmeldt"), + "moderation__confirm_report_post_comment_reported" : MessageLookupByLibrary.simpleMessage("Opslags kommentar anmeldelse"), + "moderation__confirm_report_post_reported" : MessageLookupByLibrary.simpleMessage("Opslags anmeldelse"), + "moderation__confirm_report_provide_details" : MessageLookupByLibrary.simpleMessage("Kan du tilføje ekstra detaljer som kan være relevante for anmeldelsen?"), + "moderation__confirm_report_provide_happen_next" : MessageLookupByLibrary.simpleMessage("Her er hvad der vil ske efterfølgende:"), + "moderation__confirm_report_provide_happen_next_desc" : MessageLookupByLibrary.simpleMessage("- Din anmeldelse vil blive indsendt anonymt. \n- Hvis du anmelder et opslag eller en kommentar, vil anmeldelsen blive sendt til Okuna personalet og fællesskabs moderatorerne hvis relevant og opslaget vil blive skjult fra dit feed. \n- Hvis du anmelder en konto eller et fællesskab, vil det blive sendt til Okuna personalet. \n- Vi vil gennemgå det og hvis det godkendes, vil indhold blive slettet og sanktioner givet til de involverede, gående fra en midlertidig udelukkelse til sletning a kontoen, afhængig af alvorligheden af overtrædelsen. \n- Hvis anmeldelsen vurderes at være lavet i et forsøg på at skade et andet medlem eller fællesskab på platformen, uden nogen overtrædelse af den angivne type, vil sanktioner blive givet til dig. \n"), + "moderation__confirm_report_provide_optional_hint_text" : MessageLookupByLibrary.simpleMessage("Skriv her..."), + "moderation__confirm_report_provide_optional_info" : MessageLookupByLibrary.simpleMessage("(Valgfrit)"), + "moderation__confirm_report_submit" : MessageLookupByLibrary.simpleMessage("Forstået, indsend."), + "moderation__confirm_report_title" : MessageLookupByLibrary.simpleMessage("Indsend anmeldelse"), + "moderation__confirm_report_user_reported" : MessageLookupByLibrary.simpleMessage("Bruger anmeldelse"), + "moderation__description_text" : MessageLookupByLibrary.simpleMessage("Beskrivelse"), + "moderation__filters_apply" : MessageLookupByLibrary.simpleMessage("Anvend filtre"), + "moderation__filters_other" : MessageLookupByLibrary.simpleMessage("Andre"), + "moderation__filters_reset" : MessageLookupByLibrary.simpleMessage("Nulstil"), + "moderation__filters_status" : MessageLookupByLibrary.simpleMessage("Status"), + "moderation__filters_title" : MessageLookupByLibrary.simpleMessage("Moderations Filtre"), + "moderation__filters_type" : MessageLookupByLibrary.simpleMessage("Type"), + "moderation__filters_verified" : MessageLookupByLibrary.simpleMessage("Verificerede"), + "moderation__global_review_object_text" : MessageLookupByLibrary.simpleMessage("Objekt"), + "moderation__global_review_title" : MessageLookupByLibrary.simpleMessage("Gennemse moderet objekt"), + "moderation__global_review_unverify_text" : MessageLookupByLibrary.simpleMessage("Fjern verificering"), + "moderation__global_review_verify_text" : MessageLookupByLibrary.simpleMessage("Verificer"), + "moderation__globally_moderated_objects" : MessageLookupByLibrary.simpleMessage("Globalt modererede objekter"), + "moderation__moderated_object_false_text" : MessageLookupByLibrary.simpleMessage("Nej"), + "moderation__moderated_object_reports_count" : MessageLookupByLibrary.simpleMessage("Anmeldelses antal"), + "moderation__moderated_object_status" : MessageLookupByLibrary.simpleMessage("Status"), + "moderation__moderated_object_title" : MessageLookupByLibrary.simpleMessage("Objekt"), + "moderation__moderated_object_true_text" : MessageLookupByLibrary.simpleMessage("Ja"), + "moderation__moderated_object_verified" : MessageLookupByLibrary.simpleMessage("Gennemset"), + "moderation__moderated_object_verified_by_staff" : MessageLookupByLibrary.simpleMessage("Gennemset af Okuna personale"), + "moderation__my_moderation_penalties_resouce_singular" : MessageLookupByLibrary.simpleMessage("moderations straffe"), + "moderation__my_moderation_penalties_resource_plural" : MessageLookupByLibrary.simpleMessage("moderations straffer"), + "moderation__my_moderation_penalties_title" : MessageLookupByLibrary.simpleMessage("Moderations straffer"), + "moderation__my_moderation_tasks_title" : MessageLookupByLibrary.simpleMessage("Udestående moderationsopgaver"), + "moderation__no_description_text" : MessageLookupByLibrary.simpleMessage("Ingen beskrivelse"), + "moderation__object_status_title" : MessageLookupByLibrary.simpleMessage("Status"), + "moderation__pending_moderation_tasks_plural" : MessageLookupByLibrary.simpleMessage("udestående moderationsopgaver"), + "moderation__pending_moderation_tasks_singular" : MessageLookupByLibrary.simpleMessage("udestående moderationsopgave"), + "moderation__report_account_text" : MessageLookupByLibrary.simpleMessage("Anmeld konto"), + "moderation__report_comment_text" : MessageLookupByLibrary.simpleMessage("Anmeld kommentar"), + "moderation__report_community_text" : MessageLookupByLibrary.simpleMessage("Anmeld fællesskab"), + "moderation__report_post_text" : MessageLookupByLibrary.simpleMessage("Anmeld opslag"), + "moderation__reporter_text" : MessageLookupByLibrary.simpleMessage("Rapporter"), + "moderation__reports_preview_resource_reports" : MessageLookupByLibrary.simpleMessage("anmelder"), + "moderation__reports_preview_title" : MessageLookupByLibrary.simpleMessage("Reporter"), + "moderation__reports_see_all" : m20, + "moderation__tap_to_retry" : MessageLookupByLibrary.simpleMessage("Tryk for at forsøge genindlæsning"), + "moderation__update_category_save" : MessageLookupByLibrary.simpleMessage("Gem"), + "moderation__update_category_title" : MessageLookupByLibrary.simpleMessage("Opdater Kategori"), + "moderation__update_description_report_desc" : MessageLookupByLibrary.simpleMessage("Anmeldelses beskrivelse"), + "moderation__update_description_report_hint_text" : MessageLookupByLibrary.simpleMessage("f.eks Det anmeldte blev vurderet at..."), + "moderation__update_description_save" : MessageLookupByLibrary.simpleMessage("Gem"), + "moderation__update_description_title" : MessageLookupByLibrary.simpleMessage("Rediger beskrivelse"), + "moderation__update_status_save" : MessageLookupByLibrary.simpleMessage("Gem"), + "moderation__update_status_title" : MessageLookupByLibrary.simpleMessage("Opdater status"), + "moderation__you_have_reported_account_text" : MessageLookupByLibrary.simpleMessage("Du har anmeldt denne konto"), + "moderation__you_have_reported_comment_text" : MessageLookupByLibrary.simpleMessage("Du har anmeldt denne kommentar"), + "moderation__you_have_reported_community_text" : MessageLookupByLibrary.simpleMessage("Du har anmeldt dette fællesskab"), + "moderation__you_have_reported_post_text" : MessageLookupByLibrary.simpleMessage("Du har anmeldt dette opslag"), + "notifications__accepted_connection_request_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] godkendte din anmodning om at indgå forbindelse"), + "notifications__comment_comment_notification_tile_user_also_commented" : m21, + "notifications__comment_comment_notification_tile_user_commented" : m22, + "notifications__comment_desc" : MessageLookupByLibrary.simpleMessage("Få besked når nogen kommenterer på et af dine indlæg eller på et du også kommenterede på"), + "notifications__comment_reaction_desc" : MessageLookupByLibrary.simpleMessage("Få besked når nogen reagerer på en af dine kommentarer til indlægget"), + "notifications__comment_reaction_title" : MessageLookupByLibrary.simpleMessage("Send reaktion på kommentar"), + "notifications__comment_reply_desc" : MessageLookupByLibrary.simpleMessage("Få besked når nogen svarer på en af dine kommentarer eller på en du også svarede på"), + "notifications__comment_reply_notification_tile_user_also_replied" : m23, + "notifications__comment_reply_notification_tile_user_replied" : m24, + "notifications__comment_reply_title" : MessageLookupByLibrary.simpleMessage("Send svar på kommentar"), + "notifications__comment_title" : MessageLookupByLibrary.simpleMessage("Tilføj kommentar"), + "notifications__comment_user_mention_desc" : MessageLookupByLibrary.simpleMessage("Få besked når nogen nævner dig i en af sine kommentarer"), + "notifications__comment_user_mention_title" : MessageLookupByLibrary.simpleMessage("Send nævnelse af kommentaren"), + "notifications__community_invite_desc" : MessageLookupByLibrary.simpleMessage("Få besked når nogen inviterer dig i et fælleskab"), + "notifications__community_invite_title" : MessageLookupByLibrary.simpleMessage("Invitation til fælleskabet"), + "notifications__connection_desc" : MessageLookupByLibrary.simpleMessage("Få besked når nogen ønsker at forbinde sig med dig"), + "notifications__connection_request_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] ønsker at forbinde sig med dig"), + "notifications__connection_title" : MessageLookupByLibrary.simpleMessage("Kontaktanmodning"), + "notifications__follow_desc" : MessageLookupByLibrary.simpleMessage("Få besked når nogen begynder at følge dig"), + "notifications__follow_title" : MessageLookupByLibrary.simpleMessage("Følg"), + "notifications__following_you_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] følger dig nu."), + "notifications__general_desc" : MessageLookupByLibrary.simpleMessage("Få besked når noget sker"), + "notifications__general_title" : MessageLookupByLibrary.simpleMessage("Beskeder"), + "notifications__mentioned_in_post_comment_tile" : m25, + "notifications__mentioned_in_post_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] nævnte dig i et indlæg."), + "notifications__mute_post_turn_off_post_comment_notifications" : MessageLookupByLibrary.simpleMessage("Slå beskeder for kommentarer på indlæg fra"), + "notifications__mute_post_turn_off_post_notifications" : MessageLookupByLibrary.simpleMessage("Slå beskeder for indlæg fra"), + "notifications__mute_post_turn_on_post_comment_notifications" : MessageLookupByLibrary.simpleMessage("Slå beskeder for kommentarer på indlæg til"), + "notifications__mute_post_turn_on_post_notifications" : MessageLookupByLibrary.simpleMessage("Slå beskeder for indlæg til"), + "notifications__post_reaction_desc" : MessageLookupByLibrary.simpleMessage("Få besked når nogen reagerer på et af dine indlæg"), + "notifications__post_reaction_title" : MessageLookupByLibrary.simpleMessage("Send reaktion"), + "notifications__post_user_mention_desc" : MessageLookupByLibrary.simpleMessage("Få besked når nogen nævner dig i en af sine indlæg"), + "notifications__post_user_mention_title" : MessageLookupByLibrary.simpleMessage("Send nævnelse"), + "notifications__reacted_to_post_comment_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] reagerede på din kommentar til indlægget."), + "notifications__reacted_to_post_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] reagerede på dit indlæg."), + "notifications__settings_title" : MessageLookupByLibrary.simpleMessage("Indstillinger for beskeder"), + "notifications__tab_general" : MessageLookupByLibrary.simpleMessage("Overordnet"), + "notifications__tab_requests" : MessageLookupByLibrary.simpleMessage("Forespørgsler"), + "notifications__user_community_invite_tile" : m26, + "post__action_comment" : MessageLookupByLibrary.simpleMessage("Kommentar"), + "post__action_react" : MessageLookupByLibrary.simpleMessage("Reager"), + "post__action_reply" : MessageLookupByLibrary.simpleMessage("Svar"), + "post__actions_comment_deleted" : MessageLookupByLibrary.simpleMessage("Kommentar slettet"), + "post__actions_delete" : MessageLookupByLibrary.simpleMessage("Slet opslag"), + "post__actions_delete_comment" : MessageLookupByLibrary.simpleMessage("Slet kommentar"), + "post__actions_deleted" : MessageLookupByLibrary.simpleMessage("Opslag slettet"), + "post__actions_edit_comment" : MessageLookupByLibrary.simpleMessage("Rediger kommentar"), + "post__actions_report_text" : MessageLookupByLibrary.simpleMessage("Anmeld"), + "post__actions_reported_text" : MessageLookupByLibrary.simpleMessage("Anmeldt"), + "post__actions_show_more_text" : MessageLookupByLibrary.simpleMessage("Vis mere"), + "post__close_create_post_label" : MessageLookupByLibrary.simpleMessage("Luk \"opret nyt indlæg\""), + "post__close_post" : MessageLookupByLibrary.simpleMessage("Luk opslag"), + "post__comment_maxlength_error" : m27, + "post__comment_reply_expanded_post" : MessageLookupByLibrary.simpleMessage("Opslag"), + "post__comment_reply_expanded_reply_comment" : MessageLookupByLibrary.simpleMessage("Besvar kommentar"), + "post__comment_reply_expanded_reply_hint_text" : MessageLookupByLibrary.simpleMessage("Dit svar..."), + "post__comment_required_error" : MessageLookupByLibrary.simpleMessage("Kommentar er obligatorisk."), + "post__commenter_expanded_edit_comment" : MessageLookupByLibrary.simpleMessage("Rediger kommentar"), + "post__commenter_expanded_join_conversation" : MessageLookupByLibrary.simpleMessage("Deltag i samtalen..."), + "post__commenter_expanded_save" : MessageLookupByLibrary.simpleMessage("Gem"), + "post__commenter_expanded_start_conversation" : MessageLookupByLibrary.simpleMessage("Start en ny samtale..."), + "post__commenter_post_text" : MessageLookupByLibrary.simpleMessage("Opslag"), + "post__commenter_write_something" : MessageLookupByLibrary.simpleMessage("Skriv noget..."), + "post__comments_closed_post" : MessageLookupByLibrary.simpleMessage("Lukket opslag"), + "post__comments_disabled" : MessageLookupByLibrary.simpleMessage("Kommentarer deaktiveret"), + "post__comments_disabled_message" : MessageLookupByLibrary.simpleMessage("Kommentarer deaktiveret for opslag"), + "post__comments_enabled_message" : MessageLookupByLibrary.simpleMessage("Kommentarer aktiveret for opslag"), + "post__comments_header_be_the_first_comments" : MessageLookupByLibrary.simpleMessage("Vær den første til at kommentere"), + "post__comments_header_be_the_first_replies" : MessageLookupByLibrary.simpleMessage("Vær den første til at svare"), + "post__comments_header_newer" : MessageLookupByLibrary.simpleMessage("Nyere"), + "post__comments_header_newest_comments" : MessageLookupByLibrary.simpleMessage("Nyeste kommentarer"), + "post__comments_header_newest_replies" : MessageLookupByLibrary.simpleMessage("Nyeste svar"), + "post__comments_header_older" : MessageLookupByLibrary.simpleMessage("Ældre"), + "post__comments_header_oldest_comments" : MessageLookupByLibrary.simpleMessage("Ældste kommentarer"), + "post__comments_header_oldest_replies" : MessageLookupByLibrary.simpleMessage("Ældste svar"), + "post__comments_header_see_newest_comments" : MessageLookupByLibrary.simpleMessage("Se nyeste kommentarer"), + "post__comments_header_see_newest_replies" : MessageLookupByLibrary.simpleMessage("Se nyeste svar"), + "post__comments_header_see_oldest_comments" : MessageLookupByLibrary.simpleMessage("Se ældste kommentarer"), + "post__comments_header_see_oldest_replies" : MessageLookupByLibrary.simpleMessage("Se ældste svar"), + "post__comments_header_view_newest_comments" : MessageLookupByLibrary.simpleMessage("Se nyeste kommentarer"), + "post__comments_header_view_newest_replies" : MessageLookupByLibrary.simpleMessage("Se nyeste svar"), + "post__comments_header_view_oldest_comments" : MessageLookupByLibrary.simpleMessage("Se ældste kommentarer"), + "post__comments_header_view_oldest_replies" : MessageLookupByLibrary.simpleMessage("Se ældste svar"), + "post__comments_page_no_more_replies_to_load" : MessageLookupByLibrary.simpleMessage("Ikke flere svar at hente"), + "post__comments_page_no_more_to_load" : MessageLookupByLibrary.simpleMessage("Ikke flere kommentarer at hente"), + "post__comments_page_replies_title" : MessageLookupByLibrary.simpleMessage("Svar på opslag"), + "post__comments_page_tap_to_retry" : MessageLookupByLibrary.simpleMessage("Tryk for at genindlæse kommentarer."), + "post__comments_page_tap_to_retry_replies" : MessageLookupByLibrary.simpleMessage("Tryk for at genindlæse svar."), + "post__comments_page_title" : MessageLookupByLibrary.simpleMessage("Kommentarer"), + "post__comments_view_all_comments" : m28, + "post__create_new" : MessageLookupByLibrary.simpleMessage("Nyt opslag"), + "post__create_new_community_post_label" : MessageLookupByLibrary.simpleMessage("Opret nyt fælleskabsindlæg"), + "post__create_new_post_label" : MessageLookupByLibrary.simpleMessage("Opret nyt indlæg"), + "post__create_next" : MessageLookupByLibrary.simpleMessage("Næste"), + "post__create_photo" : MessageLookupByLibrary.simpleMessage("Foto"), + "post__create_video" : MessageLookupByLibrary.simpleMessage("Video"), + "post__disable_post_comments" : MessageLookupByLibrary.simpleMessage("Deaktiver kommentarer"), + "post__edit_save" : MessageLookupByLibrary.simpleMessage("Gem"), + "post__edit_title" : MessageLookupByLibrary.simpleMessage("Rediger opslag"), + "post__enable_post_comments" : MessageLookupByLibrary.simpleMessage("Aktiver kommentarer"), + "post__have_not_shared_anything" : MessageLookupByLibrary.simpleMessage("Du har ikke delt noget endnu."), + "post__is_closed" : MessageLookupByLibrary.simpleMessage("Lukket opslag"), + "post__my_circles" : MessageLookupByLibrary.simpleMessage("Mine cirkler"), + "post__my_circles_desc" : MessageLookupByLibrary.simpleMessage("Del opslaget til en eller flere af dine cirkler."), + "post__no_circles_for" : m29, + "post__open_post" : MessageLookupByLibrary.simpleMessage("Åben opslag"), + "post__post_closed" : MessageLookupByLibrary.simpleMessage("Opslag lukket "), + "post__post_opened" : MessageLookupByLibrary.simpleMessage("Opslag åbnet"), + "post__post_reactions_title" : MessageLookupByLibrary.simpleMessage("Opslags reaktioner"), + "post__profile_counts_follower" : MessageLookupByLibrary.simpleMessage(" Følger"), + "post__profile_counts_followers" : MessageLookupByLibrary.simpleMessage(" Følgere"), + "post__profile_counts_following" : MessageLookupByLibrary.simpleMessage(" Følger"), + "post__profile_counts_post" : MessageLookupByLibrary.simpleMessage(" Opslag"), + "post__profile_counts_posts" : MessageLookupByLibrary.simpleMessage(" Opslag"), + "post__profile_retry_loading_posts" : MessageLookupByLibrary.simpleMessage("Tryk for at prøve igen"), + "post__reaction_list_tap_retry" : MessageLookupByLibrary.simpleMessage("Tryk for at genindlæse reaktioner."), + "post__search_circles" : MessageLookupByLibrary.simpleMessage("Søg cirkler..."), + "post__share" : MessageLookupByLibrary.simpleMessage("Del"), + "post__share_community" : MessageLookupByLibrary.simpleMessage("Del"), + "post__share_community_desc" : MessageLookupByLibrary.simpleMessage("Del opslaget til et fællesskab du er del af."), + "post__share_community_title" : MessageLookupByLibrary.simpleMessage("Et fællesskab"), + "post__share_to" : MessageLookupByLibrary.simpleMessage("Del via"), + "post__share_to_circles" : MessageLookupByLibrary.simpleMessage("Del til cirkler"), + "post__share_to_community" : MessageLookupByLibrary.simpleMessage("Del til fællesskab"), + "post__shared_privately_on" : MessageLookupByLibrary.simpleMessage("Delt privat i"), + "post__sharing_post_to" : MessageLookupByLibrary.simpleMessage("Deler opslag via"), + "post__text_copied" : MessageLookupByLibrary.simpleMessage("Tekst kopieret!"), + "post__time_short_days" : MessageLookupByLibrary.simpleMessage("d"), + "post__time_short_hours" : MessageLookupByLibrary.simpleMessage("t"), + "post__time_short_minutes" : MessageLookupByLibrary.simpleMessage("m"), + "post__time_short_now_text" : MessageLookupByLibrary.simpleMessage("nu"), + "post__time_short_one_day" : MessageLookupByLibrary.simpleMessage("1d"), + "post__time_short_one_hour" : MessageLookupByLibrary.simpleMessage("1t"), + "post__time_short_one_minute" : MessageLookupByLibrary.simpleMessage("1m"), + "post__time_short_one_week" : MessageLookupByLibrary.simpleMessage("1u"), + "post__time_short_one_year" : MessageLookupByLibrary.simpleMessage("1å"), + "post__time_short_seconds" : MessageLookupByLibrary.simpleMessage("s"), + "post__time_short_weeks" : MessageLookupByLibrary.simpleMessage("u"), + "post__time_short_years" : MessageLookupByLibrary.simpleMessage("å"), + "post__timeline_posts_all_loaded" : MessageLookupByLibrary.simpleMessage("🎉 Alle opslag hentet"), + "post__timeline_posts_default_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Prøv at genindlæse tidslinjen."), + "post__timeline_posts_default_drhoo_title" : MessageLookupByLibrary.simpleMessage("Der er noget galt."), + "post__timeline_posts_failed_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Prøv igen om nogle sekunder"), + "post__timeline_posts_failed_drhoo_title" : MessageLookupByLibrary.simpleMessage("Kunne ikke indlæse din tidslinje."), + "post__timeline_posts_no_more_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Følg brugere eller deltag i et fællesskab for at komme i gang!"), + "post__timeline_posts_refresh_posts" : MessageLookupByLibrary.simpleMessage("Genindlæs opslag"), + "post__timeline_posts_refreshing_drhoo_title" : MessageLookupByLibrary.simpleMessage("Hav tålmodighed!"), + "post__trending_posts_no_trending_posts" : MessageLookupByLibrary.simpleMessage("Der er ingen populære opslag. Prøv at opdatere om nogle sekunder."), + "post__trending_posts_refresh" : MessageLookupByLibrary.simpleMessage("Opdater"), + "post__trending_posts_title" : MessageLookupByLibrary.simpleMessage("Populære opslag"), + "post__user_has_not_shared_anything" : m30, + "post__usernames_circles" : m31, + "post__world_circle_name" : MessageLookupByLibrary.simpleMessage("Verden"), + "post__you_shared_with" : MessageLookupByLibrary.simpleMessage("Du delte via"), + "post_body_link_preview__empty" : MessageLookupByLibrary.simpleMessage("Dette link kunne ikke skaffes"), + "post_body_link_preview__error_with_description" : m32, + "post_body_media__unsupported" : MessageLookupByLibrary.simpleMessage("Ikke understøttet medier typ"), + "post_uploader__cancelled" : MessageLookupByLibrary.simpleMessage("Annulleret!"), + "post_uploader__cancelling" : MessageLookupByLibrary.simpleMessage("Annullerer"), + "post_uploader__compressing_media" : MessageLookupByLibrary.simpleMessage("Kompresserer medier..."), + "post_uploader__creating_post" : MessageLookupByLibrary.simpleMessage("Opretter indlæg..."), + "post_uploader__generic_upload_failed" : MessageLookupByLibrary.simpleMessage("Upload mislykkedes"), + "post_uploader__processing" : MessageLookupByLibrary.simpleMessage("Forarbejder indlæg..."), + "post_uploader__publishing" : MessageLookupByLibrary.simpleMessage("Offentliggør indlæg..."), + "post_uploader__success" : MessageLookupByLibrary.simpleMessage("Succes!"), + "post_uploader__uploading_media" : MessageLookupByLibrary.simpleMessage("Uploader medier..."), + "posts_stream__all_loaded" : MessageLookupByLibrary.simpleMessage("🎉 Alle indlæg loadet"), + "posts_stream__empty_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Prøv at genopfriske om nogle sekunder."), + "posts_stream__empty_drhoo_title" : MessageLookupByLibrary.simpleMessage("Denne stream er tom."), + "posts_stream__failed_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Prøv igen om nogle sekunder"), + "posts_stream__failed_drhoo_title" : MessageLookupByLibrary.simpleMessage("Kunne ikke loade stream."), + "posts_stream__refreshing_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Opdaterer stream."), + "posts_stream__refreshing_drhoo_title" : MessageLookupByLibrary.simpleMessage("Vent lidt!"), + "posts_stream__status_tile_empty" : MessageLookupByLibrary.simpleMessage("Ingen indlæg fundet"), + "posts_stream__status_tile_no_more_to_load" : MessageLookupByLibrary.simpleMessage("🎉 Alle indlæg loadet"), + "user__add_account_done" : MessageLookupByLibrary.simpleMessage("Færdig"), + "user__add_account_save" : MessageLookupByLibrary.simpleMessage("Gem"), + "user__add_account_success" : MessageLookupByLibrary.simpleMessage("Succes"), + "user__add_account_to_lists" : MessageLookupByLibrary.simpleMessage("Føj konto til liste"), + "user__add_account_update_account_lists" : MessageLookupByLibrary.simpleMessage("Aktualiser konto lister"), + "user__add_account_update_lists" : MessageLookupByLibrary.simpleMessage("Opdater lister"), + "user__billion_postfix" : MessageLookupByLibrary.simpleMessage("mia"), + "user__block_user" : MessageLookupByLibrary.simpleMessage("Bloker bruger"), + "user__change_email_email_text" : MessageLookupByLibrary.simpleMessage("Email"), + "user__change_email_error" : MessageLookupByLibrary.simpleMessage("Email allerede registreret"), + "user__change_email_hint_text" : MessageLookupByLibrary.simpleMessage("Indtast din emailadresse"), + "user__change_email_save" : MessageLookupByLibrary.simpleMessage("Gem"), + "user__change_email_success_info" : MessageLookupByLibrary.simpleMessage("Vi har sendt et bekræftelses link til din nye email adresse, klik det for at bekræfte din nye email"), + "user__change_email_title" : MessageLookupByLibrary.simpleMessage("Skift Email"), + "user__circle_name_empty_error" : MessageLookupByLibrary.simpleMessage("Kredsnavn må ikke være tom"), + "user__circle_name_range_error" : m33, + "user__circle_peoples_count" : m34, + "user__clear_app_preferences_cleared_successfully" : MessageLookupByLibrary.simpleMessage("Nulstillede præferencer med succes"), + "user__clear_app_preferences_desc" : MessageLookupByLibrary.simpleMessage("Nulstil app præferencer. I øjeblikket er dette den eneste foretrukne sortering af kommentarer."), + "user__clear_app_preferences_error" : MessageLookupByLibrary.simpleMessage("Kunne ikke nulstille præferencer"), + "user__clear_app_preferences_title" : MessageLookupByLibrary.simpleMessage("Nulstil præferencer"), + "user__clear_application_cache_desc" : MessageLookupByLibrary.simpleMessage("Tøm cachen for indlæg, konti, billeder & mere."), + "user__clear_application_cache_failure" : MessageLookupByLibrary.simpleMessage("Kunne ikke tømme cache"), + "user__clear_application_cache_success" : MessageLookupByLibrary.simpleMessage("Cache succesfuldt tømt"), + "user__clear_application_cache_text" : MessageLookupByLibrary.simpleMessage("Tøm cache"), + "user__confirm_block_user_blocked" : MessageLookupByLibrary.simpleMessage("Bruger blokeret."), + "user__confirm_block_user_info" : MessageLookupByLibrary.simpleMessage("I vil hverken se hinandens indslæg eller være i stand til at interagere på nogen måde."), + "user__confirm_block_user_no" : MessageLookupByLibrary.simpleMessage("Nej"), + "user__confirm_block_user_question" : m35, + "user__confirm_block_user_title" : MessageLookupByLibrary.simpleMessage("Bekræftelse"), + "user__confirm_block_user_yes" : MessageLookupByLibrary.simpleMessage("Ja"), + "user__confirm_connection_add_connection" : MessageLookupByLibrary.simpleMessage("Føj kontakt til kreds"), + "user__confirm_connection_confirm_text" : MessageLookupByLibrary.simpleMessage("Bekræft"), + "user__confirm_connection_connection_confirmed" : MessageLookupByLibrary.simpleMessage("Kontakt bekræftet"), + "user__confirm_connection_with" : m36, + "user__confirm_guidelines_reject_chat_community" : MessageLookupByLibrary.simpleMessage("Snak med fælleskabet."), + "user__confirm_guidelines_reject_chat_immediately" : MessageLookupByLibrary.simpleMessage("Start en samtale omgående."), + "user__confirm_guidelines_reject_chat_with_team" : MessageLookupByLibrary.simpleMessage("Snak med teamet."), + "user__confirm_guidelines_reject_delete_account" : MessageLookupByLibrary.simpleMessage("Slet konto"), + "user__confirm_guidelines_reject_go_back" : MessageLookupByLibrary.simpleMessage("Tilbage"), + "user__confirm_guidelines_reject_info" : MessageLookupByLibrary.simpleMessage("Du kan ikke bruge Okuna før du accepterer retningslinjerne."), + "user__confirm_guidelines_reject_join_slack" : MessageLookupByLibrary.simpleMessage("Deltag i Slack kanalen."), + "user__confirm_guidelines_reject_title" : MessageLookupByLibrary.simpleMessage("Retningslinjernes afvisning"), + "user__connect_to_user_add_connection" : MessageLookupByLibrary.simpleMessage("Føj kontakt til kreds"), + "user__connect_to_user_connect_with_username" : m37, + "user__connect_to_user_done" : MessageLookupByLibrary.simpleMessage("Udført"), + "user__connect_to_user_request_sent" : MessageLookupByLibrary.simpleMessage("Kontaktanmodning sendt"), + "user__connection_circle_edit" : MessageLookupByLibrary.simpleMessage("Redigér"), + "user__connection_pending" : MessageLookupByLibrary.simpleMessage("Verserende"), + "user__connections_circle_delete" : MessageLookupByLibrary.simpleMessage("Slet"), + "user__connections_header_circle_desc" : MessageLookupByLibrary.simpleMessage("Kredsen som alle dine forbindelser tilføjes."), + "user__connections_header_users" : MessageLookupByLibrary.simpleMessage("Brugere"), + "user__delete_account_confirmation_desc" : MessageLookupByLibrary.simpleMessage("Er du sikker på, at du vil slette dit konto?"), + "user__delete_account_confirmation_desc_info" : MessageLookupByLibrary.simpleMessage("Det er en endegyldig aktion og kan ikke kaldes tilbage."), + "user__delete_account_confirmation_goodbye" : MessageLookupByLibrary.simpleMessage("Farvel"), + "user__delete_account_confirmation_no" : MessageLookupByLibrary.simpleMessage("Nej"), + "user__delete_account_confirmation_title" : MessageLookupByLibrary.simpleMessage("Bekræftelse"), + "user__delete_account_confirmation_yes" : MessageLookupByLibrary.simpleMessage("Ja"), + "user__delete_account_current_pwd" : MessageLookupByLibrary.simpleMessage("Nuværende adgangskode"), + "user__delete_account_current_pwd_hint" : MessageLookupByLibrary.simpleMessage("Indtast din aktuel adgangskode"), + "user__delete_account_next" : MessageLookupByLibrary.simpleMessage("Næste"), + "user__delete_account_title" : MessageLookupByLibrary.simpleMessage("Slet konto"), + "user__disconnect_from_user" : m38, + "user__disconnect_from_user_success" : MessageLookupByLibrary.simpleMessage("Afbrød med succes"), + "user__edit_profile_bio" : MessageLookupByLibrary.simpleMessage("Biografi"), + "user__edit_profile_community_posts" : MessageLookupByLibrary.simpleMessage("Fællesskabsindlæg"), + "user__edit_profile_delete" : MessageLookupByLibrary.simpleMessage("Slet"), + "user__edit_profile_followers_count" : MessageLookupByLibrary.simpleMessage("Antal følgere"), + "user__edit_profile_location" : MessageLookupByLibrary.simpleMessage("Bopæl"), + "user__edit_profile_name" : MessageLookupByLibrary.simpleMessage("Navn"), + "user__edit_profile_pick_image" : MessageLookupByLibrary.simpleMessage("Vælg billede"), + "user__edit_profile_pick_image_error_too_large" : m39, + "user__edit_profile_save_text" : MessageLookupByLibrary.simpleMessage("Gem"), + "user__edit_profile_title" : MessageLookupByLibrary.simpleMessage("Redigér profil"), + "user__edit_profile_url" : MessageLookupByLibrary.simpleMessage("url"), + "user__edit_profile_user_name_taken" : m40, + "user__edit_profile_username" : MessageLookupByLibrary.simpleMessage("Brugernavn"), + "user__email_verification_error" : MessageLookupByLibrary.simpleMessage("Ups! Dit token var ikke validt, eller er udløbet. Prøv igen"), + "user__email_verification_successful" : MessageLookupByLibrary.simpleMessage("Fantastisk! Din email er nu bekræftet"), + "user__emoji_field_none_selected" : MessageLookupByLibrary.simpleMessage("Ingen emoji valgt"), + "user__emoji_search_none_found" : m41, + "user__follow_button_follow_text" : MessageLookupByLibrary.simpleMessage("Følg"), + "user__follow_button_unfollow_text" : MessageLookupByLibrary.simpleMessage("Følg ikke længere"), + "user__follow_lists_no_list_found" : MessageLookupByLibrary.simpleMessage("Ingen liste fundet."), + "user__follow_lists_no_list_found_for" : m42, + "user__follow_lists_search_for" : MessageLookupByLibrary.simpleMessage("Søg efter en liste..."), + "user__follow_lists_title" : MessageLookupByLibrary.simpleMessage("Mine lister"), + "user__follower_plural" : MessageLookupByLibrary.simpleMessage("følgere"), + "user__follower_singular" : MessageLookupByLibrary.simpleMessage("følger"), + "user__followers_title" : MessageLookupByLibrary.simpleMessage("Følgere"), + "user__following_resource_name" : MessageLookupByLibrary.simpleMessage("brugere der følger"), + "user__following_text" : MessageLookupByLibrary.simpleMessage("Følger"), + "user__follows_list_accounts_count" : m43, + "user__follows_list_edit" : MessageLookupByLibrary.simpleMessage("Redigér"), + "user__follows_list_header_title" : MessageLookupByLibrary.simpleMessage("Brugere"), + "user__follows_lists_account" : MessageLookupByLibrary.simpleMessage("1 konto"), + "user__follows_lists_accounts" : m44, + "user__groups_see_all" : m45, + "user__guidelines_accept" : MessageLookupByLibrary.simpleMessage("Accepter"), + "user__guidelines_desc" : MessageLookupByLibrary.simpleMessage("Tag et øjeblik til at læse og acceptere vores retningslinjer."), + "user__guidelines_reject" : MessageLookupByLibrary.simpleMessage("Afvis"), + "user__invite" : MessageLookupByLibrary.simpleMessage("Indbyd"), + "user__invite_member" : MessageLookupByLibrary.simpleMessage("Medlem"), + "user__invite_someone_message" : m46, + "user__invites_accepted_group_item_name" : MessageLookupByLibrary.simpleMessage("acceptered invitation"), + "user__invites_accepted_group_name" : MessageLookupByLibrary.simpleMessage("accepterede invitationer"), + "user__invites_accepted_title" : MessageLookupByLibrary.simpleMessage("Accepteret"), + "user__invites_create_create" : MessageLookupByLibrary.simpleMessage("Kreér"), + "user__invites_create_create_title" : MessageLookupByLibrary.simpleMessage("Kreér indbydelse"), + "user__invites_create_edit_title" : MessageLookupByLibrary.simpleMessage("Redigér indbydelse"), + "user__invites_create_name_hint" : MessageLookupByLibrary.simpleMessage("fx. Jane Doe"), + "user__invites_create_name_title" : MessageLookupByLibrary.simpleMessage("nickname"), + "user__invites_create_save" : MessageLookupByLibrary.simpleMessage("Gem"), + "user__invites_delete" : MessageLookupByLibrary.simpleMessage("Slet"), + "user__invites_edit_text" : MessageLookupByLibrary.simpleMessage("Redigér"), + "user__invites_email_hint" : MessageLookupByLibrary.simpleMessage("f.eks. janedoe@email.com"), + "user__invites_email_invite_text" : MessageLookupByLibrary.simpleMessage("Email invitation"), + "user__invites_email_send_text" : MessageLookupByLibrary.simpleMessage("Send"), + "user__invites_email_sent_text" : MessageLookupByLibrary.simpleMessage("Invitationsemail sendt"), + "user__invites_email_text" : MessageLookupByLibrary.simpleMessage("Email"), + "user__invites_invite_a_friend" : MessageLookupByLibrary.simpleMessage("Inviter en ven"), + "user__invites_invite_text" : MessageLookupByLibrary.simpleMessage("Invitation"), + "user__invites_joined_with" : m47, + "user__invites_none_left" : MessageLookupByLibrary.simpleMessage("Du har ingen invitationer tilbage."), + "user__invites_none_used" : MessageLookupByLibrary.simpleMessage("Du har tilsyneladende ikke brugt nogen invitation endnu."), + "user__invites_pending" : MessageLookupByLibrary.simpleMessage("verserende"), + "user__invites_pending_email" : m48, + "user__invites_pending_group_item_name" : MessageLookupByLibrary.simpleMessage("verserende invitation"), + "user__invites_pending_group_name" : MessageLookupByLibrary.simpleMessage("verserende invitationer"), + "user__invites_refresh" : MessageLookupByLibrary.simpleMessage("Opdater"), + "user__invites_share_email" : MessageLookupByLibrary.simpleMessage("Del invitation per email"), + "user__invites_share_email_desc" : MessageLookupByLibrary.simpleMessage("Vi skal sende en invitationsemail med instruktioner på dine vegne"), + "user__invites_share_yourself" : MessageLookupByLibrary.simpleMessage("Del selv invitation"), + "user__invites_share_yourself_desc" : MessageLookupByLibrary.simpleMessage("Vælg fra messaging apps etc."), + "user__invites_title" : MessageLookupByLibrary.simpleMessage("Mine invitationer"), + "user__language_settings_save" : MessageLookupByLibrary.simpleMessage("Gem"), + "user__language_settings_saved_success" : MessageLookupByLibrary.simpleMessage("Sprogændring succesfuld"), + "user__language_settings_title" : MessageLookupByLibrary.simpleMessage("Sprogindstillinger"), + "user__list_name_empty_error" : MessageLookupByLibrary.simpleMessage("Listenavn må ikke være tom"), + "user__list_name_range_error" : m49, + "user__million_postfix" : MessageLookupByLibrary.simpleMessage("mega"), + "user__profile_action_cancel_connection" : MessageLookupByLibrary.simpleMessage("Kald forspørgsel om forbindelse tilbage"), + "user__profile_action_deny_connection" : MessageLookupByLibrary.simpleMessage("Afvis forespørgsel om forbindelse"), + "user__profile_action_user_blocked" : MessageLookupByLibrary.simpleMessage("Bruger blokeret"), + "user__profile_action_user_unblocked" : MessageLookupByLibrary.simpleMessage("Blokering af bruger ophævet"), + "user__profile_bio_length_error" : m50, + "user__profile_location_length_error" : m51, + "user__profile_url_invalid_error" : MessageLookupByLibrary.simpleMessage("Angiv venligst en gyldig url!"), + "user__remove_account_from_list" : MessageLookupByLibrary.simpleMessage("Slet konto fra listen"), + "user__remove_account_from_list_success" : MessageLookupByLibrary.simpleMessage("Succes"), + "user__save_connection_circle_color_hint" : MessageLookupByLibrary.simpleMessage("(Tryk for at ændre)"), + "user__save_connection_circle_color_name" : MessageLookupByLibrary.simpleMessage("Farve"), + "user__save_connection_circle_create" : MessageLookupByLibrary.simpleMessage("Kreér kreds"), + "user__save_connection_circle_edit" : MessageLookupByLibrary.simpleMessage("Redigér kreds"), + "user__save_connection_circle_hint" : MessageLookupByLibrary.simpleMessage("fx venner, familie, arbejde."), + "user__save_connection_circle_name" : MessageLookupByLibrary.simpleMessage("Navn"), + "user__save_connection_circle_name_taken" : m52, + "user__save_connection_circle_save" : MessageLookupByLibrary.simpleMessage("Gem"), + "user__save_connection_circle_users" : MessageLookupByLibrary.simpleMessage("Brugere"), + "user__save_follows_list_create" : MessageLookupByLibrary.simpleMessage("Opret liste"), + "user__save_follows_list_edit" : MessageLookupByLibrary.simpleMessage("Redigér liste"), + "user__save_follows_list_emoji" : MessageLookupByLibrary.simpleMessage("Emoji"), + "user__save_follows_list_emoji_required_error" : MessageLookupByLibrary.simpleMessage("Emoji er krævet"), + "user__save_follows_list_hint_text" : MessageLookupByLibrary.simpleMessage("f.eks rejse, fotografi"), + "user__save_follows_list_name" : MessageLookupByLibrary.simpleMessage("Navn"), + "user__save_follows_list_name_taken" : m53, + "user__save_follows_list_save" : MessageLookupByLibrary.simpleMessage("Gem"), + "user__save_follows_list_users" : MessageLookupByLibrary.simpleMessage("Brugere"), + "user__thousand_postfix" : MessageLookupByLibrary.simpleMessage("kilo"), + "user__tile_delete" : MessageLookupByLibrary.simpleMessage("Slet"), + "user__tile_following" : MessageLookupByLibrary.simpleMessage(" · Følger"), + "user__timeline_filters_apply_all" : MessageLookupByLibrary.simpleMessage("Anvend filtre"), + "user__timeline_filters_circles" : MessageLookupByLibrary.simpleMessage("Kredse"), + "user__timeline_filters_clear_all" : MessageLookupByLibrary.simpleMessage("Slet alt"), + "user__timeline_filters_lists" : MessageLookupByLibrary.simpleMessage("Lister"), + "user__timeline_filters_no_match" : m54, + "user__timeline_filters_search_desc" : MessageLookupByLibrary.simpleMessage("Søger efter kredse og lister..."), + "user__timeline_filters_title" : MessageLookupByLibrary.simpleMessage("Tidslinjefiltre"), + "user__translate_see_translation" : MessageLookupByLibrary.simpleMessage("Se oversættelse"), + "user__translate_show_original" : MessageLookupByLibrary.simpleMessage("Vis originalet"), + "user__unblock_user" : MessageLookupByLibrary.simpleMessage("Fjern blokering af bruger"), + "user__uninvite" : MessageLookupByLibrary.simpleMessage("Kald indbydelse tilbage"), + "user__update_connection_circle_save" : MessageLookupByLibrary.simpleMessage("Gem"), + "user__update_connection_circle_updated" : MessageLookupByLibrary.simpleMessage("Kontakt opdateret"), + "user__update_connection_circles_title" : MessageLookupByLibrary.simpleMessage("Aktualisér kontakternes kredse"), + "user_search__cancel" : MessageLookupByLibrary.simpleMessage("Annuller"), + "user_search__communities" : MessageLookupByLibrary.simpleMessage("Fælleskaber"), + "user_search__list_no_results_found" : m55, + "user_search__list_refresh_text" : MessageLookupByLibrary.simpleMessage("Opdater"), + "user_search__list_retry" : MessageLookupByLibrary.simpleMessage("Tryk for at prøve igen."), + "user_search__list_search_text" : m56, + "user_search__no_communities_for" : m57, + "user_search__no_results_for" : m58, + "user_search__no_users_for" : m59, + "user_search__search_text" : MessageLookupByLibrary.simpleMessage("Søg..."), + "user_search__searching_for" : m60, + "user_search__users" : MessageLookupByLibrary.simpleMessage("Brugere"), + "video_picker__from_camera" : MessageLookupByLibrary.simpleMessage("Fra kamera"), + "video_picker__from_gallery" : MessageLookupByLibrary.simpleMessage("Fra galleri") + }; +} diff --git a/lib/locale/messages_de.dart b/lib/locale/messages_de.dart index 6ed5e326b..638d2ba53 100644 --- a/lib/locale/messages_de.dart +++ b/lib/locale/messages_de.dart @@ -3,22 +3,21 @@ // messages from the main program should be duplicated here with the same // function name. -// ignore_for_file: unnecessary_brace_in_string_interps +// Ignore issues from commonly used lints in this file. +// ignore_for_file:unnecessary_brace_in_string_interps, unnecessary_new +// ignore_for_file:prefer_single_quotes,comment_references, directives_ordering +// ignore_for_file:annotate_overrides,prefer_generic_function_type_aliases +// ignore_for_file:unused_import, file_names import 'package:intl/intl.dart'; import 'package:intl/message_lookup_by_library.dart'; -// ignore: unnecessary_new final messages = new MessageLookup(); -// ignore: unused_element -final _keepAnalysisHappy = Intl.defaultLocale; - -// ignore: non_constant_identifier_names -typedef MessageIfAbsent(String message_str, List args); +typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { - get localeName => 'de'; + String get localeName => 'de'; static m0(minLength, maxLength) => "(${minLength}-${maxLength} Zeichen)"; @@ -58,93 +57,113 @@ class MessageLookup extends MessageLookupByLibrary { static m18(currentUserLanguage) => "Sprache (${currentUserLanguage})"; - static m19(resourceCount, resourceName) => "Alle ${resourceCount} ${resourceName} anzeigen"; + static m19(limit) => "Datei zu groß (Limit: ${limit} MB)"; + + static m20(resourceCount, resourceName) => "Alle ${resourceCount} ${resourceName} anzeigen"; + + static m21(postCommentText) => "[name] [username] hat ebenfalls kommentiert: ${postCommentText}"; - static m20(postCommentText) => "[name] [username] hat ebenfalls kommentiert: ${postCommentText}"; + static m22(postCommentText) => "[name] [username] hat deinen Beitrag kommentiert: ${postCommentText}"; - static m21(postCommentText) => "[name] [username] hat deinen Beitrag kommentiert: ${postCommentText}"; + static m23(postCommentText) => "[name] [username] hat ebenfalls geantwortet: ${postCommentText}"; - static m22(postCommentText) => "[name] [username] hat ebenfalls geantwortet: ${postCommentText}"; + static m24(postCommentText) => "[name] [username] hat geantwortet: ${postCommentText}"; - static m23(postCommentText) => "[name] [username] hat geantwortet: ${postCommentText}"; + static m25(postCommentText) => "[name] [username] hat dich in einem Kommentar erwähnt: ${postCommentText}"; - static m24(postCommentText) => "[name] [username] hat dich in einem Kommentar erwähnt: ${postCommentText}"; + static m26(communityName) => "[name] [username] hat dich in die Community /c/${communityName} eingeladen."; - static m25(communityName) => "[name] [username] hat dich in die Community /c/${communityName} eingeladen."; + static m27(maxLength) => "Ein Kommentar darf nicht länger als ${maxLength} Zeichen lang sein."; - static m26(maxLength) => "Ein Kommentar darf nicht länger als ${maxLength} Zeichen lang sein."; + static m28(commentsCount) => "Alle ${commentsCount} Kommentare anzeigen"; - static m27(commentsCount) => "Alle ${commentsCount} Kommentare anzeigen"; + static m29(circlesSearchQuery) => "Keine Kreise mit \'${circlesSearchQuery}\' gefunden."; - static m28(circlesSearchQuery) => "\'Keine Kreise mit \'${circlesSearchQuery} \' gefunden."; + static m30(name) => "${name} hat noch nichts geteilt."; - static m29(name) => "${name} hat noch nichts geteilt."; + static m31(postCreatorUsername) => "@${postCreatorUsername}\'s Kreise"; - static m30(postCreatorUsername) => "@${postCreatorUsername}\'s Kreise"; + static m32(description) => "Fehler beim Erstellen der Vorschau mit Websitefehler: ${description}"; - static m31(maxLength) => "Der Name des Kreises darf nicht länger als ${maxLength} Zeichen lang sein."; + static m33(maxLength) => "Der Name des Kreises darf nicht länger als ${maxLength} Zeichen lang sein."; - static m32(prettyUsersCount) => "${prettyUsersCount} Personen"; + static m34(prettyUsersCount) => "${prettyUsersCount} Personen"; - static m33(username) => "Bist du dir sicher, dass du @${username} blockieren möchtest?"; + static m35(username) => "Bist du dir sicher, dass du @${username} blockieren möchtest?"; - static m34(userName) => "Verbindung mit ${userName} bestätigen"; + static m36(userName) => "Verbindung mit ${userName} bestätigen"; - static m35(userName) => "Mit ${userName} verbinden"; + static m37(userName) => "Mit ${userName} verbinden"; - static m36(userName) => "Verbindung mit ${userName} trennen"; + static m38(userName) => "Verbindung mit ${userName} trennen"; - static m37(limit) => "Bild ist zu groß (Max: ${limit} MB)"; + static m39(limit) => "Bild ist zu groß (Max: ${limit} MB)"; - static m38(username) => "Benutzername @${username} ist bereits vergeben"; + static m40(username) => "Benutzername @${username} ist bereits vergeben"; - static m39(searchQuery) => "Kein Emoji mit ${searchQuery} gefunden."; + static m41(searchQuery) => "Kein Emoji mit ${searchQuery} gefunden."; - static m40(searchQuery) => "Keine Liste zu \'${searchQuery}\' gefunden"; + static m42(searchQuery) => "Keine Liste zu \'${searchQuery}\' gefunden"; - static m41(prettyUsersCount) => "${prettyUsersCount} Accounts"; + static m43(prettyUsersCount) => "${prettyUsersCount} Accounts"; - static m42(prettyUsersCount) => "${prettyUsersCount} Accounts"; + static m44(prettyUsersCount) => "${prettyUsersCount} Accounts"; - static m43(groupName) => "Alle ${groupName} anzeigen"; + static m45(groupName) => "Alle ${groupName} anzeigen"; - static m44(iosLink, androidLink, inviteLink) => "Hey, ich möchte dich zu Okuna einladen. Erstens, lade die App auf iTunes (${iosLink}) oder im Play Store (${androidLink}) herunter. Zweitens, füge den personalisierten Einladungslink in das Formular \"Anmelden\" in der Okuna App ein: ${inviteLink}"; + static m46(iosLink, androidLink, inviteLink) => "Hey, ich möchte dich zu Okuna einladen. Erstens, lade die App auf iTunes (${iosLink}) oder im Play Store (${androidLink}) herunter. Zweitens, füge den personalisierten Einladungslink in das Formular \"Anmelden\" in der Okuna App ein: ${inviteLink}"; - static m45(username) => "Mit dem Benutzernamen @${username} beigetreten"; + static m47(username) => "Mit dem Benutzernamen @${username} beigetreten"; - static m46(email) => "Ausstehend, Einladung an ${email} gesendet"; + static m48(email) => "Ausstehend, Einladung an ${email} gesendet"; - static m47(maxLength) => "Der Listenname darf nicht länger als ${maxLength} Zeichen lang sein."; + static m49(maxLength) => "Der Listenname darf nicht länger als ${maxLength} Zeichen lang sein."; - static m48(maxLength) => "\'Über mich\' darf nicht länger als ${maxLength} Zeichen lang sein."; + static m50(maxLength) => "\'Über mich\' darf nicht länger als ${maxLength} Zeichen lang sein."; - static m49(maxLength) => "Ort darf nicht länger als ${maxLength} Zeichen lang sein."; + static m51(maxLength) => "Ort darf nicht länger als ${maxLength} Zeichen lang sein."; - static m50(takenConnectionsCircleName) => "Kreisname \'${takenConnectionsCircleName}\' bereits vergeben"; + static m52(takenConnectionsCircleName) => "Kreisname \'${takenConnectionsCircleName}\' bereits vergeben"; - static m51(listName) => "Name der Liste ${listName} bereits vergeben"; + static m53(listName) => "Name der Liste ${listName} bereits vergeben"; - static m52(searchQuery) => "Keine Ergebnisse für ${searchQuery}."; + static m54(searchQuery) => "Keine Ergebnisse für ${searchQuery}."; - static m53(resourcePluralName) => "Keine ${resourcePluralName} gefunden."; + static m55(resourcePluralName) => "Keine ${resourcePluralName} gefunden."; - static m54(resourcePluralName) => "Suche ${resourcePluralName} ..."; + static m56(resourcePluralName) => "Suche ${resourcePluralName} ..."; - static m55(searchQuery) => "Keine Communities zu \'${searchQuery}\' gefunden."; + static m57(searchQuery) => "Keine Communities zu \'${searchQuery}\' gefunden."; - static m56(searchQuery) => "Keine Suchergebnisse für \'${searchQuery}\'."; + static m58(searchQuery) => "Keine Suchergebnisse für \'${searchQuery}\'."; - static m57(searchQuery) => "Keine Benutzer für \'${searchQuery}\' gefunden."; + static m59(searchQuery) => "Keine Benutzer für \'${searchQuery}\' gefunden."; - static m58(searchQuery) => "Suche nach ${searchQuery}"; + static m60(searchQuery) => "Suche nach ${searchQuery}"; final messages = _notInlinedMessages(_notInlinedMessages); static _notInlinedMessages(_) => { + "application_settings__comment_sort_newest_first" : MessageLookupByLibrary.simpleMessage("Neueste zuerst"), + "application_settings__comment_sort_oldest_first" : MessageLookupByLibrary.simpleMessage("Älteste zuerst"), + "application_settings__link_previews" : MessageLookupByLibrary.simpleMessage("Link-Vorschau"), + "application_settings__link_previews_autoplay_always" : MessageLookupByLibrary.simpleMessage("Immer"), + "application_settings__link_previews_autoplay_never" : MessageLookupByLibrary.simpleMessage("Nie"), + "application_settings__link_previews_autoplay_wifi_only" : MessageLookupByLibrary.simpleMessage("Nur WiFi"), + "application_settings__link_previews_show" : MessageLookupByLibrary.simpleMessage("Anzeigen"), + "application_settings__tap_to_change" : MessageLookupByLibrary.simpleMessage("(Zum Ändern tippen)"), + "application_settings__videos" : MessageLookupByLibrary.simpleMessage("Videos"), + "application_settings__videos_autoplay" : MessageLookupByLibrary.simpleMessage("Autoplay"), + "application_settings__videos_autoplay_always" : MessageLookupByLibrary.simpleMessage("Immer"), + "application_settings__videos_autoplay_never" : MessageLookupByLibrary.simpleMessage("Nie"), + "application_settings__videos_autoplay_wifi_only" : MessageLookupByLibrary.simpleMessage("Nur WLAN"), + "application_settings__videos_sound" : MessageLookupByLibrary.simpleMessage("Sound"), + "application_settings__videos_sound_disabled" : MessageLookupByLibrary.simpleMessage("Deaktiviert"), + "application_settings__videos_sound_enabled" : MessageLookupByLibrary.simpleMessage("Aktiviert"), "auth__change_password_current_pwd" : MessageLookupByLibrary.simpleMessage("Aktuelles Passwort"), "auth__change_password_current_pwd_hint" : MessageLookupByLibrary.simpleMessage("Gib dein aktuelles Passwort ein"), - "auth__change_password_current_pwd_incorrect" : MessageLookupByLibrary.simpleMessage("Eingegebenes Passwort war falsch"), + "auth__change_password_current_pwd_incorrect" : MessageLookupByLibrary.simpleMessage("Falsches Passwort"), "auth__change_password_new_pwd" : MessageLookupByLibrary.simpleMessage("Neues Passwort"), - "auth__change_password_new_pwd_error" : MessageLookupByLibrary.simpleMessage("Bitte stelle sicher, dass das Passwort zwischen 10 und 100 Zeichen lang ist"), + "auth__change_password_new_pwd_error" : MessageLookupByLibrary.simpleMessage("Dein Passwort muss zwischen 10 und 100 Zeichen lang sein"), "auth__change_password_new_pwd_hint" : MessageLookupByLibrary.simpleMessage("Neues Passwort eingeben"), "auth__change_password_save_success" : MessageLookupByLibrary.simpleMessage("Alles gut! Dein Passwort wurde aktualisiert"), "auth__change_password_save_text" : MessageLookupByLibrary.simpleMessage("Speichern"), @@ -181,7 +200,7 @@ class MessageLookup extends MessageLookupByLibrary { "auth__create_acc__password_empty_error" : MessageLookupByLibrary.simpleMessage("😱 Dein Passwort darf nicht leer sein"), "auth__create_acc__password_length_error" : MessageLookupByLibrary.simpleMessage("😅 Ein Passwort muss zwischen 8 und 64 Zeichen lang sein."), "auth__create_acc__paste_link" : MessageLookupByLibrary.simpleMessage("Füge deinen Registrierungslink unten ein"), - "auth__create_acc__paste_link_help_text" : MessageLookupByLibrary.simpleMessage("Benutze den Link von dem \"Join Okuna\" Button in deiner Einladungs-E-Mail."), + "auth__create_acc__paste_link_help_text" : MessageLookupByLibrary.simpleMessage("Benutze den Link von dem Button \"Okuna beitreten\" in deiner Einladungs-E-Mail."), "auth__create_acc__paste_password_reset_link" : MessageLookupByLibrary.simpleMessage("Link zum Zurücksetzen des Passworts unten einfügen"), "auth__create_acc__previous" : MessageLookupByLibrary.simpleMessage("Zurück"), "auth__create_acc__register" : MessageLookupByLibrary.simpleMessage("Registrieren"), @@ -216,8 +235,8 @@ class MessageLookup extends MessageLookupByLibrary { "auth__email_invalid_error" : MessageLookupByLibrary.simpleMessage("Bitte gib eine gültige E-Mail an."), "auth__headline" : MessageLookupByLibrary.simpleMessage("Better social."), "auth__login" : MessageLookupByLibrary.simpleMessage("Anmelden"), - "auth__login__connection_error" : MessageLookupByLibrary.simpleMessage("Wir können unsere Server nicht erreichen. Ist eine Verbindung zum Internet vorhanden?"), - "auth__login__credentials_mismatch_error" : MessageLookupByLibrary.simpleMessage("Die angegebenen Anmeldedaten stimmen nicht überein."), + "auth__login__connection_error" : MessageLookupByLibrary.simpleMessage("Wir können unsere Server nicht erreichen. Bist du mit dem Internet verbunden?"), + "auth__login__credentials_mismatch_error" : MessageLookupByLibrary.simpleMessage("Die Zugangsdaten sind ungültig."), "auth__login__email_label" : MessageLookupByLibrary.simpleMessage("E-Mail"), "auth__login__forgot_password" : MessageLookupByLibrary.simpleMessage("Passwort vergessen"), "auth__login__forgot_password_subtitle" : MessageLookupByLibrary.simpleMessage("Benutzername oder E-Mail eingeben"), @@ -227,7 +246,7 @@ class MessageLookup extends MessageLookupByLibrary { "auth__login__password_label" : MessageLookupByLibrary.simpleMessage("Passwort"), "auth__login__password_length_error" : MessageLookupByLibrary.simpleMessage("Das Passwort muss zwischen 8 und 64 Zeichen lang sein."), "auth__login__previous" : MessageLookupByLibrary.simpleMessage("Zurück"), - "auth__login__server_error" : MessageLookupByLibrary.simpleMessage("Oh oh.. Wir haben Serverprobleme. Bitte versuche es in wenigen Minuten erneut."), + "auth__login__server_error" : MessageLookupByLibrary.simpleMessage("Oh oh.. Wir haben Serverprobleme. Bitte versuche es später noch einmal."), "auth__login__subtitle" : MessageLookupByLibrary.simpleMessage("Gib deine Anmeldedaten ein, um fortzufahren."), "auth__login__title" : MessageLookupByLibrary.simpleMessage("Willkommen zurück!"), "auth__login__username_characters_error" : MessageLookupByLibrary.simpleMessage("Benutzername kann nur alphanumerische Zeichen und Unterstriche enthalten."), @@ -239,7 +258,7 @@ class MessageLookup extends MessageLookupByLibrary { "auth__password_empty_error" : MessageLookupByLibrary.simpleMessage("Passwort darf nicht leer sein."), "auth__password_range_error" : m3, "auth__reset_password_success_info" : MessageLookupByLibrary.simpleMessage("Dein Passwort wurde erfolgreich aktualisiert"), - "auth__reset_password_success_title" : MessageLookupByLibrary.simpleMessage("Fertig!"), + "auth__reset_password_success_title" : MessageLookupByLibrary.simpleMessage("Alles erledigt!"), "auth__username_characters_error" : MessageLookupByLibrary.simpleMessage("Ein Benutzername kann nur alphanumerische Zeichen und Unterstriche enthalten."), "auth__username_empty_error" : MessageLookupByLibrary.simpleMessage("Benutzername darf nicht leer sein."), "auth__username_maxlength_error" : m4, @@ -305,7 +324,7 @@ class MessageLookup extends MessageLookupByLibrary { "community__manage_banned_title" : MessageLookupByLibrary.simpleMessage("Gesperrte Benutzer"), "community__manage_closed_posts_desc" : MessageLookupByLibrary.simpleMessage("Geschlossene Beiträge anzeigen und bearbeiten"), "community__manage_closed_posts_title" : MessageLookupByLibrary.simpleMessage("Geschlossene Beiträge"), - "community__manage_delete_desc" : MessageLookupByLibrary.simpleMessage("Community für immer löschen."), + "community__manage_delete_desc" : MessageLookupByLibrary.simpleMessage("Community endgültig löschen."), "community__manage_delete_title" : MessageLookupByLibrary.simpleMessage("Community löschen"), "community__manage_details_desc" : MessageLookupByLibrary.simpleMessage("Ändere den Titel, Namen, Avatar, Cover-Foto und mehr."), "community__manage_details_title" : MessageLookupByLibrary.simpleMessage("Details"), @@ -344,6 +363,7 @@ class MessageLookup extends MessageLookupByLibrary { "community__posts" : MessageLookupByLibrary.simpleMessage("Beiträge"), "community__refresh_text" : MessageLookupByLibrary.simpleMessage("Aktualisieren"), "community__refreshing" : MessageLookupByLibrary.simpleMessage("Community neu laden"), + "community__retry_loading_posts" : MessageLookupByLibrary.simpleMessage("Zum Wiederholen tippen"), "community__rules_empty_error" : MessageLookupByLibrary.simpleMessage("Regeln dürfen nicht leer sein."), "community__rules_range_error" : m14, "community__rules_text" : MessageLookupByLibrary.simpleMessage("Regeln"), @@ -367,7 +387,7 @@ class MessageLookup extends MessageLookupByLibrary { "community__save_community_name_label_type" : MessageLookupByLibrary.simpleMessage("Typ"), "community__save_community_name_label_type_hint_text" : MessageLookupByLibrary.simpleMessage("(Zum Ändern tippen)"), "community__save_community_name_member_invites" : MessageLookupByLibrary.simpleMessage("Mitglieder-Einladungen"), - "community__save_community_name_member_invites_subtitle" : MessageLookupByLibrary.simpleMessage("Mitglieder können Personen in die Community einladen"), + "community__save_community_name_member_invites_subtitle" : MessageLookupByLibrary.simpleMessage("Mitglieder können andere in die Community einladen"), "community__save_community_name_taken" : m15, "community__save_community_name_title" : MessageLookupByLibrary.simpleMessage("Name"), "community__save_community_name_title_hint_text" : MessageLookupByLibrary.simpleMessage(" z.B. Reisen, Fotografie, Gaming."), @@ -380,11 +400,11 @@ class MessageLookup extends MessageLookupByLibrary { "community__trending_refresh" : MessageLookupByLibrary.simpleMessage("Aktualisieren"), "community__type_private" : MessageLookupByLibrary.simpleMessage("Privat"), "community__type_public" : MessageLookupByLibrary.simpleMessage("Öffentlich"), - "community__unfavorite_action" : MessageLookupByLibrary.simpleMessage("Community von Favoriten löschen"), + "community__unfavorite_action" : MessageLookupByLibrary.simpleMessage("Community aus Favoriten entfernen"), "community__user_you_text" : MessageLookupByLibrary.simpleMessage("Du"), "community__yes" : MessageLookupByLibrary.simpleMessage("Ja"), "contextual_account_search_box__suggestions" : MessageLookupByLibrary.simpleMessage("Vorschläge"), - "drawer__account_settings" : MessageLookupByLibrary.simpleMessage("Accounteinstellungen"), + "drawer__account_settings" : MessageLookupByLibrary.simpleMessage("Account-Einstellungen"), "drawer__account_settings_blocked_users" : MessageLookupByLibrary.simpleMessage("Blockierte Benutzer"), "drawer__account_settings_change_email" : MessageLookupByLibrary.simpleMessage("E-Mail ändern"), "drawer__account_settings_change_password" : MessageLookupByLibrary.simpleMessage("Passwort ändern"), @@ -396,6 +416,7 @@ class MessageLookup extends MessageLookupByLibrary { "drawer__application_settings" : MessageLookupByLibrary.simpleMessage("App-Einstellungen"), "drawer__connections" : MessageLookupByLibrary.simpleMessage("Meine Verbindungen"), "drawer__customize" : MessageLookupByLibrary.simpleMessage("Anpassen"), + "drawer__developer_settings" : MessageLookupByLibrary.simpleMessage("Entwicklereinstellungen"), "drawer__global_moderation" : MessageLookupByLibrary.simpleMessage("Globale Moderation"), "drawer__help" : MessageLookupByLibrary.simpleMessage("Support & Feedback"), "drawer__lists" : MessageLookupByLibrary.simpleMessage("Meine Listen"), @@ -413,37 +434,40 @@ class MessageLookup extends MessageLookupByLibrary { "drawer__settings" : MessageLookupByLibrary.simpleMessage("Einstellungen"), "drawer__themes" : MessageLookupByLibrary.simpleMessage("Designs"), "drawer__useful_links_guidelines" : MessageLookupByLibrary.simpleMessage("Okuna-Richtlinien"), - "drawer__useful_links_guidelines_bug_tracker" : MessageLookupByLibrary.simpleMessage("Fehlerverfolgung"), + "drawer__useful_links_guidelines_bug_tracker" : MessageLookupByLibrary.simpleMessage("Bug-Tracker"), "drawer__useful_links_guidelines_bug_tracker_desc" : MessageLookupByLibrary.simpleMessage("Melde einen Fehler oder gib bereits gemeldeten Fehlern mehr Priorität"), "drawer__useful_links_guidelines_desc" : MessageLookupByLibrary.simpleMessage("Regeln, die wir alle für ein gutes und freundliches Miteinander befolgen sollten."), "drawer__useful_links_guidelines_feature_requests" : MessageLookupByLibrary.simpleMessage("Feature-Anfragen"), "drawer__useful_links_guidelines_feature_requests_desc" : MessageLookupByLibrary.simpleMessage("Schlage neue Funktionen vor oder stimme für bestehende Vorschläge ab"), "drawer__useful_links_guidelines_github" : MessageLookupByLibrary.simpleMessage("Github Projektboard"), - "drawer__useful_links_guidelines_github_desc" : MessageLookupByLibrary.simpleMessage("Wirf einen Blick auf das, woran wir gerade arbeiten"), - "drawer__useful_links_guidelines_handbook" : MessageLookupByLibrary.simpleMessage("Okuna Benutzerhandbuch"), + "drawer__useful_links_guidelines_github_desc" : MessageLookupByLibrary.simpleMessage("Sieh dir an, woran wir gerade arbeiten"), + "drawer__useful_links_guidelines_handbook" : MessageLookupByLibrary.simpleMessage("Okuna Handbuch"), "drawer__useful_links_guidelines_handbook_desc" : MessageLookupByLibrary.simpleMessage("Ein Benutzerhandbuch mit allem, was man wissen muss, um Okuna zu nutzen"), "drawer__useful_links_slack_channel" : MessageLookupByLibrary.simpleMessage("Community Slack Channel"), "drawer__useful_links_slack_channel_desc" : MessageLookupByLibrary.simpleMessage("Hier kann man sich über Okuna austauschen"), - "drawer__useful_links_support" : MessageLookupByLibrary.simpleMessage("Okuna unterstützen"), + "drawer__useful_links_support" : MessageLookupByLibrary.simpleMessage("Unterstütze Okuna"), "drawer__useful_links_support_desc" : MessageLookupByLibrary.simpleMessage("Finde einen Weg, wie Du uns auf unserer Reise unterstützen kannst!"), "drawer__useful_links_title" : MessageLookupByLibrary.simpleMessage("Nützliche Links"), "error__no_internet_connection" : MessageLookupByLibrary.simpleMessage("Keine Internetverbindung"), "error__unknown_error" : MessageLookupByLibrary.simpleMessage("Unbekannter Fehler"), + "image_picker__error_too_large" : m19, + "image_picker__from_camera" : MessageLookupByLibrary.simpleMessage("Von der Kamera"), + "image_picker__from_gallery" : MessageLookupByLibrary.simpleMessage("Aus der Galerie"), "moderation__actions_chat_with_team" : MessageLookupByLibrary.simpleMessage("Chatte mit dem Team"), "moderation__actions_review" : MessageLookupByLibrary.simpleMessage("Überprüfen"), "moderation__category_text" : MessageLookupByLibrary.simpleMessage("Kategorie"), - "moderation__community_moderated_objects" : MessageLookupByLibrary.simpleMessage("Moderierte Objekte"), + "moderation__community_moderated_objects" : MessageLookupByLibrary.simpleMessage("Gemeldete Elemente der Community"), "moderation__community_review_approve" : MessageLookupByLibrary.simpleMessage("Bestätigen"), "moderation__community_review_item_verified" : MessageLookupByLibrary.simpleMessage("Dieses Element wurde überprüft"), - "moderation__community_review_object" : MessageLookupByLibrary.simpleMessage("Objekt"), - "moderation__community_review_reject" : MessageLookupByLibrary.simpleMessage("zurückweisen"), - "moderation__community_review_title" : MessageLookupByLibrary.simpleMessage("Moderiertes Objekt überprüfen"), + "moderation__community_review_object" : MessageLookupByLibrary.simpleMessage("Element"), + "moderation__community_review_reject" : MessageLookupByLibrary.simpleMessage("Ablehnen"), + "moderation__community_review_title" : MessageLookupByLibrary.simpleMessage("Gemeldetes Element überprüfen"), "moderation__confirm_report_community_reported" : MessageLookupByLibrary.simpleMessage("Community gemeldet"), "moderation__confirm_report_item_reported" : MessageLookupByLibrary.simpleMessage("Element gemeldet"), "moderation__confirm_report_post_comment_reported" : MessageLookupByLibrary.simpleMessage("Kommentar gemeldet"), "moderation__confirm_report_post_reported" : MessageLookupByLibrary.simpleMessage("Beitrag gemeldet"), "moderation__confirm_report_provide_details" : MessageLookupByLibrary.simpleMessage("Kannst du zusätzliche Details angeben, die für den Bericht relevant sein könnten?"), - "moderation__confirm_report_provide_happen_next" : MessageLookupByLibrary.simpleMessage("Hier ist, was als nächstes passieren wird:"), + "moderation__confirm_report_provide_happen_next" : MessageLookupByLibrary.simpleMessage("Das passiert als nächstes:"), "moderation__confirm_report_provide_happen_next_desc" : MessageLookupByLibrary.simpleMessage("- Dein Bericht wird anonym übermittelt. \n- Wenn du einen Beitrag oder Kommentar meldest, wird der Bericht an die Okuna-Mitarbeiter und ggf. an die Community-Moderatoren gesendet und der Beitrag wird in deinem Feed ausgeblendet. \n- Wenn du ein Account oder eine Community meldest, wird dies an die Okuna-Mitarbeiter gesendet. \n- Wir werden das überprüfen und wenn es bestätigt wird, werden die Inhalte gelöscht und Strafen für die betroffenen Personen verhängt. Diese reichen von einer vorübergehenden Sperrung bis zur Löschung des Accounts - je nach Schwere der Überschreitung. \n- Wenn sich herausstellt, dass die Meldung in dem Versuch erstellt wurde, einem anderen Mitglied oder einer Community auf der Plattform ohne Verletzung des angegebenen Grundes Schaden zuzufügen, werden Strafen gegenüber dir verhängt.\n"), "moderation__confirm_report_provide_optional_hint_text" : MessageLookupByLibrary.simpleMessage("Schreibe hier..."), "moderation__confirm_report_provide_optional_info" : MessageLookupByLibrary.simpleMessage("(Optional)"), @@ -451,42 +475,42 @@ class MessageLookup extends MessageLookupByLibrary { "moderation__confirm_report_title" : MessageLookupByLibrary.simpleMessage("Bericht einreichen"), "moderation__confirm_report_user_reported" : MessageLookupByLibrary.simpleMessage("Benutzer gemeldet"), "moderation__description_text" : MessageLookupByLibrary.simpleMessage("Beschreibung"), - "moderation__filters_apply" : MessageLookupByLibrary.simpleMessage("Filter anwenden"), + "moderation__filters_apply" : MessageLookupByLibrary.simpleMessage("Anwenden"), "moderation__filters_other" : MessageLookupByLibrary.simpleMessage("Sonstige"), "moderation__filters_reset" : MessageLookupByLibrary.simpleMessage("Zurücksetzen"), "moderation__filters_status" : MessageLookupByLibrary.simpleMessage("Status"), "moderation__filters_title" : MessageLookupByLibrary.simpleMessage("Moderationsfilter"), "moderation__filters_type" : MessageLookupByLibrary.simpleMessage("Typ"), "moderation__filters_verified" : MessageLookupByLibrary.simpleMessage("Verifiziert"), - "moderation__global_review_object_text" : MessageLookupByLibrary.simpleMessage("Objekt"), - "moderation__global_review_title" : MessageLookupByLibrary.simpleMessage("Moderiertes Objekt überprüfen"), - "moderation__global_review_unverify_text" : MessageLookupByLibrary.simpleMessage("Bestätigung aufheben"), - "moderation__global_review_verify_text" : MessageLookupByLibrary.simpleMessage("Bestätigen"), - "moderation__globally_moderated_objects" : MessageLookupByLibrary.simpleMessage("Global moderierte Objekte"), + "moderation__global_review_object_text" : MessageLookupByLibrary.simpleMessage("Element"), + "moderation__global_review_title" : MessageLookupByLibrary.simpleMessage("Gemeldetes Element überprüfen"), + "moderation__global_review_unverify_text" : MessageLookupByLibrary.simpleMessage("Unverify"), + "moderation__global_review_verify_text" : MessageLookupByLibrary.simpleMessage("Verify"), + "moderation__globally_moderated_objects" : MessageLookupByLibrary.simpleMessage("Global gemeldete Elemente"), "moderation__moderated_object_false_text" : MessageLookupByLibrary.simpleMessage("Falsch"), - "moderation__moderated_object_reports_count" : MessageLookupByLibrary.simpleMessage("Anzahl der Berichte"), + "moderation__moderated_object_reports_count" : MessageLookupByLibrary.simpleMessage("Anzahl der Meldungen"), "moderation__moderated_object_status" : MessageLookupByLibrary.simpleMessage("Status"), - "moderation__moderated_object_title" : MessageLookupByLibrary.simpleMessage("Objekt"), + "moderation__moderated_object_title" : MessageLookupByLibrary.simpleMessage("Element"), "moderation__moderated_object_true_text" : MessageLookupByLibrary.simpleMessage("Wahr"), - "moderation__moderated_object_verified" : MessageLookupByLibrary.simpleMessage("Verifiziert"), - "moderation__moderated_object_verified_by_staff" : MessageLookupByLibrary.simpleMessage("Verifiziert durch Okuna-Mitarbeiter"), + "moderation__moderated_object_verified" : MessageLookupByLibrary.simpleMessage("Geprüft"), + "moderation__moderated_object_verified_by_staff" : MessageLookupByLibrary.simpleMessage("Geprüft durch das Okuna-Team"), "moderation__my_moderation_penalties_resouce_singular" : MessageLookupByLibrary.simpleMessage("gegen mich verhängte Strafe"), "moderation__my_moderation_penalties_resource_plural" : MessageLookupByLibrary.simpleMessage("gegen mich verhängte Strafen"), "moderation__my_moderation_penalties_title" : MessageLookupByLibrary.simpleMessage("Meine Strafen"), - "moderation__my_moderation_tasks_title" : MessageLookupByLibrary.simpleMessage("Offene Moderatoraufgaben"), + "moderation__my_moderation_tasks_title" : MessageLookupByLibrary.simpleMessage("Offene Moderationsaufgaben"), "moderation__no_description_text" : MessageLookupByLibrary.simpleMessage("Keine Beschreibung"), "moderation__object_status_title" : MessageLookupByLibrary.simpleMessage("Status"), - "moderation__pending_moderation_tasks_plural" : MessageLookupByLibrary.simpleMessage("offene Moderatoraufgaben"), - "moderation__pending_moderation_tasks_singular" : MessageLookupByLibrary.simpleMessage("offene Moderatoraufgabe"), - "moderation__report_account_text" : MessageLookupByLibrary.simpleMessage("Account melden"), + "moderation__pending_moderation_tasks_plural" : MessageLookupByLibrary.simpleMessage("offenen Moderationsaufgaben"), + "moderation__pending_moderation_tasks_singular" : MessageLookupByLibrary.simpleMessage("offene Moderationsaufgabe"), + "moderation__report_account_text" : MessageLookupByLibrary.simpleMessage("Benutzer melden"), "moderation__report_comment_text" : MessageLookupByLibrary.simpleMessage("Kommentar melden"), "moderation__report_community_text" : MessageLookupByLibrary.simpleMessage("Community melden"), "moderation__report_post_text" : MessageLookupByLibrary.simpleMessage("Beitrag melden"), "moderation__reporter_text" : MessageLookupByLibrary.simpleMessage("Meldender"), "moderation__reports_preview_resource_reports" : MessageLookupByLibrary.simpleMessage("Berichte"), "moderation__reports_preview_title" : MessageLookupByLibrary.simpleMessage("Berichte"), - "moderation__reports_see_all" : m19, - "moderation__tap_to_retry" : MessageLookupByLibrary.simpleMessage("Tippe hier, um das Laden von Elementen zu wiederholen"), + "moderation__reports_see_all" : m20, + "moderation__tap_to_retry" : MessageLookupByLibrary.simpleMessage("Tippe hier, um neu zu laden"), "moderation__update_category_save" : MessageLookupByLibrary.simpleMessage("Speichern"), "moderation__update_category_title" : MessageLookupByLibrary.simpleMessage("Kategorie aktualisieren"), "moderation__update_description_report_desc" : MessageLookupByLibrary.simpleMessage("Beschreibung melden"), @@ -500,14 +524,14 @@ class MessageLookup extends MessageLookupByLibrary { "moderation__you_have_reported_community_text" : MessageLookupByLibrary.simpleMessage("Du hast diese Community gemeldet"), "moderation__you_have_reported_post_text" : MessageLookupByLibrary.simpleMessage("Du hast diesen Beitrag gemeldet"), "notifications__accepted_connection_request_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] hat deine Verbindungsanfrage angenommen."), - "notifications__comment_comment_notification_tile_user_also_commented" : m20, - "notifications__comment_comment_notification_tile_user_commented" : m21, - "notifications__comment_desc" : MessageLookupByLibrary.simpleMessage("Werde benachrichtigt, wenn jemand auf einen deiner Beiträge oder einen auf den du ebenfalls kommentiert hast, kommentiert"), + "notifications__comment_comment_notification_tile_user_also_commented" : m21, + "notifications__comment_comment_notification_tile_user_commented" : m22, + "notifications__comment_desc" : MessageLookupByLibrary.simpleMessage("Werde benachrichtigt, wenn jemand einen deiner Beiträge oder einen von dir kommentierten Beitrag kommentiert"), "notifications__comment_reaction_desc" : MessageLookupByLibrary.simpleMessage("Werde benachrichtigt, wenn jemand auf einen deiner Kommentare reagiert"), "notifications__comment_reaction_title" : MessageLookupByLibrary.simpleMessage("Kommentar-Reaktionen"), "notifications__comment_reply_desc" : MessageLookupByLibrary.simpleMessage("Werde benachrichtigt, wenn jemand auf deinen Kommentar, oder auf einen, auf den du auch geantwortet hast, antwortet"), - "notifications__comment_reply_notification_tile_user_also_replied" : m22, - "notifications__comment_reply_notification_tile_user_replied" : m23, + "notifications__comment_reply_notification_tile_user_also_replied" : m23, + "notifications__comment_reply_notification_tile_user_replied" : m24, "notifications__comment_reply_title" : MessageLookupByLibrary.simpleMessage("Kommentar-Antworten"), "notifications__comment_title" : MessageLookupByLibrary.simpleMessage("Kommentare auf Beiträge"), "notifications__comment_user_mention_desc" : MessageLookupByLibrary.simpleMessage("Werde benachrichtigt, wenn dich jemand in einem Kommentar erwähnt"), @@ -522,7 +546,7 @@ class MessageLookup extends MessageLookupByLibrary { "notifications__following_you_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] folgt dir jetzt."), "notifications__general_desc" : MessageLookupByLibrary.simpleMessage("Werde benachrichtigt, wenn etwas passiert"), "notifications__general_title" : MessageLookupByLibrary.simpleMessage("Benachrichtigungen"), - "notifications__mentioned_in_post_comment_tile" : m24, + "notifications__mentioned_in_post_comment_tile" : m25, "notifications__mentioned_in_post_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] hat dich in einem Beitrag erwähnt."), "notifications__mute_post_turn_off_post_comment_notifications" : MessageLookupByLibrary.simpleMessage("Kommentar-Benachrichtigungen deaktivieren"), "notifications__mute_post_turn_off_post_notifications" : MessageLookupByLibrary.simpleMessage("Beitrags-Benachrichtigungen deaktivieren"), @@ -535,7 +559,9 @@ class MessageLookup extends MessageLookupByLibrary { "notifications__reacted_to_post_comment_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] hat auf deinen Kommentar reagiert."), "notifications__reacted_to_post_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] hat auf deinen Beitrag reagiert."), "notifications__settings_title" : MessageLookupByLibrary.simpleMessage("Benachrichtigungen"), - "notifications__user_community_invite_tile" : m25, + "notifications__tab_general" : MessageLookupByLibrary.simpleMessage("Allgemein"), + "notifications__tab_requests" : MessageLookupByLibrary.simpleMessage("Anfragen"), + "notifications__user_community_invite_tile" : m26, "post__action_comment" : MessageLookupByLibrary.simpleMessage("Kommentar"), "post__action_react" : MessageLookupByLibrary.simpleMessage("Reagieren"), "post__action_reply" : MessageLookupByLibrary.simpleMessage("Antworten"), @@ -547,24 +573,25 @@ class MessageLookup extends MessageLookupByLibrary { "post__actions_report_text" : MessageLookupByLibrary.simpleMessage("Melden"), "post__actions_reported_text" : MessageLookupByLibrary.simpleMessage("Gemeldet"), "post__actions_show_more_text" : MessageLookupByLibrary.simpleMessage("Mehr anzeigen"), + "post__close_create_post_label" : MessageLookupByLibrary.simpleMessage("Beitragserstellung abbrechen"), "post__close_post" : MessageLookupByLibrary.simpleMessage("Beitrag schließen"), - "post__comment_maxlength_error" : m26, + "post__comment_maxlength_error" : m27, "post__comment_reply_expanded_post" : MessageLookupByLibrary.simpleMessage("Teilen"), - "post__comment_reply_expanded_reply_comment" : MessageLookupByLibrary.simpleMessage("Kommentar beantworten"), + "post__comment_reply_expanded_reply_comment" : MessageLookupByLibrary.simpleMessage("Auf Kommentar antworten"), "post__comment_reply_expanded_reply_hint_text" : MessageLookupByLibrary.simpleMessage("Deine Antwort..."), "post__comment_required_error" : MessageLookupByLibrary.simpleMessage("Kommentar darf nicht leer sein."), "post__commenter_expanded_edit_comment" : MessageLookupByLibrary.simpleMessage("Kommentar bearbeiten"), - "post__commenter_expanded_join_conversation" : MessageLookupByLibrary.simpleMessage("Einer Konversation beitreten.."), + "post__commenter_expanded_join_conversation" : MessageLookupByLibrary.simpleMessage("Beteilige dich an der Unterhaltung..."), "post__commenter_expanded_save" : MessageLookupByLibrary.simpleMessage("Speichern"), - "post__commenter_expanded_start_conversation" : MessageLookupByLibrary.simpleMessage("Beginne das Gespräch.."), + "post__commenter_expanded_start_conversation" : MessageLookupByLibrary.simpleMessage("Beginne eine Unterhaltung..."), "post__commenter_post_text" : MessageLookupByLibrary.simpleMessage("Teilen"), "post__commenter_write_something" : MessageLookupByLibrary.simpleMessage("Schreibe etwas..."), "post__comments_closed_post" : MessageLookupByLibrary.simpleMessage("Geschlossener Beitrag"), "post__comments_disabled" : MessageLookupByLibrary.simpleMessage("Kommentare deaktiviert"), "post__comments_disabled_message" : MessageLookupByLibrary.simpleMessage("Kommentare für diesen Beitrag deaktiviert"), "post__comments_enabled_message" : MessageLookupByLibrary.simpleMessage("Kommentare für diesen Beitrag aktiviert"), - "post__comments_header_be_the_first_comments" : MessageLookupByLibrary.simpleMessage("Sei der Erste, der kommentiert"), - "post__comments_header_be_the_first_replies" : MessageLookupByLibrary.simpleMessage("Sei der Erste, der antwortet"), + "post__comments_header_be_the_first_comments" : MessageLookupByLibrary.simpleMessage("Schreibe den ersten Kommentar"), + "post__comments_header_be_the_first_replies" : MessageLookupByLibrary.simpleMessage("Schreibe die erste Antwort"), "post__comments_header_newer" : MessageLookupByLibrary.simpleMessage("Neuere"), "post__comments_header_newest_comments" : MessageLookupByLibrary.simpleMessage("Neuste Kommentare"), "post__comments_header_newest_replies" : MessageLookupByLibrary.simpleMessage("Neueste Antworten"), @@ -585,19 +612,22 @@ class MessageLookup extends MessageLookupByLibrary { "post__comments_page_tap_to_retry" : MessageLookupByLibrary.simpleMessage("Kommentare neu laden."), "post__comments_page_tap_to_retry_replies" : MessageLookupByLibrary.simpleMessage("Antworten neu laden."), "post__comments_page_title" : MessageLookupByLibrary.simpleMessage("Kommentare"), - "post__comments_view_all_comments" : m27, + "post__comments_view_all_comments" : m28, "post__create_new" : MessageLookupByLibrary.simpleMessage("Neuer Beitrag"), + "post__create_new_community_post_label" : MessageLookupByLibrary.simpleMessage("Neuen Community-Beitrag erstellen"), + "post__create_new_post_label" : MessageLookupByLibrary.simpleMessage("Neuen Beitrag erstellen"), "post__create_next" : MessageLookupByLibrary.simpleMessage("Weiter"), "post__create_photo" : MessageLookupByLibrary.simpleMessage("Foto"), - "post__disable_post_comments" : MessageLookupByLibrary.simpleMessage("Kommentare für Beiträge deaktivieren"), + "post__create_video" : MessageLookupByLibrary.simpleMessage("Video"), + "post__disable_post_comments" : MessageLookupByLibrary.simpleMessage("Kommentare deaktivieren"), "post__edit_save" : MessageLookupByLibrary.simpleMessage("Speichern"), "post__edit_title" : MessageLookupByLibrary.simpleMessage("Beitrag bearbeiten"), - "post__enable_post_comments" : MessageLookupByLibrary.simpleMessage("Kommentare für Beiträge aktivieren"), + "post__enable_post_comments" : MessageLookupByLibrary.simpleMessage("Kommentare aktivieren"), "post__have_not_shared_anything" : MessageLookupByLibrary.simpleMessage("Du hast noch nichts geteilt."), "post__is_closed" : MessageLookupByLibrary.simpleMessage("Geschlossener Beitrag"), "post__my_circles" : MessageLookupByLibrary.simpleMessage("Meinen Kreisen"), "post__my_circles_desc" : MessageLookupByLibrary.simpleMessage("Teile den Beitrag mit einem oder mehreren deiner Kreise."), - "post__no_circles_for" : m28, + "post__no_circles_for" : m29, "post__open_post" : MessageLookupByLibrary.simpleMessage("Beitrag öffnen"), "post__post_closed" : MessageLookupByLibrary.simpleMessage("Beitrag geschlossen "), "post__post_opened" : MessageLookupByLibrary.simpleMessage("Beitrag geöffnet"), @@ -607,48 +637,68 @@ class MessageLookup extends MessageLookupByLibrary { "post__profile_counts_following" : MessageLookupByLibrary.simpleMessage(" Folge ich"), "post__profile_counts_post" : MessageLookupByLibrary.simpleMessage(" Beitrag"), "post__profile_counts_posts" : MessageLookupByLibrary.simpleMessage(" Beiträge"), - "post__reaction_list_tap_retry" : MessageLookupByLibrary.simpleMessage("Tippe, um das Laden der Reaktionen zu wiederholen."), + "post__profile_retry_loading_posts" : MessageLookupByLibrary.simpleMessage("Zum Wiederholen tippen"), + "post__reaction_list_tap_retry" : MessageLookupByLibrary.simpleMessage("Tippe, um Reaktionen neu zu laden."), "post__search_circles" : MessageLookupByLibrary.simpleMessage("Kreise suchen..."), "post__share" : MessageLookupByLibrary.simpleMessage("Teilen"), "post__share_community" : MessageLookupByLibrary.simpleMessage("Teilen"), "post__share_community_desc" : MessageLookupByLibrary.simpleMessage("Teile den Beitrag mit einer Community, der du angehörst."), "post__share_community_title" : MessageLookupByLibrary.simpleMessage("Einer Community"), "post__share_to" : MessageLookupByLibrary.simpleMessage("Teilen mit "), - "post__share_to_circles" : MessageLookupByLibrary.simpleMessage("In Kreisen teilen"), + "post__share_to_circles" : MessageLookupByLibrary.simpleMessage("Mit Kreisen teilen"), "post__share_to_community" : MessageLookupByLibrary.simpleMessage("Mit Community teilen"), "post__shared_privately_on" : MessageLookupByLibrary.simpleMessage("Privat geteilt mit"), "post__sharing_post_to" : MessageLookupByLibrary.simpleMessage("Beitrag teilen mit"), "post__text_copied" : MessageLookupByLibrary.simpleMessage("Text kopiert!"), - "post__time_short_days" : MessageLookupByLibrary.simpleMessage("Tg"), - "post__time_short_hours" : MessageLookupByLibrary.simpleMessage("Std"), - "post__time_short_minutes" : MessageLookupByLibrary.simpleMessage("Min."), + "post__time_short_days" : MessageLookupByLibrary.simpleMessage("d"), + "post__time_short_hours" : MessageLookupByLibrary.simpleMessage("h"), + "post__time_short_minutes" : MessageLookupByLibrary.simpleMessage("min"), "post__time_short_now_text" : MessageLookupByLibrary.simpleMessage("jetzt"), - "post__time_short_one_day" : MessageLookupByLibrary.simpleMessage("1Tg"), + "post__time_short_one_day" : MessageLookupByLibrary.simpleMessage("1d"), "post__time_short_one_hour" : MessageLookupByLibrary.simpleMessage("1h"), - "post__time_short_one_minute" : MessageLookupByLibrary.simpleMessage("1Min."), - "post__time_short_one_week" : MessageLookupByLibrary.simpleMessage("1Wo"), - "post__time_short_one_year" : MessageLookupByLibrary.simpleMessage("1J"), - "post__time_short_seconds" : MessageLookupByLibrary.simpleMessage("Sek"), - "post__time_short_weeks" : MessageLookupByLibrary.simpleMessage("Wo."), - "post__time_short_years" : MessageLookupByLibrary.simpleMessage("J"), + "post__time_short_one_minute" : MessageLookupByLibrary.simpleMessage("1min"), + "post__time_short_one_week" : MessageLookupByLibrary.simpleMessage("1w"), + "post__time_short_one_year" : MessageLookupByLibrary.simpleMessage("1y"), + "post__time_short_seconds" : MessageLookupByLibrary.simpleMessage("s"), + "post__time_short_weeks" : MessageLookupByLibrary.simpleMessage("w"), + "post__time_short_years" : MessageLookupByLibrary.simpleMessage("y"), "post__timeline_posts_all_loaded" : MessageLookupByLibrary.simpleMessage("🎉 Alle Beiträge geladen"), "post__timeline_posts_default_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Versuche die Timeline zu aktualisieren."), "post__timeline_posts_default_drhoo_title" : MessageLookupByLibrary.simpleMessage("Irgendwas stimmt hier nicht."), - "post__timeline_posts_failed_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Versuche es in ein paar Sekunden erneut"), + "post__timeline_posts_failed_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Versuche es in ein paar Sekunden noch einmal"), "post__timeline_posts_failed_drhoo_title" : MessageLookupByLibrary.simpleMessage("Deine Timeline konnte nicht geladen werden."), - "post__timeline_posts_no_more_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Folge Benutzern oder trete einer Community bei, um loszulegen!"), - "post__timeline_posts_no_more_drhoo_title" : MessageLookupByLibrary.simpleMessage("Deine Timeline ist leer."), + "post__timeline_posts_no_more_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Folge jemandem oder trete einer Community bei, um loszulegen!"), "post__timeline_posts_refresh_posts" : MessageLookupByLibrary.simpleMessage("Beiträge aktualisieren"), - "post__timeline_posts_refreshing_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Timeline wird geladen."), - "post__timeline_posts_refreshing_drhoo_title" : MessageLookupByLibrary.simpleMessage("Halte durch!"), - "post__trending_posts_no_trending_posts" : MessageLookupByLibrary.simpleMessage("Es gibt keine angesagten Beiträge. Versuche in ein paar Sekunden zu aktualisieren."), + "post__timeline_posts_refreshing_drhoo_title" : MessageLookupByLibrary.simpleMessage("Gleich geschafft!"), + "post__trending_posts_no_trending_posts" : MessageLookupByLibrary.simpleMessage("Keine angesagten Beiträge gefunden. Versuche in ein paar Sekunden zu aktualisieren."), "post__trending_posts_refresh" : MessageLookupByLibrary.simpleMessage("Aktualisieren"), "post__trending_posts_title" : MessageLookupByLibrary.simpleMessage("Angesagte Beiträge"), - "post__user_has_not_shared_anything" : m29, - "post__usernames_circles" : m30, + "post__user_has_not_shared_anything" : m30, + "post__usernames_circles" : m31, "post__world_circle_name" : MessageLookupByLibrary.simpleMessage("Welt"), "post__you_shared_with" : MessageLookupByLibrary.simpleMessage("Geteilt mit"), - "user__add_account_done" : MessageLookupByLibrary.simpleMessage("Fertig"), + "post_body_link_preview__empty" : MessageLookupByLibrary.simpleMessage("Für diesen Link kann keine Vorschau erstellt werden"), + "post_body_link_preview__error_with_description" : m32, + "post_body_media__unsupported" : MessageLookupByLibrary.simpleMessage("Nicht unterstützter Medientyp"), + "post_uploader__cancelled" : MessageLookupByLibrary.simpleMessage("Abgebrochen!"), + "post_uploader__cancelling" : MessageLookupByLibrary.simpleMessage("breche ab"), + "post_uploader__compressing_media" : MessageLookupByLibrary.simpleMessage("Medien werden komprimiert..."), + "post_uploader__creating_post" : MessageLookupByLibrary.simpleMessage("Beitrag wird erstellt..."), + "post_uploader__generic_upload_failed" : MessageLookupByLibrary.simpleMessage("Hochladen fehlgeschlagen"), + "post_uploader__processing" : MessageLookupByLibrary.simpleMessage("Beitrag wird verarbeitet..."), + "post_uploader__publishing" : MessageLookupByLibrary.simpleMessage("Beitrag wird veröffentlicht ..."), + "post_uploader__success" : MessageLookupByLibrary.simpleMessage("Erfolgreich!"), + "post_uploader__uploading_media" : MessageLookupByLibrary.simpleMessage("Medien werden hochgeladen..."), + "posts_stream__all_loaded" : MessageLookupByLibrary.simpleMessage("🎉 Alle Beiträge geladen"), + "posts_stream__empty_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Versuche es in ein paar Sekunden noch einmal."), + "posts_stream__empty_drhoo_title" : MessageLookupByLibrary.simpleMessage("Dieser Stream ist leer."), + "posts_stream__failed_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Versuche es in ein paar Sekunden noch einmal"), + "posts_stream__failed_drhoo_title" : MessageLookupByLibrary.simpleMessage("Stream konnte nicht geladen werden."), + "posts_stream__refreshing_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Stream wird aktualisiert."), + "posts_stream__refreshing_drhoo_title" : MessageLookupByLibrary.simpleMessage("Gleich geschafft!"), + "posts_stream__status_tile_empty" : MessageLookupByLibrary.simpleMessage("Keine Beiträge gefunden"), + "posts_stream__status_tile_no_more_to_load" : MessageLookupByLibrary.simpleMessage("🎉 Alle Beiträge geladen"), + "user__add_account_done" : MessageLookupByLibrary.simpleMessage("Erledigt"), "user__add_account_save" : MessageLookupByLibrary.simpleMessage("Speichern"), "user__add_account_success" : MessageLookupByLibrary.simpleMessage("Erfolgreich"), "user__add_account_to_lists" : MessageLookupByLibrary.simpleMessage("Benutzer zur Liste hinzufügen"), @@ -660,13 +710,13 @@ class MessageLookup extends MessageLookupByLibrary { "user__change_email_error" : MessageLookupByLibrary.simpleMessage("Diese E-Mail Adresse ist bereits registriert"), "user__change_email_hint_text" : MessageLookupByLibrary.simpleMessage("Gib deine neue E-Mail ein"), "user__change_email_save" : MessageLookupByLibrary.simpleMessage("Speichern"), - "user__change_email_success_info" : MessageLookupByLibrary.simpleMessage("Wir haben einen Bestätigungslink an deine neue E-Mail-Adresse gesendet, klick auf ihn, um deine neue E-Mail zu bestätigen"), + "user__change_email_success_info" : MessageLookupByLibrary.simpleMessage("Wir haben einen Bestätigungslink an deine neue E-Mail-Adresse gesendet. Klick auf den Link, um deine neue E-Mail-Adresse zu bestätigen."), "user__change_email_title" : MessageLookupByLibrary.simpleMessage("E-Mail ändern"), "user__circle_name_empty_error" : MessageLookupByLibrary.simpleMessage("Die Kreisname kann nicht leer sein."), - "user__circle_name_range_error" : m31, - "user__circle_peoples_count" : m32, - "user__clear_app_preferences_cleared_successfully" : MessageLookupByLibrary.simpleMessage("Einstellungen erfolgreich gelöscht"), - "user__clear_app_preferences_desc" : MessageLookupByLibrary.simpleMessage("Anwendungseinstellungen löschen. Momentan ist das nur die bevorzugte Reihenfolge der Kommentare."), + "user__circle_name_range_error" : m33, + "user__circle_peoples_count" : m34, + "user__clear_app_preferences_cleared_successfully" : MessageLookupByLibrary.simpleMessage("Einstellungen erfolgreich zurückgesetzt"), + "user__clear_app_preferences_desc" : MessageLookupByLibrary.simpleMessage("App-Einstellungen löschen. Momentan ist das nur die bevorzugte Reihenfolge der Kommentare."), "user__clear_app_preferences_error" : MessageLookupByLibrary.simpleMessage("Einstellungen konnten nicht gelöscht werden"), "user__clear_app_preferences_title" : MessageLookupByLibrary.simpleMessage("Einstellungen löschen"), "user__clear_application_cache_desc" : MessageLookupByLibrary.simpleMessage("Gespeicherte Beiträge, Accounts, Bilder & mehr."), @@ -676,14 +726,14 @@ class MessageLookup extends MessageLookupByLibrary { "user__confirm_block_user_blocked" : MessageLookupByLibrary.simpleMessage("Benutzer blockiert."), "user__confirm_block_user_info" : MessageLookupByLibrary.simpleMessage("Ihr werdet gegenseitig keine Beiträge des anderen mehr sehen. Außerdem werdet ihr in keiner Weise mehr miteinander in Kontakt treten können."), "user__confirm_block_user_no" : MessageLookupByLibrary.simpleMessage("Nein"), - "user__confirm_block_user_question" : m33, + "user__confirm_block_user_question" : m35, "user__confirm_block_user_title" : MessageLookupByLibrary.simpleMessage("Bestätigen"), "user__confirm_block_user_yes" : MessageLookupByLibrary.simpleMessage("Ja"), "user__confirm_connection_add_connection" : MessageLookupByLibrary.simpleMessage("Verbindung zum Kreis hinzufügen"), "user__confirm_connection_confirm_text" : MessageLookupByLibrary.simpleMessage("Bestätigen"), "user__confirm_connection_connection_confirmed" : MessageLookupByLibrary.simpleMessage("Verbindung bestätigt"), - "user__confirm_connection_with" : m34, - "user__confirm_guidelines_reject_chat_community" : MessageLookupByLibrary.simpleMessage("Mit der Community chatten."), + "user__confirm_connection_with" : m36, + "user__confirm_guidelines_reject_chat_community" : MessageLookupByLibrary.simpleMessage("Chatte mit der Community."), "user__confirm_guidelines_reject_chat_immediately" : MessageLookupByLibrary.simpleMessage("Beginne einen Chat."), "user__confirm_guidelines_reject_chat_with_team" : MessageLookupByLibrary.simpleMessage("Chatte mit dem Team."), "user__confirm_guidelines_reject_delete_account" : MessageLookupByLibrary.simpleMessage("Account Löschen"), @@ -692,8 +742,8 @@ class MessageLookup extends MessageLookupByLibrary { "user__confirm_guidelines_reject_join_slack" : MessageLookupByLibrary.simpleMessage("Trete Okuna auf Slack bei."), "user__confirm_guidelines_reject_title" : MessageLookupByLibrary.simpleMessage("Richtlinien ablehnen"), "user__connect_to_user_add_connection" : MessageLookupByLibrary.simpleMessage("Verbindung zum Kreis hinzufügen"), - "user__connect_to_user_connect_with_username" : m35, - "user__connect_to_user_done" : MessageLookupByLibrary.simpleMessage("Fertig"), + "user__connect_to_user_connect_with_username" : m37, + "user__connect_to_user_done" : MessageLookupByLibrary.simpleMessage("Erledigt"), "user__connect_to_user_request_sent" : MessageLookupByLibrary.simpleMessage("Verbindungsanfrage gesendet"), "user__connection_circle_edit" : MessageLookupByLibrary.simpleMessage("Bearbeiten"), "user__connection_pending" : MessageLookupByLibrary.simpleMessage("Ausstehend"), @@ -701,7 +751,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__connections_header_circle_desc" : MessageLookupByLibrary.simpleMessage("Der Kreis, bei dem alle deine Verbindungen hinzugefügt werden."), "user__connections_header_users" : MessageLookupByLibrary.simpleMessage("Benutzer"), "user__delete_account_confirmation_desc" : MessageLookupByLibrary.simpleMessage("Bist du dir sicher, dass du deinen Account löschen willst?"), - "user__delete_account_confirmation_desc_info" : MessageLookupByLibrary.simpleMessage("Dies ist eine permanente Aktion und kann nicht rückgängig gemacht werden."), + "user__delete_account_confirmation_desc_info" : MessageLookupByLibrary.simpleMessage("Dies ist endgültig und kann nicht rückgängig gemacht werden."), "user__delete_account_confirmation_goodbye" : MessageLookupByLibrary.simpleMessage("Wir werden dich vermissen 😢"), "user__delete_account_confirmation_no" : MessageLookupByLibrary.simpleMessage("Nein"), "user__delete_account_confirmation_title" : MessageLookupByLibrary.simpleMessage("Bestätigung"), @@ -710,28 +760,29 @@ class MessageLookup extends MessageLookupByLibrary { "user__delete_account_current_pwd_hint" : MessageLookupByLibrary.simpleMessage("Gib dein aktuelles Passwort ein"), "user__delete_account_next" : MessageLookupByLibrary.simpleMessage("Weiter"), "user__delete_account_title" : MessageLookupByLibrary.simpleMessage("Account Löschen"), - "user__disconnect_from_user" : m36, + "user__disconnect_from_user" : m38, "user__disconnect_from_user_success" : MessageLookupByLibrary.simpleMessage("Erfolgreich getrennt"), "user__edit_profile_bio" : MessageLookupByLibrary.simpleMessage("Über mich"), + "user__edit_profile_community_posts" : MessageLookupByLibrary.simpleMessage("Community-Beiträge"), "user__edit_profile_delete" : MessageLookupByLibrary.simpleMessage("Löschen"), "user__edit_profile_followers_count" : MessageLookupByLibrary.simpleMessage("Anzahl der Follower"), "user__edit_profile_location" : MessageLookupByLibrary.simpleMessage("Ort"), "user__edit_profile_name" : MessageLookupByLibrary.simpleMessage("Name"), "user__edit_profile_pick_image" : MessageLookupByLibrary.simpleMessage("Bild auswählen"), - "user__edit_profile_pick_image_error_too_large" : m37, + "user__edit_profile_pick_image_error_too_large" : m39, "user__edit_profile_save_text" : MessageLookupByLibrary.simpleMessage("Speichern"), "user__edit_profile_title" : MessageLookupByLibrary.simpleMessage("Profil bearbeiten"), "user__edit_profile_url" : MessageLookupByLibrary.simpleMessage("URL"), - "user__edit_profile_user_name_taken" : m38, + "user__edit_profile_user_name_taken" : m40, "user__edit_profile_username" : MessageLookupByLibrary.simpleMessage("Benutzername"), "user__email_verification_error" : MessageLookupByLibrary.simpleMessage("Hoppla! Dein Token ist ungültig oder abgelaufen, bitte versuche es erneut"), - "user__email_verification_successful" : MessageLookupByLibrary.simpleMessage("Nice! Deine E-Mail wurde verifiziert"), + "user__email_verification_successful" : MessageLookupByLibrary.simpleMessage("Perfekt! Deine E-Mail-Adresse ist nun verifiziert"), "user__emoji_field_none_selected" : MessageLookupByLibrary.simpleMessage("Kein Emoji ausgewählt"), - "user__emoji_search_none_found" : m39, + "user__emoji_search_none_found" : m41, "user__follow_button_follow_text" : MessageLookupByLibrary.simpleMessage("Folgen"), "user__follow_button_unfollow_text" : MessageLookupByLibrary.simpleMessage("Entfolgen"), "user__follow_lists_no_list_found" : MessageLookupByLibrary.simpleMessage("Keine Listen gefunden."), - "user__follow_lists_no_list_found_for" : m40, + "user__follow_lists_no_list_found_for" : m42, "user__follow_lists_search_for" : MessageLookupByLibrary.simpleMessage("Suche nach Liste..."), "user__follow_lists_title" : MessageLookupByLibrary.simpleMessage("Meine Listen"), "user__follower_plural" : MessageLookupByLibrary.simpleMessage("Follower"), @@ -739,18 +790,18 @@ class MessageLookup extends MessageLookupByLibrary { "user__followers_title" : MessageLookupByLibrary.simpleMessage("Follower"), "user__following_resource_name" : MessageLookupByLibrary.simpleMessage("Nutzer, denen ich folge"), "user__following_text" : MessageLookupByLibrary.simpleMessage("Folge ich"), - "user__follows_list_accounts_count" : m41, + "user__follows_list_accounts_count" : m43, "user__follows_list_edit" : MessageLookupByLibrary.simpleMessage("Bearbeiten"), "user__follows_list_header_title" : MessageLookupByLibrary.simpleMessage("Benutzer"), "user__follows_lists_account" : MessageLookupByLibrary.simpleMessage("1 Account"), - "user__follows_lists_accounts" : m42, - "user__groups_see_all" : m43, + "user__follows_lists_accounts" : m44, + "user__groups_see_all" : m45, "user__guidelines_accept" : MessageLookupByLibrary.simpleMessage("Akzeptieren"), "user__guidelines_desc" : MessageLookupByLibrary.simpleMessage("Bitte nimm dir einen Moment Zeit, um unsere Richtlinien zu lesen und zu akzeptieren."), "user__guidelines_reject" : MessageLookupByLibrary.simpleMessage("Ablehnen"), "user__invite" : MessageLookupByLibrary.simpleMessage("Einladen"), "user__invite_member" : MessageLookupByLibrary.simpleMessage("Mitglied"), - "user__invite_someone_message" : m44, + "user__invite_someone_message" : m46, "user__invites_accepted_group_item_name" : MessageLookupByLibrary.simpleMessage("angenommene Einladung"), "user__invites_accepted_group_name" : MessageLookupByLibrary.simpleMessage("angenommene Einladungen"), "user__invites_accepted_title" : MessageLookupByLibrary.simpleMessage("Angenommen"), @@ -769,11 +820,11 @@ class MessageLookup extends MessageLookupByLibrary { "user__invites_email_text" : MessageLookupByLibrary.simpleMessage("E-Mail"), "user__invites_invite_a_friend" : MessageLookupByLibrary.simpleMessage("FreundIn einladen"), "user__invites_invite_text" : MessageLookupByLibrary.simpleMessage("Einladen"), - "user__invites_joined_with" : m45, + "user__invites_joined_with" : m47, "user__invites_none_left" : MessageLookupByLibrary.simpleMessage("Du hast keine Einladungen verfügbar."), "user__invites_none_used" : MessageLookupByLibrary.simpleMessage("Sieht so aus als hättest du noch keine Einladung verwendet."), "user__invites_pending" : MessageLookupByLibrary.simpleMessage("Ausstehend"), - "user__invites_pending_email" : m46, + "user__invites_pending_email" : m48, "user__invites_pending_group_item_name" : MessageLookupByLibrary.simpleMessage("ausstehende Einladung"), "user__invites_pending_group_name" : MessageLookupByLibrary.simpleMessage("ausstehende Einladungen"), "user__invites_refresh" : MessageLookupByLibrary.simpleMessage("Aktualisieren"), @@ -786,14 +837,14 @@ class MessageLookup extends MessageLookupByLibrary { "user__language_settings_saved_success" : MessageLookupByLibrary.simpleMessage("Sprache erfolgreich geändert"), "user__language_settings_title" : MessageLookupByLibrary.simpleMessage("Spracheinstellungen"), "user__list_name_empty_error" : MessageLookupByLibrary.simpleMessage("Die Listenname kann nicht leer sein."), - "user__list_name_range_error" : m47, - "user__million_postfix" : MessageLookupByLibrary.simpleMessage("Mio"), + "user__list_name_range_error" : m49, + "user__million_postfix" : MessageLookupByLibrary.simpleMessage(" Mio."), "user__profile_action_cancel_connection" : MessageLookupByLibrary.simpleMessage("Verbindungsanfrage abbrechen"), "user__profile_action_deny_connection" : MessageLookupByLibrary.simpleMessage("Verbindungsanfrage ablehnen"), "user__profile_action_user_blocked" : MessageLookupByLibrary.simpleMessage("Benutzer blockiert"), - "user__profile_action_user_unblocked" : MessageLookupByLibrary.simpleMessage("Benutzer Blockierung aufgehoben"), - "user__profile_bio_length_error" : m48, - "user__profile_location_length_error" : m49, + "user__profile_action_user_unblocked" : MessageLookupByLibrary.simpleMessage("Benutzer nicht mehr blockiert"), + "user__profile_bio_length_error" : m50, + "user__profile_location_length_error" : m51, "user__profile_url_invalid_error" : MessageLookupByLibrary.simpleMessage("Bitte verwende eine gültige URL."), "user__remove_account_from_list" : MessageLookupByLibrary.simpleMessage("Account aus Listen entfernen"), "user__remove_account_from_list_success" : MessageLookupByLibrary.simpleMessage("Erfolgreich"), @@ -803,7 +854,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__save_connection_circle_edit" : MessageLookupByLibrary.simpleMessage("Kreis bearbeiten"), "user__save_connection_circle_hint" : MessageLookupByLibrary.simpleMessage("z.B. Freunde, Familie, Arbeit."), "user__save_connection_circle_name" : MessageLookupByLibrary.simpleMessage("Name"), - "user__save_connection_circle_name_taken" : m50, + "user__save_connection_circle_name_taken" : m52, "user__save_connection_circle_save" : MessageLookupByLibrary.simpleMessage("Speichern"), "user__save_connection_circle_users" : MessageLookupByLibrary.simpleMessage("Benutzer"), "user__save_follows_list_create" : MessageLookupByLibrary.simpleMessage("Liste erstellen"), @@ -812,17 +863,17 @@ class MessageLookup extends MessageLookupByLibrary { "user__save_follows_list_emoji_required_error" : MessageLookupByLibrary.simpleMessage("Emoji ist erforderlich"), "user__save_follows_list_hint_text" : MessageLookupByLibrary.simpleMessage("z.B. Reisen, Fotografie"), "user__save_follows_list_name" : MessageLookupByLibrary.simpleMessage("Name"), - "user__save_follows_list_name_taken" : m51, + "user__save_follows_list_name_taken" : m53, "user__save_follows_list_save" : MessageLookupByLibrary.simpleMessage("Speichern"), "user__save_follows_list_users" : MessageLookupByLibrary.simpleMessage("Benutzer"), - "user__thousand_postfix" : MessageLookupByLibrary.simpleMessage("Tsd"), + "user__thousand_postfix" : MessageLookupByLibrary.simpleMessage(" Tsd."), "user__tile_delete" : MessageLookupByLibrary.simpleMessage("Löschen"), "user__tile_following" : MessageLookupByLibrary.simpleMessage(" · Folgt"), "user__timeline_filters_apply_all" : MessageLookupByLibrary.simpleMessage("Anwenden"), "user__timeline_filters_circles" : MessageLookupByLibrary.simpleMessage("Kreise"), "user__timeline_filters_clear_all" : MessageLookupByLibrary.simpleMessage("Alle aufheben"), "user__timeline_filters_lists" : MessageLookupByLibrary.simpleMessage("Listen"), - "user__timeline_filters_no_match" : m52, + "user__timeline_filters_no_match" : m54, "user__timeline_filters_search_desc" : MessageLookupByLibrary.simpleMessage("Nach Kreisen und Listen suchen..."), "user__timeline_filters_title" : MessageLookupByLibrary.simpleMessage("Timeline-Filter"), "user__translate_see_translation" : MessageLookupByLibrary.simpleMessage("Übersetzen"), @@ -831,18 +882,20 @@ class MessageLookup extends MessageLookupByLibrary { "user__uninvite" : MessageLookupByLibrary.simpleMessage("Einladung stornieren"), "user__update_connection_circle_save" : MessageLookupByLibrary.simpleMessage("Speichern"), "user__update_connection_circle_updated" : MessageLookupByLibrary.simpleMessage("Verbindung aktualisiert"), - "user__update_connection_circles_title" : MessageLookupByLibrary.simpleMessage("Verbindungskreise aktualisieren"), + "user__update_connection_circles_title" : MessageLookupByLibrary.simpleMessage("Verbindungen ändern"), "user_search__cancel" : MessageLookupByLibrary.simpleMessage("Abbrechen"), "user_search__communities" : MessageLookupByLibrary.simpleMessage("Communities"), - "user_search__list_no_results_found" : m53, + "user_search__list_no_results_found" : m55, "user_search__list_refresh_text" : MessageLookupByLibrary.simpleMessage("Aktualisieren"), - "user_search__list_retry" : MessageLookupByLibrary.simpleMessage("Tippen zum Wiederholen."), - "user_search__list_search_text" : m54, - "user_search__no_communities_for" : m55, - "user_search__no_results_for" : m56, - "user_search__no_users_for" : m57, + "user_search__list_retry" : MessageLookupByLibrary.simpleMessage("Nochmal versuchen."), + "user_search__list_search_text" : m56, + "user_search__no_communities_for" : m57, + "user_search__no_results_for" : m58, + "user_search__no_users_for" : m59, "user_search__search_text" : MessageLookupByLibrary.simpleMessage("Suchen..."), - "user_search__searching_for" : m58, - "user_search__users" : MessageLookupByLibrary.simpleMessage("Benutzer") + "user_search__searching_for" : m60, + "user_search__users" : MessageLookupByLibrary.simpleMessage("Benutzer"), + "video_picker__from_camera" : MessageLookupByLibrary.simpleMessage("Von der Kamera"), + "video_picker__from_gallery" : MessageLookupByLibrary.simpleMessage("Aus der Galerie") }; } diff --git a/lib/locale/messages_en.dart b/lib/locale/messages_en.dart index 76952b77f..09259bcb0 100644 --- a/lib/locale/messages_en.dart +++ b/lib/locale/messages_en.dart @@ -3,22 +3,21 @@ // messages from the main program should be duplicated here with the same // function name. -// ignore_for_file: unnecessary_brace_in_string_interps +// Ignore issues from commonly used lints in this file. +// ignore_for_file:unnecessary_brace_in_string_interps, unnecessary_new +// ignore_for_file:prefer_single_quotes,comment_references, directives_ordering +// ignore_for_file:annotate_overrides,prefer_generic_function_type_aliases +// ignore_for_file:unused_import, file_names import 'package:intl/intl.dart'; import 'package:intl/message_lookup_by_library.dart'; -// ignore: unnecessary_new final messages = new MessageLookup(); -// ignore: unused_element -final _keepAnalysisHappy = Intl.defaultLocale; - -// ignore: non_constant_identifier_names -typedef MessageIfAbsent(String message_str, List args); +typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { - get localeName => 'en'; + String get localeName => 'en'; static m0(minLength, maxLength) => "(${minLength}-${maxLength} characters)"; @@ -58,88 +57,108 @@ class MessageLookup extends MessageLookupByLibrary { static m18(currentUserLanguage) => "Language (${currentUserLanguage})"; - static m19(resourceCount, resourceName) => "See all ${resourceCount} ${resourceName}"; + static m19(limit) => "File too large (limit: ${limit} MB)"; + + static m20(resourceCount, resourceName) => "See all ${resourceCount} ${resourceName}"; + + static m21(postCommentText) => "[name] [username] also commented: ${postCommentText}"; - static m20(postCommentText) => "[name] [username] also commented: ${postCommentText}"; + static m22(postCommentText) => "[name] [username] commented on your post: ${postCommentText}"; - static m21(postCommentText) => "[name] [username] commented on your post: ${postCommentText}"; + static m23(postCommentText) => "[name] [username] also replied: ${postCommentText}"; - static m22(postCommentText) => "[name] [username] also replied: ${postCommentText}"; + static m24(postCommentText) => "[name] [username] replied: ${postCommentText}"; - static m23(postCommentText) => "[name] [username] replied: ${postCommentText}"; + static m25(postCommentText) => "[name] [username] mentioned you on a comment: ${postCommentText}"; - static m24(postCommentText) => "[name] [username] mentioned you on a comment: ${postCommentText}"; + static m26(communityName) => "[name] [username] has invited you to join community /c/${communityName}."; - static m25(communityName) => "[name] [username] has invited you to join community /c/${communityName}."; + static m27(maxLength) => "A comment can\'t be longer than ${maxLength} characters."; - static m26(maxLength) => "A comment can\'t be longer than ${maxLength} characters."; + static m28(commentsCount) => "View all ${commentsCount} comments"; - static m27(commentsCount) => "View all ${commentsCount} comments"; + static m29(circlesSearchQuery) => "No circles found matching \'${circlesSearchQuery}\'."; - static m28(circlesSearchQuery) => "No circles found matching \'${circlesSearchQuery}\'."; + static m30(name) => "${name} has not shared anything yet."; - static m29(name) => "${name} has not shared anything yet."; + static m31(postCreatorUsername) => "@${postCreatorUsername}\'s circles"; - static m30(postCreatorUsername) => "@${postCreatorUsername}\'s circles"; + static m32(description) => "Failed to preview link with website error: ${description}"; - static m31(maxLength) => "Circle name must be no longer than ${maxLength} characters."; + static m33(maxLength) => "Circle name must be no longer than ${maxLength} characters."; - static m32(prettyUsersCount) => "${prettyUsersCount} people"; + static m34(prettyUsersCount) => "${prettyUsersCount} people"; - static m33(username) => "Are you sure you want to block @${username}?"; + static m35(username) => "Are you sure you want to block @${username}?"; - static m34(userName) => "Confirm connection with ${userName}"; + static m36(userName) => "Confirm connection with ${userName}"; - static m35(userName) => "Connect with ${userName}"; + static m37(userName) => "Connect with ${userName}"; - static m36(userName) => "Disconnect from ${userName}"; + static m38(userName) => "Disconnect from ${userName}"; - static m37(limit) => "Image too large (limit: ${limit} MB)"; + static m39(limit) => "Image too large (limit: ${limit} MB)"; - static m38(username) => "Username @${username} is taken"; + static m40(username) => "Username @${username} is taken"; - static m39(searchQuery) => "No emoji found matching \'${searchQuery}\'."; + static m41(searchQuery) => "No emoji found matching \'${searchQuery}\'."; - static m40(searchQuery) => "No list found for \'${searchQuery}\'"; + static m42(searchQuery) => "No list found for \'${searchQuery}\'"; - static m41(prettyUsersCount) => "${prettyUsersCount} accounts"; + static m43(prettyUsersCount) => "${prettyUsersCount} accounts"; - static m42(prettyUsersCount) => "${prettyUsersCount} Accounts"; + static m44(prettyUsersCount) => "${prettyUsersCount} Accounts"; - static m43(groupName) => "See all ${groupName}"; + static m45(groupName) => "See all ${groupName}"; - static m44(iosLink, androidLink, inviteLink) => "Hey, I\'d like to invite you to Okuna. First, Download the app on iTunes (${iosLink}) or the Play store (${androidLink}). Second, paste this personalised invite link in the \'Sign up\' form in the Okuna App: ${inviteLink}"; + static m46(iosLink, androidLink, inviteLink) => "Hey, I\'d like to invite you to Okuna. First, Download the app on iTunes (${iosLink}) or the Play store (${androidLink}). Second, paste this personalised invite link in the \'Sign up\' form in the Okuna App: ${inviteLink}"; - static m45(username) => "Joined with username @${username}"; + static m47(username) => "Joined with username @${username}"; - static m46(email) => "Pending, invite email sent to ${email}"; + static m48(email) => "Pending, invite email sent to ${email}"; - static m47(maxLength) => "List name must be no longer than ${maxLength} characters."; + static m49(maxLength) => "List name must be no longer than ${maxLength} characters."; - static m48(maxLength) => "Bio can\'t be longer than ${maxLength} characters."; + static m50(maxLength) => "Bio can\'t be longer than ${maxLength} characters."; - static m49(maxLength) => "Location can\'t be longer than ${maxLength} characters."; + static m51(maxLength) => "Location can\'t be longer than ${maxLength} characters."; - static m50(takenConnectionsCircleName) => "Circle name \'${takenConnectionsCircleName}\' is taken"; + static m52(takenConnectionsCircleName) => "Circle name \'${takenConnectionsCircleName}\' is taken"; - static m51(listName) => "List name \'${listName}\' is taken"; + static m53(listName) => "List name \'${listName}\' is taken"; - static m52(searchQuery) => "No match for \'${searchQuery}\'."; + static m54(searchQuery) => "No match for \'${searchQuery}\'."; - static m53(resourcePluralName) => "No ${resourcePluralName} found."; + static m55(resourcePluralName) => "No ${resourcePluralName} found."; - static m54(resourcePluralName) => "Search ${resourcePluralName} ..."; + static m56(resourcePluralName) => "Search ${resourcePluralName} ..."; - static m55(searchQuery) => "No communities found for \'${searchQuery}\'."; + static m57(searchQuery) => "No communities found for \'${searchQuery}\'."; - static m56(searchQuery) => "No results for \'${searchQuery}\'."; + static m58(searchQuery) => "No results for \'${searchQuery}\'."; - static m57(searchQuery) => "No users found for \'${searchQuery}\'."; + static m59(searchQuery) => "No users found for \'${searchQuery}\'."; - static m58(searchQuery) => "Searching for \'${searchQuery}\'"; + static m60(searchQuery) => "Searching for \'${searchQuery}\'"; final messages = _notInlinedMessages(_notInlinedMessages); static _notInlinedMessages(_) => { + "application_settings__comment_sort_newest_first" : MessageLookupByLibrary.simpleMessage("Newest first"), + "application_settings__comment_sort_oldest_first" : MessageLookupByLibrary.simpleMessage("Oldest first"), + "application_settings__link_previews" : MessageLookupByLibrary.simpleMessage("Link previews"), + "application_settings__link_previews_autoplay_always" : MessageLookupByLibrary.simpleMessage("Always"), + "application_settings__link_previews_autoplay_never" : MessageLookupByLibrary.simpleMessage("Never"), + "application_settings__link_previews_autoplay_wifi_only" : MessageLookupByLibrary.simpleMessage("Wifi only"), + "application_settings__link_previews_show" : MessageLookupByLibrary.simpleMessage("Show"), + "application_settings__tap_to_change" : MessageLookupByLibrary.simpleMessage("(Tap to change)"), + "application_settings__videos" : MessageLookupByLibrary.simpleMessage("Videos"), + "application_settings__videos_autoplay" : MessageLookupByLibrary.simpleMessage("Autoplay"), + "application_settings__videos_autoplay_always" : MessageLookupByLibrary.simpleMessage("Always"), + "application_settings__videos_autoplay_never" : MessageLookupByLibrary.simpleMessage("Never"), + "application_settings__videos_autoplay_wifi_only" : MessageLookupByLibrary.simpleMessage("Wifi only"), + "application_settings__videos_sound" : MessageLookupByLibrary.simpleMessage("Sound"), + "application_settings__videos_sound_disabled" : MessageLookupByLibrary.simpleMessage("Disabled"), + "application_settings__videos_sound_enabled" : MessageLookupByLibrary.simpleMessage("Enabled"), "auth__change_password_current_pwd" : MessageLookupByLibrary.simpleMessage("Current password"), "auth__change_password_current_pwd_hint" : MessageLookupByLibrary.simpleMessage("Enter your current password"), "auth__change_password_current_pwd_incorrect" : MessageLookupByLibrary.simpleMessage("Entered password was incorrect"), @@ -344,6 +363,7 @@ class MessageLookup extends MessageLookupByLibrary { "community__posts" : MessageLookupByLibrary.simpleMessage("Posts"), "community__refresh_text" : MessageLookupByLibrary.simpleMessage("Refresh"), "community__refreshing" : MessageLookupByLibrary.simpleMessage("Refreshing community"), + "community__retry_loading_posts" : MessageLookupByLibrary.simpleMessage("Tap to retry"), "community__rules_empty_error" : MessageLookupByLibrary.simpleMessage("Rules cannot be empty."), "community__rules_range_error" : m14, "community__rules_text" : MessageLookupByLibrary.simpleMessage("Rules"), @@ -396,6 +416,7 @@ class MessageLookup extends MessageLookupByLibrary { "drawer__application_settings" : MessageLookupByLibrary.simpleMessage("Application Settings"), "drawer__connections" : MessageLookupByLibrary.simpleMessage("My connections"), "drawer__customize" : MessageLookupByLibrary.simpleMessage("Customize"), + "drawer__developer_settings" : MessageLookupByLibrary.simpleMessage("Developer Settings"), "drawer__global_moderation" : MessageLookupByLibrary.simpleMessage("Global moderation"), "drawer__help" : MessageLookupByLibrary.simpleMessage("Support & Feedback"), "drawer__lists" : MessageLookupByLibrary.simpleMessage("My lists"), @@ -428,7 +449,14 @@ class MessageLookup extends MessageLookupByLibrary { "drawer__useful_links_support_desc" : MessageLookupByLibrary.simpleMessage("Find a way you can support us on our journey!"), "drawer__useful_links_title" : MessageLookupByLibrary.simpleMessage("Useful links"), "error__no_internet_connection" : MessageLookupByLibrary.simpleMessage("No internet connection"), + "error__receive_share_file_not_found" : MessageLookupByLibrary.simpleMessage("Shared file could not be found"), + "error__receive_share_invalid_uri_scheme" : MessageLookupByLibrary.simpleMessage("Failed to receive share"), + "error__receive_share_temp_write_denied" : MessageLookupByLibrary.simpleMessage("Denied permission to copy shared file to temporary location"), + "error__receive_share_temp_write_failed" : MessageLookupByLibrary.simpleMessage("Failed to copy shared file to temporary location"), "error__unknown_error" : MessageLookupByLibrary.simpleMessage("Unknown error"), + "image_picker__error_too_large" : m19, + "image_picker__from_camera" : MessageLookupByLibrary.simpleMessage("From camera"), + "image_picker__from_gallery" : MessageLookupByLibrary.simpleMessage("From gallery"), "moderation__actions_chat_with_team" : MessageLookupByLibrary.simpleMessage("Chat with the team"), "moderation__actions_review" : MessageLookupByLibrary.simpleMessage("Review"), "moderation__category_text" : MessageLookupByLibrary.simpleMessage("Category"), @@ -485,7 +513,7 @@ class MessageLookup extends MessageLookupByLibrary { "moderation__reporter_text" : MessageLookupByLibrary.simpleMessage("Reporter"), "moderation__reports_preview_resource_reports" : MessageLookupByLibrary.simpleMessage("reports"), "moderation__reports_preview_title" : MessageLookupByLibrary.simpleMessage("Reports"), - "moderation__reports_see_all" : m19, + "moderation__reports_see_all" : m20, "moderation__tap_to_retry" : MessageLookupByLibrary.simpleMessage("Tap to retry loading items"), "moderation__update_category_save" : MessageLookupByLibrary.simpleMessage("Save"), "moderation__update_category_title" : MessageLookupByLibrary.simpleMessage("Update category"), @@ -500,14 +528,14 @@ class MessageLookup extends MessageLookupByLibrary { "moderation__you_have_reported_community_text" : MessageLookupByLibrary.simpleMessage("You have reported this community"), "moderation__you_have_reported_post_text" : MessageLookupByLibrary.simpleMessage("You have reported this post"), "notifications__accepted_connection_request_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] accepted your connection request."), - "notifications__comment_comment_notification_tile_user_also_commented" : m20, - "notifications__comment_comment_notification_tile_user_commented" : m21, + "notifications__comment_comment_notification_tile_user_also_commented" : m21, + "notifications__comment_comment_notification_tile_user_commented" : m22, "notifications__comment_desc" : MessageLookupByLibrary.simpleMessage("Be notified when someone comments on one of your posts or one you also commented"), "notifications__comment_reaction_desc" : MessageLookupByLibrary.simpleMessage("Be notified when someone reacts to one of your post commments"), "notifications__comment_reaction_title" : MessageLookupByLibrary.simpleMessage("Post comment reaction"), "notifications__comment_reply_desc" : MessageLookupByLibrary.simpleMessage("Be notified when someone replies to one of your comments or one you also replied to"), - "notifications__comment_reply_notification_tile_user_also_replied" : m22, - "notifications__comment_reply_notification_tile_user_replied" : m23, + "notifications__comment_reply_notification_tile_user_also_replied" : m23, + "notifications__comment_reply_notification_tile_user_replied" : m24, "notifications__comment_reply_title" : MessageLookupByLibrary.simpleMessage("Post comment reply"), "notifications__comment_title" : MessageLookupByLibrary.simpleMessage("Post comment"), "notifications__comment_user_mention_desc" : MessageLookupByLibrary.simpleMessage("Be notified when someone mentions you on one of their comments"), @@ -522,7 +550,7 @@ class MessageLookup extends MessageLookupByLibrary { "notifications__following_you_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] is now following you."), "notifications__general_desc" : MessageLookupByLibrary.simpleMessage("Be notified when something happens"), "notifications__general_title" : MessageLookupByLibrary.simpleMessage("Notifications"), - "notifications__mentioned_in_post_comment_tile" : m24, + "notifications__mentioned_in_post_comment_tile" : m25, "notifications__mentioned_in_post_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] mentioned you on a post."), "notifications__mute_post_turn_off_post_comment_notifications" : MessageLookupByLibrary.simpleMessage("Turn off post comment notifications"), "notifications__mute_post_turn_off_post_notifications" : MessageLookupByLibrary.simpleMessage("Turn off post notifications"), @@ -535,7 +563,9 @@ class MessageLookup extends MessageLookupByLibrary { "notifications__reacted_to_post_comment_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] reacted to your post comment."), "notifications__reacted_to_post_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] reacted to your post."), "notifications__settings_title" : MessageLookupByLibrary.simpleMessage("Notifications settings"), - "notifications__user_community_invite_tile" : m25, + "notifications__tab_general" : MessageLookupByLibrary.simpleMessage("General"), + "notifications__tab_requests" : MessageLookupByLibrary.simpleMessage("Requests"), + "notifications__user_community_invite_tile" : m26, "post__action_comment" : MessageLookupByLibrary.simpleMessage("Comment"), "post__action_react" : MessageLookupByLibrary.simpleMessage("React"), "post__action_reply" : MessageLookupByLibrary.simpleMessage("Reply"), @@ -547,8 +577,9 @@ class MessageLookup extends MessageLookupByLibrary { "post__actions_report_text" : MessageLookupByLibrary.simpleMessage("Report"), "post__actions_reported_text" : MessageLookupByLibrary.simpleMessage("Reported"), "post__actions_show_more_text" : MessageLookupByLibrary.simpleMessage("Show more"), + "post__close_create_post_label" : MessageLookupByLibrary.simpleMessage("Close create new post"), "post__close_post" : MessageLookupByLibrary.simpleMessage("Close post"), - "post__comment_maxlength_error" : m26, + "post__comment_maxlength_error" : m27, "post__comment_reply_expanded_post" : MessageLookupByLibrary.simpleMessage("Post"), "post__comment_reply_expanded_reply_comment" : MessageLookupByLibrary.simpleMessage("Reply to comment"), "post__comment_reply_expanded_reply_hint_text" : MessageLookupByLibrary.simpleMessage("Your reply..."), @@ -585,10 +616,13 @@ class MessageLookup extends MessageLookupByLibrary { "post__comments_page_tap_to_retry" : MessageLookupByLibrary.simpleMessage("Tap to retry loading comments."), "post__comments_page_tap_to_retry_replies" : MessageLookupByLibrary.simpleMessage("Tap to retry loading replies."), "post__comments_page_title" : MessageLookupByLibrary.simpleMessage("Post comments"), - "post__comments_view_all_comments" : m27, + "post__comments_view_all_comments" : m28, "post__create_new" : MessageLookupByLibrary.simpleMessage("New post"), + "post__create_new_community_post_label" : MessageLookupByLibrary.simpleMessage("Create new communtiy post"), + "post__create_new_post_label" : MessageLookupByLibrary.simpleMessage("Create new post"), "post__create_next" : MessageLookupByLibrary.simpleMessage("Next"), "post__create_photo" : MessageLookupByLibrary.simpleMessage("Photo"), + "post__create_video" : MessageLookupByLibrary.simpleMessage("Video"), "post__disable_post_comments" : MessageLookupByLibrary.simpleMessage("Disable post comments"), "post__edit_save" : MessageLookupByLibrary.simpleMessage("Save"), "post__edit_title" : MessageLookupByLibrary.simpleMessage("Edit post"), @@ -597,7 +631,7 @@ class MessageLookup extends MessageLookupByLibrary { "post__is_closed" : MessageLookupByLibrary.simpleMessage("Closed post"), "post__my_circles" : MessageLookupByLibrary.simpleMessage("My circles"), "post__my_circles_desc" : MessageLookupByLibrary.simpleMessage("Share the post to one or multiple of your circles."), - "post__no_circles_for" : m28, + "post__no_circles_for" : m29, "post__open_post" : MessageLookupByLibrary.simpleMessage("Open post"), "post__post_closed" : MessageLookupByLibrary.simpleMessage("Post closed "), "post__post_opened" : MessageLookupByLibrary.simpleMessage("Post opened"), @@ -607,6 +641,7 @@ class MessageLookup extends MessageLookupByLibrary { "post__profile_counts_following" : MessageLookupByLibrary.simpleMessage(" Following"), "post__profile_counts_post" : MessageLookupByLibrary.simpleMessage(" Post"), "post__profile_counts_posts" : MessageLookupByLibrary.simpleMessage(" Posts"), + "post__profile_retry_loading_posts" : MessageLookupByLibrary.simpleMessage("Tap to retry"), "post__reaction_list_tap_retry" : MessageLookupByLibrary.simpleMessage("Tap to retry loading reactions."), "post__search_circles" : MessageLookupByLibrary.simpleMessage("Search circles..."), "post__share" : MessageLookupByLibrary.simpleMessage("Share"), @@ -637,17 +672,36 @@ class MessageLookup extends MessageLookupByLibrary { "post__timeline_posts_failed_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Try again in a couple seconds"), "post__timeline_posts_failed_drhoo_title" : MessageLookupByLibrary.simpleMessage("Could not load your timeline."), "post__timeline_posts_no_more_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Follow users or join a community to get started!"), - "post__timeline_posts_no_more_drhoo_title" : MessageLookupByLibrary.simpleMessage("Your timeline is empty."), "post__timeline_posts_refresh_posts" : MessageLookupByLibrary.simpleMessage("Refresh posts"), - "post__timeline_posts_refreshing_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Loading your timeline."), "post__timeline_posts_refreshing_drhoo_title" : MessageLookupByLibrary.simpleMessage("Hang in there!"), "post__trending_posts_no_trending_posts" : MessageLookupByLibrary.simpleMessage("There are no trending posts. Try refreshing in a couple seconds."), "post__trending_posts_refresh" : MessageLookupByLibrary.simpleMessage("Refresh"), "post__trending_posts_title" : MessageLookupByLibrary.simpleMessage("Trending posts"), - "post__user_has_not_shared_anything" : m29, - "post__usernames_circles" : m30, + "post__user_has_not_shared_anything" : m30, + "post__usernames_circles" : m31, "post__world_circle_name" : MessageLookupByLibrary.simpleMessage("World"), "post__you_shared_with" : MessageLookupByLibrary.simpleMessage("You shared with"), + "post_body_link_preview__empty" : MessageLookupByLibrary.simpleMessage("This link could not be previewed"), + "post_body_link_preview__error_with_description" : m32, + "post_body_media__unsupported" : MessageLookupByLibrary.simpleMessage("Unsupported media type"), + "post_uploader__cancelled" : MessageLookupByLibrary.simpleMessage("Cancelled!"), + "post_uploader__cancelling" : MessageLookupByLibrary.simpleMessage("Cancelling"), + "post_uploader__compressing_media" : MessageLookupByLibrary.simpleMessage("Compressing media..."), + "post_uploader__creating_post" : MessageLookupByLibrary.simpleMessage("Creating post..."), + "post_uploader__generic_upload_failed" : MessageLookupByLibrary.simpleMessage("Upload failed"), + "post_uploader__processing" : MessageLookupByLibrary.simpleMessage("Processing post..."), + "post_uploader__publishing" : MessageLookupByLibrary.simpleMessage("Publishing post..."), + "post_uploader__success" : MessageLookupByLibrary.simpleMessage("Success!"), + "post_uploader__uploading_media" : MessageLookupByLibrary.simpleMessage("Uploading media..."), + "posts_stream__all_loaded" : MessageLookupByLibrary.simpleMessage("🎉 All posts loaded"), + "posts_stream__empty_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Try refreshing in a couple of seconds."), + "posts_stream__empty_drhoo_title" : MessageLookupByLibrary.simpleMessage("This stream is empty."), + "posts_stream__failed_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Try again in a couple seconds"), + "posts_stream__failed_drhoo_title" : MessageLookupByLibrary.simpleMessage("Could not load the stream."), + "posts_stream__refreshing_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Refreshing the stream."), + "posts_stream__refreshing_drhoo_title" : MessageLookupByLibrary.simpleMessage("Hang in there!"), + "posts_stream__status_tile_empty" : MessageLookupByLibrary.simpleMessage("No posts found"), + "posts_stream__status_tile_no_more_to_load" : MessageLookupByLibrary.simpleMessage("🎉 All posts loaded"), "user__add_account_done" : MessageLookupByLibrary.simpleMessage("Done"), "user__add_account_save" : MessageLookupByLibrary.simpleMessage("Save"), "user__add_account_success" : MessageLookupByLibrary.simpleMessage("Success"), @@ -663,8 +717,8 @@ class MessageLookup extends MessageLookupByLibrary { "user__change_email_success_info" : MessageLookupByLibrary.simpleMessage("We\'ve sent a confirmation link to your new email address, click it to verify your new email"), "user__change_email_title" : MessageLookupByLibrary.simpleMessage("Change Email"), "user__circle_name_empty_error" : MessageLookupByLibrary.simpleMessage("Circle name cannot be empty."), - "user__circle_name_range_error" : m31, - "user__circle_peoples_count" : m32, + "user__circle_name_range_error" : m33, + "user__circle_peoples_count" : m34, "user__clear_app_preferences_cleared_successfully" : MessageLookupByLibrary.simpleMessage("Cleared preferences successfully"), "user__clear_app_preferences_desc" : MessageLookupByLibrary.simpleMessage("Clear the application preferences. Currently this is only the preferred order of comments."), "user__clear_app_preferences_error" : MessageLookupByLibrary.simpleMessage("Could not clear preferences"), @@ -676,13 +730,13 @@ class MessageLookup extends MessageLookupByLibrary { "user__confirm_block_user_blocked" : MessageLookupByLibrary.simpleMessage("User blocked."), "user__confirm_block_user_info" : MessageLookupByLibrary.simpleMessage("You won\'t see each other posts nor be able to interact in any way."), "user__confirm_block_user_no" : MessageLookupByLibrary.simpleMessage("No"), - "user__confirm_block_user_question" : m33, + "user__confirm_block_user_question" : m35, "user__confirm_block_user_title" : MessageLookupByLibrary.simpleMessage("Confirmation"), "user__confirm_block_user_yes" : MessageLookupByLibrary.simpleMessage("Yes"), "user__confirm_connection_add_connection" : MessageLookupByLibrary.simpleMessage("Add connection to circle"), "user__confirm_connection_confirm_text" : MessageLookupByLibrary.simpleMessage("Confirm"), "user__confirm_connection_connection_confirmed" : MessageLookupByLibrary.simpleMessage("Connection confirmed"), - "user__confirm_connection_with" : m34, + "user__confirm_connection_with" : m36, "user__confirm_guidelines_reject_chat_community" : MessageLookupByLibrary.simpleMessage("Chat with the community."), "user__confirm_guidelines_reject_chat_immediately" : MessageLookupByLibrary.simpleMessage("Start a chat immediately."), "user__confirm_guidelines_reject_chat_with_team" : MessageLookupByLibrary.simpleMessage("Chat with the team."), @@ -692,7 +746,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__confirm_guidelines_reject_join_slack" : MessageLookupByLibrary.simpleMessage("Join the Slack channel."), "user__confirm_guidelines_reject_title" : MessageLookupByLibrary.simpleMessage("Guidelines Rejection"), "user__connect_to_user_add_connection" : MessageLookupByLibrary.simpleMessage("Add connection to circle"), - "user__connect_to_user_connect_with_username" : m35, + "user__connect_to_user_connect_with_username" : m37, "user__connect_to_user_done" : MessageLookupByLibrary.simpleMessage("Done"), "user__connect_to_user_request_sent" : MessageLookupByLibrary.simpleMessage("Connection request sent"), "user__connection_circle_edit" : MessageLookupByLibrary.simpleMessage("Edit"), @@ -710,28 +764,29 @@ class MessageLookup extends MessageLookupByLibrary { "user__delete_account_current_pwd_hint" : MessageLookupByLibrary.simpleMessage("Enter your current password"), "user__delete_account_next" : MessageLookupByLibrary.simpleMessage("Next"), "user__delete_account_title" : MessageLookupByLibrary.simpleMessage("Delete account"), - "user__disconnect_from_user" : m36, + "user__disconnect_from_user" : m38, "user__disconnect_from_user_success" : MessageLookupByLibrary.simpleMessage("Disconnected successfully"), "user__edit_profile_bio" : MessageLookupByLibrary.simpleMessage("Bio"), + "user__edit_profile_community_posts" : MessageLookupByLibrary.simpleMessage("Community posts"), "user__edit_profile_delete" : MessageLookupByLibrary.simpleMessage("Delete"), "user__edit_profile_followers_count" : MessageLookupByLibrary.simpleMessage("Followers count"), "user__edit_profile_location" : MessageLookupByLibrary.simpleMessage("Location"), "user__edit_profile_name" : MessageLookupByLibrary.simpleMessage("Name"), "user__edit_profile_pick_image" : MessageLookupByLibrary.simpleMessage("Pick image"), - "user__edit_profile_pick_image_error_too_large" : m37, + "user__edit_profile_pick_image_error_too_large" : m39, "user__edit_profile_save_text" : MessageLookupByLibrary.simpleMessage("Save"), "user__edit_profile_title" : MessageLookupByLibrary.simpleMessage("Edit profile"), "user__edit_profile_url" : MessageLookupByLibrary.simpleMessage("Url"), - "user__edit_profile_user_name_taken" : m38, + "user__edit_profile_user_name_taken" : m40, "user__edit_profile_username" : MessageLookupByLibrary.simpleMessage("Username"), "user__email_verification_error" : MessageLookupByLibrary.simpleMessage("Oops! Your token was not valid or expired, please try again"), "user__email_verification_successful" : MessageLookupByLibrary.simpleMessage("Awesome! Your email is now verified"), "user__emoji_field_none_selected" : MessageLookupByLibrary.simpleMessage("No emoji selected"), - "user__emoji_search_none_found" : m39, + "user__emoji_search_none_found" : m41, "user__follow_button_follow_text" : MessageLookupByLibrary.simpleMessage("Follow"), "user__follow_button_unfollow_text" : MessageLookupByLibrary.simpleMessage("Unfollow"), "user__follow_lists_no_list_found" : MessageLookupByLibrary.simpleMessage("No lists found."), - "user__follow_lists_no_list_found_for" : m40, + "user__follow_lists_no_list_found_for" : m42, "user__follow_lists_search_for" : MessageLookupByLibrary.simpleMessage("Search for a list..."), "user__follow_lists_title" : MessageLookupByLibrary.simpleMessage("My lists"), "user__follower_plural" : MessageLookupByLibrary.simpleMessage("followers"), @@ -739,18 +794,18 @@ class MessageLookup extends MessageLookupByLibrary { "user__followers_title" : MessageLookupByLibrary.simpleMessage("Followers"), "user__following_resource_name" : MessageLookupByLibrary.simpleMessage("followed users"), "user__following_text" : MessageLookupByLibrary.simpleMessage("Following"), - "user__follows_list_accounts_count" : m41, + "user__follows_list_accounts_count" : m43, "user__follows_list_edit" : MessageLookupByLibrary.simpleMessage("Edit"), "user__follows_list_header_title" : MessageLookupByLibrary.simpleMessage("Users"), "user__follows_lists_account" : MessageLookupByLibrary.simpleMessage("1 Account"), - "user__follows_lists_accounts" : m42, - "user__groups_see_all" : m43, + "user__follows_lists_accounts" : m44, + "user__groups_see_all" : m45, "user__guidelines_accept" : MessageLookupByLibrary.simpleMessage("Accept"), "user__guidelines_desc" : MessageLookupByLibrary.simpleMessage("Please take a moment to read and accept our guidelines."), "user__guidelines_reject" : MessageLookupByLibrary.simpleMessage("Reject"), "user__invite" : MessageLookupByLibrary.simpleMessage("Invite"), "user__invite_member" : MessageLookupByLibrary.simpleMessage("Member"), - "user__invite_someone_message" : m44, + "user__invite_someone_message" : m46, "user__invites_accepted_group_item_name" : MessageLookupByLibrary.simpleMessage("accepted invite"), "user__invites_accepted_group_name" : MessageLookupByLibrary.simpleMessage("accepted invites"), "user__invites_accepted_title" : MessageLookupByLibrary.simpleMessage("Accepted"), @@ -769,11 +824,11 @@ class MessageLookup extends MessageLookupByLibrary { "user__invites_email_text" : MessageLookupByLibrary.simpleMessage("Email"), "user__invites_invite_a_friend" : MessageLookupByLibrary.simpleMessage("Invite a friend"), "user__invites_invite_text" : MessageLookupByLibrary.simpleMessage("Invite"), - "user__invites_joined_with" : m45, + "user__invites_joined_with" : m47, "user__invites_none_left" : MessageLookupByLibrary.simpleMessage("You have no invites available."), "user__invites_none_used" : MessageLookupByLibrary.simpleMessage("Looks like you haven\'t used any invite."), "user__invites_pending" : MessageLookupByLibrary.simpleMessage("Pending"), - "user__invites_pending_email" : m46, + "user__invites_pending_email" : m48, "user__invites_pending_group_item_name" : MessageLookupByLibrary.simpleMessage("pending invite"), "user__invites_pending_group_name" : MessageLookupByLibrary.simpleMessage("pending invites"), "user__invites_refresh" : MessageLookupByLibrary.simpleMessage("Refresh"), @@ -786,14 +841,14 @@ class MessageLookup extends MessageLookupByLibrary { "user__language_settings_saved_success" : MessageLookupByLibrary.simpleMessage("Language changed successfully"), "user__language_settings_title" : MessageLookupByLibrary.simpleMessage("Language settings"), "user__list_name_empty_error" : MessageLookupByLibrary.simpleMessage("List name cannot be empty."), - "user__list_name_range_error" : m47, + "user__list_name_range_error" : m49, "user__million_postfix" : MessageLookupByLibrary.simpleMessage("m"), "user__profile_action_cancel_connection" : MessageLookupByLibrary.simpleMessage("Cancel connection request"), "user__profile_action_deny_connection" : MessageLookupByLibrary.simpleMessage("Deny connection request"), "user__profile_action_user_blocked" : MessageLookupByLibrary.simpleMessage("User blocked"), "user__profile_action_user_unblocked" : MessageLookupByLibrary.simpleMessage("User unblocked"), - "user__profile_bio_length_error" : m48, - "user__profile_location_length_error" : m49, + "user__profile_bio_length_error" : m50, + "user__profile_location_length_error" : m51, "user__profile_url_invalid_error" : MessageLookupByLibrary.simpleMessage("Please provide a valid url."), "user__remove_account_from_list" : MessageLookupByLibrary.simpleMessage("Remove account from lists"), "user__remove_account_from_list_success" : MessageLookupByLibrary.simpleMessage("Success"), @@ -803,7 +858,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__save_connection_circle_edit" : MessageLookupByLibrary.simpleMessage("Edit circle"), "user__save_connection_circle_hint" : MessageLookupByLibrary.simpleMessage("e.g. Friends, Family, Work."), "user__save_connection_circle_name" : MessageLookupByLibrary.simpleMessage("Name"), - "user__save_connection_circle_name_taken" : m50, + "user__save_connection_circle_name_taken" : m52, "user__save_connection_circle_save" : MessageLookupByLibrary.simpleMessage("Save"), "user__save_connection_circle_users" : MessageLookupByLibrary.simpleMessage("Users"), "user__save_follows_list_create" : MessageLookupByLibrary.simpleMessage("Create list"), @@ -812,7 +867,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__save_follows_list_emoji_required_error" : MessageLookupByLibrary.simpleMessage("Emoji is required"), "user__save_follows_list_hint_text" : MessageLookupByLibrary.simpleMessage("e.g. Travel, Photography"), "user__save_follows_list_name" : MessageLookupByLibrary.simpleMessage("Name"), - "user__save_follows_list_name_taken" : m51, + "user__save_follows_list_name_taken" : m53, "user__save_follows_list_save" : MessageLookupByLibrary.simpleMessage("Save"), "user__save_follows_list_users" : MessageLookupByLibrary.simpleMessage("Users"), "user__thousand_postfix" : MessageLookupByLibrary.simpleMessage("k"), @@ -822,7 +877,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__timeline_filters_circles" : MessageLookupByLibrary.simpleMessage("Circles"), "user__timeline_filters_clear_all" : MessageLookupByLibrary.simpleMessage("Clear all"), "user__timeline_filters_lists" : MessageLookupByLibrary.simpleMessage("Lists"), - "user__timeline_filters_no_match" : m52, + "user__timeline_filters_no_match" : m54, "user__timeline_filters_search_desc" : MessageLookupByLibrary.simpleMessage("Search for circles and lists..."), "user__timeline_filters_title" : MessageLookupByLibrary.simpleMessage("Timeline filters"), "user__translate_see_translation" : MessageLookupByLibrary.simpleMessage("See translation"), @@ -834,15 +889,17 @@ class MessageLookup extends MessageLookupByLibrary { "user__update_connection_circles_title" : MessageLookupByLibrary.simpleMessage("Update connection circles"), "user_search__cancel" : MessageLookupByLibrary.simpleMessage("Cancel"), "user_search__communities" : MessageLookupByLibrary.simpleMessage("Communities"), - "user_search__list_no_results_found" : m53, + "user_search__list_no_results_found" : m55, "user_search__list_refresh_text" : MessageLookupByLibrary.simpleMessage("Refresh"), "user_search__list_retry" : MessageLookupByLibrary.simpleMessage("Tap to retry."), - "user_search__list_search_text" : m54, - "user_search__no_communities_for" : m55, - "user_search__no_results_for" : m56, - "user_search__no_users_for" : m57, + "user_search__list_search_text" : m56, + "user_search__no_communities_for" : m57, + "user_search__no_results_for" : m58, + "user_search__no_users_for" : m59, "user_search__search_text" : MessageLookupByLibrary.simpleMessage("Search..."), - "user_search__searching_for" : m58, - "user_search__users" : MessageLookupByLibrary.simpleMessage("Users") + "user_search__searching_for" : m60, + "user_search__users" : MessageLookupByLibrary.simpleMessage("Users"), + "video_picker__from_camera" : MessageLookupByLibrary.simpleMessage("From camera"), + "video_picker__from_gallery" : MessageLookupByLibrary.simpleMessage("From gallery") }; } diff --git a/lib/locale/messages_es-ES.dart b/lib/locale/messages_es-ES.dart index 08f3fff1c..50e2c8eb7 100644 --- a/lib/locale/messages_es-ES.dart +++ b/lib/locale/messages_es-ES.dart @@ -3,22 +3,21 @@ // messages from the main program should be duplicated here with the same // function name. -// ignore_for_file: unnecessary_brace_in_string_interps +// Ignore issues from commonly used lints in this file. +// ignore_for_file:unnecessary_brace_in_string_interps, unnecessary_new +// ignore_for_file:prefer_single_quotes,comment_references, directives_ordering +// ignore_for_file:annotate_overrides,prefer_generic_function_type_aliases +// ignore_for_file:unused_import, file_names import 'package:intl/intl.dart'; import 'package:intl/message_lookup_by_library.dart'; -// ignore: unnecessary_new final messages = new MessageLookup(); -// ignore: unused_element -final _keepAnalysisHappy = Intl.defaultLocale; - -// ignore: non_constant_identifier_names -typedef MessageIfAbsent(String message_str, List args); +typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { - get localeName => 'es_ES'; + String get localeName => 'es_ES'; static m0(minLength, maxLength) => "(${minLength}-${maxLength} caracteres)"; @@ -58,88 +57,108 @@ class MessageLookup extends MessageLookupByLibrary { static m18(currentUserLanguage) => "Idioma (${currentUserLanguage})"; - static m19(resourceCount, resourceName) => "Ver todos los ${resourceCount} ${resourceName}"; + static m19(limit) => "Archivo demasiado grande (límite: ${limit} MB)"; + + static m20(resourceCount, resourceName) => "Ver todos los ${resourceCount} ${resourceName}"; + + static m21(postCommentText) => "[name] [username] también comentó: ${postCommentText}"; - static m20(postCommentText) => "[name] [username] también comentó: ${postCommentText}"; + static m22(postCommentText) => "[name] [username] comentó en tu post: ${postCommentText}"; - static m21(postCommentText) => "[name] [username] comentó en tu post: ${postCommentText}"; + static m23(postCommentText) => "[name] [username] también respondió: ${postCommentText}"; - static m22(postCommentText) => "[name] [username] también respondió: ${postCommentText}"; + static m24(postCommentText) => "[name] [username] respondió: ${postCommentText}"; - static m23(postCommentText) => "[name] [username] respondió: ${postCommentText}"; + static m25(postCommentText) => "[name] [username] te mencionó en un comentario: ${postCommentText}"; - static m24(postCommentText) => "[name] [username] te mencionó en un comentario: ${postCommentText}"; + static m26(communityName) => "[name] [username] te ha invitado a unirte a la comunidad /c/${communityName}."; - static m25(communityName) => "[name] [username] te ha invitado a unirte a la comunidad /c/${communityName}."; + static m27(maxLength) => "Un comentario no puede ser más largo que ${maxLength} caracteres."; - static m26(maxLength) => "Un comentario no puede ser más largo que ${maxLength} caracteres."; + static m28(commentsCount) => "Ver los ${commentsCount} comentarios"; - static m27(commentsCount) => "Ver los ${commentsCount} comentarios"; + static m29(circlesSearchQuery) => "\'No se han encontrado círculos que coincidan con \'${circlesSearchQuery}\'."; - static m28(circlesSearchQuery) => "\'No se han encontrado círculos que coincidan con \'${circlesSearchQuery}\'."; + static m30(name) => "${name} aún no ha compartido nada."; - static m29(name) => "${name} aún no ha compartido nada."; + static m31(postCreatorUsername) => "los círculos de @${postCreatorUsername}\'s"; - static m30(postCreatorUsername) => "los círculos de @${postCreatorUsername}\'s"; + static m32(description) => "Error al previsualizar el enlace con error del sitio web: ${description}"; - static m31(maxLength) => "El nombre del círculo no debe tener más de ${maxLength} caracteres."; + static m33(maxLength) => "El nombre del círculo no debe tener más de ${maxLength} caracteres."; - static m32(prettyUsersCount) => "${prettyUsersCount} gente"; + static m34(prettyUsersCount) => "${prettyUsersCount} gente"; - static m33(username) => "¿Seguro que quieres banear a @${username}?"; + static m35(username) => "¿Seguro que quieres banear a @${username}?"; - static m34(userName) => "Confirmar conexión con ${userName}"; + static m36(userName) => "Confirmar conexión con ${userName}"; - static m35(userName) => "Conectar con ${userName}"; + static m37(userName) => "Conectar con ${userName}"; - static m36(userName) => "Desconectarse de ${userName}"; + static m38(userName) => "Desconectarse de ${userName}"; - static m37(limit) => "Imagen demasiado grande (límite: ${limit} MB)"; + static m39(limit) => "Imagen demasiado grande (límite: ${limit} MB)"; - static m38(username) => "El nombre de usuario @${username} ya existe"; + static m40(username) => "El nombre de usuario @${username} ya existe"; - static m39(searchQuery) => "No se encontró un Emoji similar a \'${searchQuery}\'."; + static m41(searchQuery) => "No se encontró un Emoji similar a \'${searchQuery}\'."; - static m40(searchQuery) => "No se encontró lista con \'${searchQuery}\'"; + static m42(searchQuery) => "No se encontró lista con \'${searchQuery}\'"; - static m41(prettyUsersCount) => "${prettyUsersCount} cuentas"; + static m43(prettyUsersCount) => "${prettyUsersCount} cuentas"; - static m42(prettyUsersCount) => "${prettyUsersCount} Cuentas"; + static m44(prettyUsersCount) => "${prettyUsersCount} Cuentas"; - static m43(groupName) => "Ver ${groupName}"; + static m45(groupName) => "Ver ${groupName}"; - static m44(iosLink, androidLink, inviteLink) => "Hola, me gustaría invitarte a Okuna. Primero, descarga la aplicación en iTunes (${iosLink}) on la PlayStore (${androidLink}). En segundo lugar, pega este enlace de invitación personalizado en el formulario \'Registrarse\' en la aplicación Okuna: ${inviteLink}"; + static m46(iosLink, androidLink, inviteLink) => "Hola, me gustaría invitarte a Okuna. Primero, descarga la aplicación en iTunes (${iosLink}) on la PlayStore (${androidLink}). En segundo lugar, pega este enlace de invitación personalizado en el formulario \'Registrarse\' en la aplicación Okuna: ${inviteLink}"; - static m45(username) => "Se unió con el nombre de usuario @${username}"; + static m47(username) => "Se unió con el nombre de usuario @${username}"; - static m46(email) => "Pendiente, email de invitación enviado a ${email}"; + static m48(email) => "Pendiente, email de invitación enviado a ${email}"; - static m47(maxLength) => "El nombre de la lista no debe tener más de ${maxLength} caracteres."; + static m49(maxLength) => "El nombre de la lista no debe tener más de ${maxLength} caracteres."; - static m48(maxLength) => "La biografía no puede contener más de ${maxLength} caracteres."; + static m50(maxLength) => "La biografía no puede contener más de ${maxLength} caracteres."; - static m49(maxLength) => "La ubicación no puede contener más de ${maxLength} caracteres."; + static m51(maxLength) => "La ubicación no puede contener más de ${maxLength} caracteres."; - static m50(takenConnectionsCircleName) => "El nombre de lista \'${takenConnectionsCircleName}\' esta tomado"; + static m52(takenConnectionsCircleName) => "El nombre de lista \'${takenConnectionsCircleName}\' esta tomado"; - static m51(listName) => "El nombre de lista \'${listName}\' esta tomado"; + static m53(listName) => "El nombre de lista \'${listName}\' esta tomado"; - static m52(searchQuery) => "Sin resultados para \'${searchQuery}\'."; + static m54(searchQuery) => "Sin resultados para \'${searchQuery}\'."; - static m53(resourcePluralName) => "No se encontró ningun ${resourcePluralName}."; + static m55(resourcePluralName) => "No se encontró ningun ${resourcePluralName}."; - static m54(resourcePluralName) => "Buscar ${resourcePluralName}..."; + static m56(resourcePluralName) => "Buscar ${resourcePluralName}..."; - static m55(searchQuery) => "No se encontraron comunidades para \'${searchQuery}\'."; + static m57(searchQuery) => "No se encontraron comunidades para \'${searchQuery}\'."; - static m56(searchQuery) => "Sin resultados para \"${searchQuery}\"."; + static m58(searchQuery) => "Sin resultados para \"${searchQuery}\"."; - static m57(searchQuery) => "No se encontraron usuarios para \'${searchQuery}\'."; + static m59(searchQuery) => "No se encontraron usuarios para \'${searchQuery}\'."; - static m58(searchQuery) => "Buscando \'${searchQuery}\'"; + static m60(searchQuery) => "Buscando \'${searchQuery}\'"; final messages = _notInlinedMessages(_notInlinedMessages); static _notInlinedMessages(_) => { + "application_settings__comment_sort_newest_first" : MessageLookupByLibrary.simpleMessage("Más reciente primero"), + "application_settings__comment_sort_oldest_first" : MessageLookupByLibrary.simpleMessage("Más antiguo primero"), + "application_settings__link_previews" : MessageLookupByLibrary.simpleMessage("Vista previa del enlace"), + "application_settings__link_previews_autoplay_always" : MessageLookupByLibrary.simpleMessage("Siempre"), + "application_settings__link_previews_autoplay_never" : MessageLookupByLibrary.simpleMessage("Nunca"), + "application_settings__link_previews_autoplay_wifi_only" : MessageLookupByLibrary.simpleMessage("Solo Wi-Fi"), + "application_settings__link_previews_show" : MessageLookupByLibrary.simpleMessage("Mostrar"), + "application_settings__tap_to_change" : MessageLookupByLibrary.simpleMessage("(Toca para cambiar)"), + "application_settings__videos" : MessageLookupByLibrary.simpleMessage("Videos"), + "application_settings__videos_autoplay" : MessageLookupByLibrary.simpleMessage("Reproducción automática"), + "application_settings__videos_autoplay_always" : MessageLookupByLibrary.simpleMessage("Siempre"), + "application_settings__videos_autoplay_never" : MessageLookupByLibrary.simpleMessage("Nunca"), + "application_settings__videos_autoplay_wifi_only" : MessageLookupByLibrary.simpleMessage("Solo Wi-Fi"), + "application_settings__videos_sound" : MessageLookupByLibrary.simpleMessage("Sonido"), + "application_settings__videos_sound_disabled" : MessageLookupByLibrary.simpleMessage("Desactivado"), + "application_settings__videos_sound_enabled" : MessageLookupByLibrary.simpleMessage("Activado"), "auth__change_password_current_pwd" : MessageLookupByLibrary.simpleMessage("Contraseña actual"), "auth__change_password_current_pwd_hint" : MessageLookupByLibrary.simpleMessage("Introduce tu contraseña actual"), "auth__change_password_current_pwd_incorrect" : MessageLookupByLibrary.simpleMessage("La contraseña introducida fue incorrecta"), @@ -344,6 +363,7 @@ class MessageLookup extends MessageLookupByLibrary { "community__posts" : MessageLookupByLibrary.simpleMessage("Posts"), "community__refresh_text" : MessageLookupByLibrary.simpleMessage("Refrescar"), "community__refreshing" : MessageLookupByLibrary.simpleMessage("Refrescando comunidad"), + "community__retry_loading_posts" : MessageLookupByLibrary.simpleMessage("Toca para reintentar"), "community__rules_empty_error" : MessageLookupByLibrary.simpleMessage("Las reglas no pueden estar vacías."), "community__rules_range_error" : m14, "community__rules_text" : MessageLookupByLibrary.simpleMessage("Reglas"), @@ -396,6 +416,7 @@ class MessageLookup extends MessageLookupByLibrary { "drawer__application_settings" : MessageLookupByLibrary.simpleMessage("Configuración de la aplicación"), "drawer__connections" : MessageLookupByLibrary.simpleMessage("Mis conexiones"), "drawer__customize" : MessageLookupByLibrary.simpleMessage("Personalizar"), + "drawer__developer_settings" : MessageLookupByLibrary.simpleMessage("Configuración de desarrollador"), "drawer__global_moderation" : MessageLookupByLibrary.simpleMessage("Moderación global"), "drawer__help" : MessageLookupByLibrary.simpleMessage("Asistencia y comentarios"), "drawer__lists" : MessageLookupByLibrary.simpleMessage("Mis listas"), @@ -424,14 +445,17 @@ class MessageLookup extends MessageLookupByLibrary { "drawer__useful_links_guidelines_handbook_desc" : MessageLookupByLibrary.simpleMessage("Un libro con todo lo que hay que saber sobre el uso de la plataforma"), "drawer__useful_links_slack_channel" : MessageLookupByLibrary.simpleMessage("Slack de la comunidad"), "drawer__useful_links_slack_channel_desc" : MessageLookupByLibrary.simpleMessage("Un lugar para discutir todo sobre Okuna"), - "drawer__useful_links_support" : MessageLookupByLibrary.simpleMessage("Soporte Okuna"), + "drawer__useful_links_support" : MessageLookupByLibrary.simpleMessage("Contribuir a Okuna"), "drawer__useful_links_support_desc" : MessageLookupByLibrary.simpleMessage("Encuentra una forma de ayudarnos en nuestro viaje!"), "drawer__useful_links_title" : MessageLookupByLibrary.simpleMessage("Enlaces útiles"), "error__no_internet_connection" : MessageLookupByLibrary.simpleMessage("Sin conexión al internet"), "error__unknown_error" : MessageLookupByLibrary.simpleMessage("Error desconocido"), + "image_picker__error_too_large" : m19, + "image_picker__from_camera" : MessageLookupByLibrary.simpleMessage("De la cámara"), + "image_picker__from_gallery" : MessageLookupByLibrary.simpleMessage("De la galería"), "moderation__actions_chat_with_team" : MessageLookupByLibrary.simpleMessage("Chatear con el equipo"), "moderation__actions_review" : MessageLookupByLibrary.simpleMessage("Revisar"), - "moderation__category_text" : MessageLookupByLibrary.simpleMessage("Categoria"), + "moderation__category_text" : MessageLookupByLibrary.simpleMessage("Categoría"), "moderation__community_moderated_objects" : MessageLookupByLibrary.simpleMessage("Objectos moderados de la comunidad"), "moderation__community_review_approve" : MessageLookupByLibrary.simpleMessage("Aprobar"), "moderation__community_review_item_verified" : MessageLookupByLibrary.simpleMessage("Este elemento ha sido verificado"), @@ -482,10 +506,10 @@ class MessageLookup extends MessageLookupByLibrary { "moderation__report_comment_text" : MessageLookupByLibrary.simpleMessage("Reportar comentario"), "moderation__report_community_text" : MessageLookupByLibrary.simpleMessage("Reportar comunidad"), "moderation__report_post_text" : MessageLookupByLibrary.simpleMessage("Reportar post"), - "moderation__reporter_text" : MessageLookupByLibrary.simpleMessage("Reportero"), + "moderation__reporter_text" : MessageLookupByLibrary.simpleMessage("Reportador"), "moderation__reports_preview_resource_reports" : MessageLookupByLibrary.simpleMessage("reportes"), "moderation__reports_preview_title" : MessageLookupByLibrary.simpleMessage("Reportes"), - "moderation__reports_see_all" : m19, + "moderation__reports_see_all" : m20, "moderation__tap_to_retry" : MessageLookupByLibrary.simpleMessage("Toca para reintentar la carga de elementos"), "moderation__update_category_save" : MessageLookupByLibrary.simpleMessage("Guardar"), "moderation__update_category_title" : MessageLookupByLibrary.simpleMessage("Actualizar categoría"), @@ -500,14 +524,14 @@ class MessageLookup extends MessageLookupByLibrary { "moderation__you_have_reported_community_text" : MessageLookupByLibrary.simpleMessage("Has reportado esta comunidad"), "moderation__you_have_reported_post_text" : MessageLookupByLibrary.simpleMessage("Has reportado a este usuario"), "notifications__accepted_connection_request_tile" : MessageLookupByLibrary.simpleMessage(". [name] [username] aceptó tu solicitud de conexión."), - "notifications__comment_comment_notification_tile_user_also_commented" : m20, - "notifications__comment_comment_notification_tile_user_commented" : m21, + "notifications__comment_comment_notification_tile_user_also_commented" : m21, + "notifications__comment_comment_notification_tile_user_commented" : m22, "notifications__comment_desc" : MessageLookupByLibrary.simpleMessage("Se notificado cuando alguien comente en uno de tus posts o en uno que tu también comentaste."), "notifications__comment_reaction_desc" : MessageLookupByLibrary.simpleMessage("Se notificado cuando alguien reacciona en uno de tus comentarios."), "notifications__comment_reaction_title" : MessageLookupByLibrary.simpleMessage("Reacción a comentario"), "notifications__comment_reply_desc" : MessageLookupByLibrary.simpleMessage("Se notificado cuando alguien responde a uno de tus comentarios o a uno que tu también comentaste."), - "notifications__comment_reply_notification_tile_user_also_replied" : m22, - "notifications__comment_reply_notification_tile_user_replied" : m23, + "notifications__comment_reply_notification_tile_user_also_replied" : m23, + "notifications__comment_reply_notification_tile_user_replied" : m24, "notifications__comment_reply_title" : MessageLookupByLibrary.simpleMessage("Respuestas"), "notifications__comment_title" : MessageLookupByLibrary.simpleMessage("Comentario"), "notifications__comment_user_mention_desc" : MessageLookupByLibrary.simpleMessage("Ser notificado cuando alguien te mencione en uno de sus comentarios"), @@ -522,7 +546,7 @@ class MessageLookup extends MessageLookupByLibrary { "notifications__following_you_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] ahora te sigue."), "notifications__general_desc" : MessageLookupByLibrary.simpleMessage("Se notificado cuando ocurra algo"), "notifications__general_title" : MessageLookupByLibrary.simpleMessage("Notificaciones"), - "notifications__mentioned_in_post_comment_tile" : m24, + "notifications__mentioned_in_post_comment_tile" : m25, "notifications__mentioned_in_post_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] te mencionó en un post."), "notifications__mute_post_turn_off_post_comment_notifications" : MessageLookupByLibrary.simpleMessage("Desactivar notificaciones de comentarios"), "notifications__mute_post_turn_off_post_notifications" : MessageLookupByLibrary.simpleMessage("Desactivar notificaciones de post"), @@ -535,7 +559,9 @@ class MessageLookup extends MessageLookupByLibrary { "notifications__reacted_to_post_comment_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] reaccionó a tu comentario."), "notifications__reacted_to_post_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] reaccionó a tu post."), "notifications__settings_title" : MessageLookupByLibrary.simpleMessage("Configuración de notificaciones"), - "notifications__user_community_invite_tile" : m25, + "notifications__tab_general" : MessageLookupByLibrary.simpleMessage("General"), + "notifications__tab_requests" : MessageLookupByLibrary.simpleMessage("Solicitudes"), + "notifications__user_community_invite_tile" : m26, "post__action_comment" : MessageLookupByLibrary.simpleMessage("Comentar"), "post__action_react" : MessageLookupByLibrary.simpleMessage("Reaccionar"), "post__action_reply" : MessageLookupByLibrary.simpleMessage("Responder"), @@ -547,8 +573,9 @@ class MessageLookup extends MessageLookupByLibrary { "post__actions_report_text" : MessageLookupByLibrary.simpleMessage("Reportar"), "post__actions_reported_text" : MessageLookupByLibrary.simpleMessage("Reportado"), "post__actions_show_more_text" : MessageLookupByLibrary.simpleMessage("Ver más"), + "post__close_create_post_label" : MessageLookupByLibrary.simpleMessage("Cerrar crear nuevo post"), "post__close_post" : MessageLookupByLibrary.simpleMessage("Cerrar post"), - "post__comment_maxlength_error" : m26, + "post__comment_maxlength_error" : m27, "post__comment_reply_expanded_post" : MessageLookupByLibrary.simpleMessage("Post"), "post__comment_reply_expanded_reply_comment" : MessageLookupByLibrary.simpleMessage("Responder a comentario"), "post__comment_reply_expanded_reply_hint_text" : MessageLookupByLibrary.simpleMessage("Tu respuesta..."), @@ -585,10 +612,13 @@ class MessageLookup extends MessageLookupByLibrary { "post__comments_page_tap_to_retry" : MessageLookupByLibrary.simpleMessage("Toca para reintentar cargar comentarios."), "post__comments_page_tap_to_retry_replies" : MessageLookupByLibrary.simpleMessage("Toca para reintentar cargar las respuestas."), "post__comments_page_title" : MessageLookupByLibrary.simpleMessage("Comentarios"), - "post__comments_view_all_comments" : m27, + "post__comments_view_all_comments" : m28, "post__create_new" : MessageLookupByLibrary.simpleMessage("Nuevo post"), + "post__create_new_community_post_label" : MessageLookupByLibrary.simpleMessage("Crear nuevo post en comunidad"), + "post__create_new_post_label" : MessageLookupByLibrary.simpleMessage("Crear nuevo post"), "post__create_next" : MessageLookupByLibrary.simpleMessage("Siguiente"), "post__create_photo" : MessageLookupByLibrary.simpleMessage("Foto"), + "post__create_video" : MessageLookupByLibrary.simpleMessage("Video"), "post__disable_post_comments" : MessageLookupByLibrary.simpleMessage("Deshabilitar comentarios"), "post__edit_save" : MessageLookupByLibrary.simpleMessage("Guardar"), "post__edit_title" : MessageLookupByLibrary.simpleMessage("Editar post"), @@ -597,7 +627,7 @@ class MessageLookup extends MessageLookupByLibrary { "post__is_closed" : MessageLookupByLibrary.simpleMessage("Post cerrado"), "post__my_circles" : MessageLookupByLibrary.simpleMessage("Mis círculos"), "post__my_circles_desc" : MessageLookupByLibrary.simpleMessage("Compartir con uno o varios de tus círculos."), - "post__no_circles_for" : m28, + "post__no_circles_for" : m29, "post__open_post" : MessageLookupByLibrary.simpleMessage("Abrir post"), "post__post_closed" : MessageLookupByLibrary.simpleMessage("Post cerrado "), "post__post_opened" : MessageLookupByLibrary.simpleMessage("Post abierto"), @@ -607,6 +637,7 @@ class MessageLookup extends MessageLookupByLibrary { "post__profile_counts_following" : MessageLookupByLibrary.simpleMessage(" Siguiendo"), "post__profile_counts_post" : MessageLookupByLibrary.simpleMessage(" Publicar"), "post__profile_counts_posts" : MessageLookupByLibrary.simpleMessage(" Posts"), + "post__profile_retry_loading_posts" : MessageLookupByLibrary.simpleMessage("Toca para reintentar"), "post__reaction_list_tap_retry" : MessageLookupByLibrary.simpleMessage("Toca para reintentar cargar las reacciones."), "post__search_circles" : MessageLookupByLibrary.simpleMessage("Buscar círculos..."), "post__share" : MessageLookupByLibrary.simpleMessage("Compartir"), @@ -637,17 +668,36 @@ class MessageLookup extends MessageLookupByLibrary { "post__timeline_posts_failed_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Inténtalo de nuevo en un par de segundos"), "post__timeline_posts_failed_drhoo_title" : MessageLookupByLibrary.simpleMessage("No se pudo cargar tu línea de tiempo."), "post__timeline_posts_no_more_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("¡Sigue a usuarios o únete a una comunidad para empezar!"), - "post__timeline_posts_no_more_drhoo_title" : MessageLookupByLibrary.simpleMessage("Tu línea de tiempo está vacía."), "post__timeline_posts_refresh_posts" : MessageLookupByLibrary.simpleMessage("Refrescar posts"), - "post__timeline_posts_refreshing_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Cargando tu línea de tiempo."), "post__timeline_posts_refreshing_drhoo_title" : MessageLookupByLibrary.simpleMessage("¡Ya casi!"), "post__trending_posts_no_trending_posts" : MessageLookupByLibrary.simpleMessage("No hay posts trending. Intenta refrescar en un par de segundos."), "post__trending_posts_refresh" : MessageLookupByLibrary.simpleMessage("Refrescar"), "post__trending_posts_title" : MessageLookupByLibrary.simpleMessage("Posts trending"), - "post__user_has_not_shared_anything" : m29, - "post__usernames_circles" : m30, + "post__user_has_not_shared_anything" : m30, + "post__usernames_circles" : m31, "post__world_circle_name" : MessageLookupByLibrary.simpleMessage("Mundo"), "post__you_shared_with" : MessageLookupByLibrary.simpleMessage("Has compartido con"), + "post_body_link_preview__empty" : MessageLookupByLibrary.simpleMessage("Este enlace no se pudo previsualizar"), + "post_body_link_preview__error_with_description" : m32, + "post_body_media__unsupported" : MessageLookupByLibrary.simpleMessage("Tipo de medio no soportado"), + "post_uploader__cancelled" : MessageLookupByLibrary.simpleMessage("¡Cancelado!"), + "post_uploader__cancelling" : MessageLookupByLibrary.simpleMessage("Cancelando"), + "post_uploader__compressing_media" : MessageLookupByLibrary.simpleMessage("Comprimiendo media..."), + "post_uploader__creating_post" : MessageLookupByLibrary.simpleMessage("Creando post..."), + "post_uploader__generic_upload_failed" : MessageLookupByLibrary.simpleMessage("Error al subir"), + "post_uploader__processing" : MessageLookupByLibrary.simpleMessage("Procesando post..."), + "post_uploader__publishing" : MessageLookupByLibrary.simpleMessage("Publicando post..."), + "post_uploader__success" : MessageLookupByLibrary.simpleMessage("¡Éxito!"), + "post_uploader__uploading_media" : MessageLookupByLibrary.simpleMessage("Subiendo media..."), + "posts_stream__all_loaded" : MessageLookupByLibrary.simpleMessage("🎉 Todos los posts cargados"), + "posts_stream__empty_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Intenta refrescar en un par de segundos."), + "posts_stream__empty_drhoo_title" : MessageLookupByLibrary.simpleMessage("Este stream está vacío."), + "posts_stream__failed_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Inténtalo de nuevo en un par de segundos"), + "posts_stream__failed_drhoo_title" : MessageLookupByLibrary.simpleMessage("No se pudo cargar el stream."), + "posts_stream__refreshing_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Refrescando el stream."), + "posts_stream__refreshing_drhoo_title" : MessageLookupByLibrary.simpleMessage("¡Ya casi!"), + "posts_stream__status_tile_empty" : MessageLookupByLibrary.simpleMessage("No se encontraron posts"), + "posts_stream__status_tile_no_more_to_load" : MessageLookupByLibrary.simpleMessage("🎉 Todos los posts cargados"), "user__add_account_done" : MessageLookupByLibrary.simpleMessage("Listo"), "user__add_account_save" : MessageLookupByLibrary.simpleMessage("Guardar"), "user__add_account_success" : MessageLookupByLibrary.simpleMessage("Listo"), @@ -663,8 +713,8 @@ class MessageLookup extends MessageLookupByLibrary { "user__change_email_success_info" : MessageLookupByLibrary.simpleMessage("Hemos enviado un enlace de confirmación a su nueva dirección de email, haz clic para verificar tu nuevo email"), "user__change_email_title" : MessageLookupByLibrary.simpleMessage("Cambiar email"), "user__circle_name_empty_error" : MessageLookupByLibrary.simpleMessage("El nombre del círculo no puede estar vacío."), - "user__circle_name_range_error" : m31, - "user__circle_peoples_count" : m32, + "user__circle_name_range_error" : m33, + "user__circle_peoples_count" : m34, "user__clear_app_preferences_cleared_successfully" : MessageLookupByLibrary.simpleMessage("Preferencias borradas con éxito"), "user__clear_app_preferences_desc" : MessageLookupByLibrary.simpleMessage("Borrar las preferencias de la aplicación. Actualmente, este es sólo el orden preferido de comentarios."), "user__clear_app_preferences_error" : MessageLookupByLibrary.simpleMessage("No se pudieron borrar las preferencias"), @@ -676,13 +726,13 @@ class MessageLookup extends MessageLookupByLibrary { "user__confirm_block_user_blocked" : MessageLookupByLibrary.simpleMessage("Usuario bloqueado."), "user__confirm_block_user_info" : MessageLookupByLibrary.simpleMessage("No verán las publicaciones del otro ni podrán interactuar de ninguna manera."), "user__confirm_block_user_no" : MessageLookupByLibrary.simpleMessage("No"), - "user__confirm_block_user_question" : m33, + "user__confirm_block_user_question" : m35, "user__confirm_block_user_title" : MessageLookupByLibrary.simpleMessage("Confirmación"), "user__confirm_block_user_yes" : MessageLookupByLibrary.simpleMessage("Sí"), "user__confirm_connection_add_connection" : MessageLookupByLibrary.simpleMessage("Añadir conexión al círculo"), "user__confirm_connection_confirm_text" : MessageLookupByLibrary.simpleMessage("Confirmar"), "user__confirm_connection_connection_confirmed" : MessageLookupByLibrary.simpleMessage("Conexión confirmada"), - "user__confirm_connection_with" : m34, + "user__confirm_connection_with" : m36, "user__confirm_guidelines_reject_chat_community" : MessageLookupByLibrary.simpleMessage("Chatear con la comunidad."), "user__confirm_guidelines_reject_chat_immediately" : MessageLookupByLibrary.simpleMessage("Iniciar un chat inmediatamente."), "user__confirm_guidelines_reject_chat_with_team" : MessageLookupByLibrary.simpleMessage("Chatear con el equipo."), @@ -692,7 +742,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__confirm_guidelines_reject_join_slack" : MessageLookupByLibrary.simpleMessage("Únete al canal Slack."), "user__confirm_guidelines_reject_title" : MessageLookupByLibrary.simpleMessage("Rechazo de reglas"), "user__connect_to_user_add_connection" : MessageLookupByLibrary.simpleMessage("Añadir conexión al círculo"), - "user__connect_to_user_connect_with_username" : m35, + "user__connect_to_user_connect_with_username" : m37, "user__connect_to_user_done" : MessageLookupByLibrary.simpleMessage("Listo"), "user__connect_to_user_request_sent" : MessageLookupByLibrary.simpleMessage("Solicitud de conexión enviada"), "user__connection_circle_edit" : MessageLookupByLibrary.simpleMessage("Editar"), @@ -710,28 +760,29 @@ class MessageLookup extends MessageLookupByLibrary { "user__delete_account_current_pwd_hint" : MessageLookupByLibrary.simpleMessage("Ingresa tu contraseña actual"), "user__delete_account_next" : MessageLookupByLibrary.simpleMessage("Siguiente"), "user__delete_account_title" : MessageLookupByLibrary.simpleMessage("Eliminar cuenta"), - "user__disconnect_from_user" : m36, + "user__disconnect_from_user" : m38, "user__disconnect_from_user_success" : MessageLookupByLibrary.simpleMessage("Desconectado exitosamente"), "user__edit_profile_bio" : MessageLookupByLibrary.simpleMessage("Bio"), + "user__edit_profile_community_posts" : MessageLookupByLibrary.simpleMessage("Posts de comunidades"), "user__edit_profile_delete" : MessageLookupByLibrary.simpleMessage("Eliminar"), "user__edit_profile_followers_count" : MessageLookupByLibrary.simpleMessage("Número de seguidores"), "user__edit_profile_location" : MessageLookupByLibrary.simpleMessage("Ubicación"), "user__edit_profile_name" : MessageLookupByLibrary.simpleMessage("Nombre"), "user__edit_profile_pick_image" : MessageLookupByLibrary.simpleMessage("Elegir imagen"), - "user__edit_profile_pick_image_error_too_large" : m37, + "user__edit_profile_pick_image_error_too_large" : m39, "user__edit_profile_save_text" : MessageLookupByLibrary.simpleMessage("Guardar"), "user__edit_profile_title" : MessageLookupByLibrary.simpleMessage("Editar perfil"), "user__edit_profile_url" : MessageLookupByLibrary.simpleMessage("Enlace"), - "user__edit_profile_user_name_taken" : m38, + "user__edit_profile_user_name_taken" : m40, "user__edit_profile_username" : MessageLookupByLibrary.simpleMessage("Nombre de usuario"), "user__email_verification_error" : MessageLookupByLibrary.simpleMessage("¡Uy! Tu token no fue válido o ha expirado, por favor intentar de nuevo"), "user__email_verification_successful" : MessageLookupByLibrary.simpleMessage("¡Genial! Tu email ya está verificado"), "user__emoji_field_none_selected" : MessageLookupByLibrary.simpleMessage("No hay emoji seleccionado"), - "user__emoji_search_none_found" : m39, + "user__emoji_search_none_found" : m41, "user__follow_button_follow_text" : MessageLookupByLibrary.simpleMessage("Seguir"), "user__follow_button_unfollow_text" : MessageLookupByLibrary.simpleMessage("Siguiendo"), "user__follow_lists_no_list_found" : MessageLookupByLibrary.simpleMessage("No se encontraron listas."), - "user__follow_lists_no_list_found_for" : m40, + "user__follow_lists_no_list_found_for" : m42, "user__follow_lists_search_for" : MessageLookupByLibrary.simpleMessage("Buscar una lista..."), "user__follow_lists_title" : MessageLookupByLibrary.simpleMessage("Mis listas"), "user__follower_plural" : MessageLookupByLibrary.simpleMessage("seguidores"), @@ -739,18 +790,18 @@ class MessageLookup extends MessageLookupByLibrary { "user__followers_title" : MessageLookupByLibrary.simpleMessage("Seguidores"), "user__following_resource_name" : MessageLookupByLibrary.simpleMessage("usuarios seguidos"), "user__following_text" : MessageLookupByLibrary.simpleMessage("Siguiendo"), - "user__follows_list_accounts_count" : m41, + "user__follows_list_accounts_count" : m43, "user__follows_list_edit" : MessageLookupByLibrary.simpleMessage("Editar"), "user__follows_list_header_title" : MessageLookupByLibrary.simpleMessage("Usuarios"), "user__follows_lists_account" : MessageLookupByLibrary.simpleMessage("1 Cuenta"), - "user__follows_lists_accounts" : m42, - "user__groups_see_all" : m43, + "user__follows_lists_accounts" : m44, + "user__groups_see_all" : m45, "user__guidelines_accept" : MessageLookupByLibrary.simpleMessage("Aceptar"), "user__guidelines_desc" : MessageLookupByLibrary.simpleMessage("Por favor, tómate un momento para leer y aceptar nuestras reglas."), "user__guidelines_reject" : MessageLookupByLibrary.simpleMessage("Rechazar"), "user__invite" : MessageLookupByLibrary.simpleMessage("Invitar"), "user__invite_member" : MessageLookupByLibrary.simpleMessage("Miembro"), - "user__invite_someone_message" : m44, + "user__invite_someone_message" : m46, "user__invites_accepted_group_item_name" : MessageLookupByLibrary.simpleMessage("invitación aceptada"), "user__invites_accepted_group_name" : MessageLookupByLibrary.simpleMessage("invitaciones aceptadas"), "user__invites_accepted_title" : MessageLookupByLibrary.simpleMessage("Aceptada"), @@ -769,11 +820,11 @@ class MessageLookup extends MessageLookupByLibrary { "user__invites_email_text" : MessageLookupByLibrary.simpleMessage("Email"), "user__invites_invite_a_friend" : MessageLookupByLibrary.simpleMessage("Invitar a un amigo"), "user__invites_invite_text" : MessageLookupByLibrary.simpleMessage("Invitar"), - "user__invites_joined_with" : m45, + "user__invites_joined_with" : m47, "user__invites_none_left" : MessageLookupByLibrary.simpleMessage("No tienes invitaciones disponibles."), "user__invites_none_used" : MessageLookupByLibrary.simpleMessage("Parece que no has usado ninguna invitación."), "user__invites_pending" : MessageLookupByLibrary.simpleMessage("Pendiente"), - "user__invites_pending_email" : m46, + "user__invites_pending_email" : m48, "user__invites_pending_group_item_name" : MessageLookupByLibrary.simpleMessage("invitación pendiente"), "user__invites_pending_group_name" : MessageLookupByLibrary.simpleMessage("invitaciones pendientes"), "user__invites_refresh" : MessageLookupByLibrary.simpleMessage("Refrescar"), @@ -786,14 +837,14 @@ class MessageLookup extends MessageLookupByLibrary { "user__language_settings_saved_success" : MessageLookupByLibrary.simpleMessage("Idioma cambiado con éxito"), "user__language_settings_title" : MessageLookupByLibrary.simpleMessage("Configuración de idioma"), "user__list_name_empty_error" : MessageLookupByLibrary.simpleMessage("El nombre de la lista no puede estar vacío."), - "user__list_name_range_error" : m47, + "user__list_name_range_error" : m49, "user__million_postfix" : MessageLookupByLibrary.simpleMessage("m"), "user__profile_action_cancel_connection" : MessageLookupByLibrary.simpleMessage("Cancelar solicitud de conexión"), "user__profile_action_deny_connection" : MessageLookupByLibrary.simpleMessage("Rechazar solicitud de conexión"), "user__profile_action_user_blocked" : MessageLookupByLibrary.simpleMessage("Usuario bloqueado"), "user__profile_action_user_unblocked" : MessageLookupByLibrary.simpleMessage("Usuario desbloqueado"), - "user__profile_bio_length_error" : m48, - "user__profile_location_length_error" : m49, + "user__profile_bio_length_error" : m50, + "user__profile_location_length_error" : m51, "user__profile_url_invalid_error" : MessageLookupByLibrary.simpleMessage("Por favor ingresa una url válida."), "user__remove_account_from_list" : MessageLookupByLibrary.simpleMessage("Eliminar cuenta de listas"), "user__remove_account_from_list_success" : MessageLookupByLibrary.simpleMessage("Éxito"), @@ -803,7 +854,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__save_connection_circle_edit" : MessageLookupByLibrary.simpleMessage("Editar círculo"), "user__save_connection_circle_hint" : MessageLookupByLibrary.simpleMessage("por ejemplo, Amigos, Familia, Trabajo."), "user__save_connection_circle_name" : MessageLookupByLibrary.simpleMessage("Nombre"), - "user__save_connection_circle_name_taken" : m50, + "user__save_connection_circle_name_taken" : m52, "user__save_connection_circle_save" : MessageLookupByLibrary.simpleMessage("Guardar"), "user__save_connection_circle_users" : MessageLookupByLibrary.simpleMessage("Usuarios"), "user__save_follows_list_create" : MessageLookupByLibrary.simpleMessage("Crear lista"), @@ -812,7 +863,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__save_follows_list_emoji_required_error" : MessageLookupByLibrary.simpleMessage("Emoji es requerido"), "user__save_follows_list_hint_text" : MessageLookupByLibrary.simpleMessage("por ejemplo, Viajes, Fotografía, Gaming"), "user__save_follows_list_name" : MessageLookupByLibrary.simpleMessage("Nombre"), - "user__save_follows_list_name_taken" : m51, + "user__save_follows_list_name_taken" : m53, "user__save_follows_list_save" : MessageLookupByLibrary.simpleMessage("Guardar"), "user__save_follows_list_users" : MessageLookupByLibrary.simpleMessage("Usuarios"), "user__thousand_postfix" : MessageLookupByLibrary.simpleMessage("k"), @@ -822,7 +873,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__timeline_filters_circles" : MessageLookupByLibrary.simpleMessage("Círculos"), "user__timeline_filters_clear_all" : MessageLookupByLibrary.simpleMessage("Borrar todo"), "user__timeline_filters_lists" : MessageLookupByLibrary.simpleMessage("Listas"), - "user__timeline_filters_no_match" : m52, + "user__timeline_filters_no_match" : m54, "user__timeline_filters_search_desc" : MessageLookupByLibrary.simpleMessage("Buscar círculos y listas..."), "user__timeline_filters_title" : MessageLookupByLibrary.simpleMessage("Filtros de línea de tiempo"), "user__translate_see_translation" : MessageLookupByLibrary.simpleMessage("Ver traducción"), @@ -834,15 +885,17 @@ class MessageLookup extends MessageLookupByLibrary { "user__update_connection_circles_title" : MessageLookupByLibrary.simpleMessage("Actualizar círculos de conexión"), "user_search__cancel" : MessageLookupByLibrary.simpleMessage("Cancelar"), "user_search__communities" : MessageLookupByLibrary.simpleMessage("Comunidades"), - "user_search__list_no_results_found" : m53, + "user_search__list_no_results_found" : m55, "user_search__list_refresh_text" : MessageLookupByLibrary.simpleMessage("Refrescar"), "user_search__list_retry" : MessageLookupByLibrary.simpleMessage("Toca para reintentar."), - "user_search__list_search_text" : m54, - "user_search__no_communities_for" : m55, - "user_search__no_results_for" : m56, - "user_search__no_users_for" : m57, + "user_search__list_search_text" : m56, + "user_search__no_communities_for" : m57, + "user_search__no_results_for" : m58, + "user_search__no_users_for" : m59, "user_search__search_text" : MessageLookupByLibrary.simpleMessage("Buscar..."), - "user_search__searching_for" : m58, - "user_search__users" : MessageLookupByLibrary.simpleMessage("Usuarios") + "user_search__searching_for" : m60, + "user_search__users" : MessageLookupByLibrary.simpleMessage("Usuarios"), + "video_picker__from_camera" : MessageLookupByLibrary.simpleMessage("De la cámara"), + "video_picker__from_gallery" : MessageLookupByLibrary.simpleMessage("De la galería") }; } diff --git a/lib/locale/messages_fr.dart b/lib/locale/messages_fr.dart index 6f68fa72b..f8196b25b 100644 --- a/lib/locale/messages_fr.dart +++ b/lib/locale/messages_fr.dart @@ -3,22 +3,21 @@ // messages from the main program should be duplicated here with the same // function name. -// ignore_for_file: unnecessary_brace_in_string_interps +// Ignore issues from commonly used lints in this file. +// ignore_for_file:unnecessary_brace_in_string_interps, unnecessary_new +// ignore_for_file:prefer_single_quotes,comment_references, directives_ordering +// ignore_for_file:annotate_overrides,prefer_generic_function_type_aliases +// ignore_for_file:unused_import, file_names import 'package:intl/intl.dart'; import 'package:intl/message_lookup_by_library.dart'; -// ignore: unnecessary_new final messages = new MessageLookup(); -// ignore: unused_element -final _keepAnalysisHappy = Intl.defaultLocale; - -// ignore: non_constant_identifier_names -typedef MessageIfAbsent(String message_str, List args); +typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { - get localeName => 'fr'; + String get localeName => 'fr'; static m0(minLength, maxLength) => "(${minLength}-${maxLength} caractères)"; @@ -58,88 +57,108 @@ class MessageLookup extends MessageLookupByLibrary { static m18(currentUserLanguage) => "Langue (${currentUserLanguage})"; - static m19(resourceCount, resourceName) => "Voir tous les ${resourceCount} ${resourceName}"; + static m19(limit) => "Fichier trop lourd (limite : ${limit} Mo)"; + + static m20(resourceCount, resourceName) => "Voir tous les ${resourceCount} ${resourceName}"; + + static m21(postCommentText) => "[name] · [username] a également commenté : ${postCommentText}"; - static m20(postCommentText) => "[name] · [username] a également commenté : ${postCommentText}"; + static m22(postCommentText) => "[name] · [username] a commenté sur votre publication : ${postCommentText}"; - static m21(postCommentText) => "[name] · [username] a commenté sur votre publication : ${postCommentText}"; + static m23(postCommentText) => "[name] · [username] a aussi répondu : ${postCommentText}"; - static m22(postCommentText) => "[name] · [username] a aussi répondu : ${postCommentText}"; + static m24(postCommentText) => "[name] · [username] a répondu : ${postCommentText}"; - static m23(postCommentText) => "[name] · [username] a répondu : ${postCommentText}"; + static m25(postCommentText) => "[name] [username] vous a mentionné.e sur un commentaire : ${postCommentText}"; - static m24(postCommentText) => "[name] [username] vous a mentionné.e sur un commentaire: ${postCommentText}"; + static m26(communityName) => "[name] · [username] vous a invité.e à rejoindre la communauté /c/${communityName}."; - static m25(communityName) => "[name] · [username] vous a invité.e à rejoindre la communauté /c/${communityName}."; + static m27(maxLength) => "Un commentaire ne peut pas être plus long que ${maxLength} caractères."; - static m26(maxLength) => "Un commentaire ne peut pas être plus long que ${maxLength} caractères."; + static m28(commentsCount) => "Afficher tous les ${commentsCount} commentaires"; - static m27(commentsCount) => "Afficher tous les ${commentsCount} commentaires"; + static m29(circlesSearchQuery) => "Aucun cercle trouvé correspondant à \'${circlesSearchQuery}\'."; - static m28(circlesSearchQuery) => "Aucun cercle trouvé correspondant à \'${circlesSearchQuery}\'."; + static m30(name) => "${name} n\'a encore rien partagé."; - static m29(name) => "${name} n\'a encore rien partagé."; + static m31(postCreatorUsername) => "cercles de ${postCreatorUsername}"; - static m30(postCreatorUsername) => "cercles de ${postCreatorUsername}"; + static m32(description) => "Failed to preview link with website error: ${description}"; - static m31(maxLength) => "Le nom de cercle ne peut pas être plus long que ${maxLength} caractères."; + static m33(maxLength) => "Le nom de cercle ne peut pas être plus long que ${maxLength} caractères."; - static m32(prettyUsersCount) => "${prettyUsersCount} personnes"; + static m34(prettyUsersCount) => "${prettyUsersCount} personnes"; - static m33(username) => "Êtes-vous sûr.e de vouloir bloquer @${username}?"; + static m35(username) => "Êtes-vous sûr.e de vouloir bloquer @${username}?"; - static m34(userName) => "Confirmer la connexion avec ${userName}"; + static m36(userName) => "Confirmer la connexion avec ${userName}"; - static m35(userName) => "Se connecter avec ${userName}"; + static m37(userName) => "Se connecter avec ${userName}"; - static m36(userName) => "Se déconnecter de ${userName}"; + static m38(userName) => "Se déconnecter de ${userName}"; - static m37(limit) => "Image trop grande (limite : ${limit} Mo)"; + static m39(limit) => "Image trop grande (limite : ${limit} Mo)"; - static m38(username) => "Le nom d\'utilisateur.trice @${username} est pris"; + static m40(username) => "Le pseudo @${username} est déjà pris"; - static m39(searchQuery) => "Aucune émoticône trouvée correspondant à \'${searchQuery}\'."; + static m41(searchQuery) => "Aucune émoticône trouvée correspondant à \'${searchQuery}\'."; - static m40(searchQuery) => "Aucune liste trouvée pour \'${searchQuery}\'"; + static m42(searchQuery) => "Aucune liste trouvée pour \'${searchQuery}\'"; - static m41(prettyUsersCount) => "${prettyUsersCount} comptes"; + static m43(prettyUsersCount) => "${prettyUsersCount} comptes"; - static m42(prettyUsersCount) => "${prettyUsersCount} Comptes"; + static m44(prettyUsersCount) => "${prettyUsersCount} Comptes"; - static m43(groupName) => "Voir tous.tes les ${groupName}"; + static m45(groupName) => "Voir tous.tes les ${groupName}"; - static m44(iosLink, androidLink, inviteLink) => "Bonjour, je voudrais vous inviter à Okuna! Premièrement, téléchargez l\'application sur iTunes (${iosLink}) ou le Play Store (${androidLink}). Deuxièmement, collez ce lien d\'invitation personnalisé dans le formulaire \"Inscription\" dans l\'application Okuna : ${inviteLink}"; + static m46(iosLink, androidLink, inviteLink) => "Bonjour, je voudrais vous inviter à Okuna! Premièrement, téléchargez l\'application sur iTunes (${iosLink}) ou le Play Store (${androidLink}). Deuxièmement, collez ce lien d\'invitation personnalisé dans le formulaire \"Inscription\" dans l\'application Okuna : ${inviteLink}"; - static m45(username) => "Inscrit.e avec le nom d\'utilisateur.trice @${username}"; + static m47(username) => "Inscrit.e avec le nom d\'utilisateur.trice @${username}"; - static m46(email) => "En attente, courriel d\'invitation envoyé à ${email}"; + static m48(email) => "En attente, courriel d\'invitation envoyé à ${email}"; - static m47(maxLength) => "Le nom de liste ne peut pas être plus long que ${maxLength} caractères."; + static m49(maxLength) => "Le nom de liste ne peut pas être plus long que ${maxLength} caractères."; - static m48(maxLength) => "La bio ne peut pas être plus longue que ${maxLength} caractères."; + static m50(maxLength) => "La bio ne peut pas être plus longue que ${maxLength} caractères."; - static m49(maxLength) => "La nom de localité ne peut pas être plus long que ${maxLength} caractères."; + static m51(maxLength) => "La nom de l\'emplacement ne peut pas être plus long que ${maxLength} caractères."; - static m50(takenConnectionsCircleName) => "Le nom de cercle \'${takenConnectionsCircleName}\' est pris"; + static m52(takenConnectionsCircleName) => "Le nom de cercle \'${takenConnectionsCircleName}\' est pris"; - static m51(listName) => "Le nom de liste \'${listName}\' est pris"; + static m53(listName) => "Le nom de liste \'${listName}\' est pris"; - static m52(searchQuery) => "Aucun résultat pour \'${searchQuery}\'."; + static m54(searchQuery) => "Aucun résultat pour \'${searchQuery}\'."; - static m53(resourcePluralName) => "Pas de ${resourcePluralName} trouvé.e.s."; + static m55(resourcePluralName) => "Pas de ${resourcePluralName} trouvé.e.s."; - static m54(resourcePluralName) => "Recherche ${resourcePluralName} ..."; + static m56(resourcePluralName) => "Recherche ${resourcePluralName} ..."; - static m55(searchQuery) => "Aucune communauté trouvée pour \'${searchQuery}\'."; + static m57(searchQuery) => "Aucune communauté trouvée pour \'${searchQuery}\'."; - static m56(searchQuery) => "Aucun résultat pour \'${searchQuery}\'."; + static m58(searchQuery) => "Aucun résultat pour \'${searchQuery}\'."; - static m57(searchQuery) => "Aucun.e utilisateur.trice trouvé.e pour \'${searchQuery}\'."; + static m59(searchQuery) => "Aucun.e utilisateur.trice trouvé.e pour \'${searchQuery}\'."; - static m58(searchQuery) => "Recherche de \'${searchQuery}\'"; + static m60(searchQuery) => "Recherche de \'${searchQuery}\'"; final messages = _notInlinedMessages(_notInlinedMessages); static _notInlinedMessages(_) => { + "application_settings__comment_sort_newest_first" : MessageLookupByLibrary.simpleMessage("Du plus récent au plus ancien"), + "application_settings__comment_sort_oldest_first" : MessageLookupByLibrary.simpleMessage("Du plus ancien au plus récent"), + "application_settings__link_previews" : MessageLookupByLibrary.simpleMessage("Link previews"), + "application_settings__link_previews_autoplay_always" : MessageLookupByLibrary.simpleMessage("Always"), + "application_settings__link_previews_autoplay_never" : MessageLookupByLibrary.simpleMessage("Never"), + "application_settings__link_previews_autoplay_wifi_only" : MessageLookupByLibrary.simpleMessage("Wifi only"), + "application_settings__link_previews_show" : MessageLookupByLibrary.simpleMessage("Show"), + "application_settings__tap_to_change" : MessageLookupByLibrary.simpleMessage("(Appuyez pour changer)"), + "application_settings__videos" : MessageLookupByLibrary.simpleMessage("Vidéos"), + "application_settings__videos_autoplay" : MessageLookupByLibrary.simpleMessage("Lecture automatique"), + "application_settings__videos_autoplay_always" : MessageLookupByLibrary.simpleMessage("Toujours"), + "application_settings__videos_autoplay_never" : MessageLookupByLibrary.simpleMessage("Jamais"), + "application_settings__videos_autoplay_wifi_only" : MessageLookupByLibrary.simpleMessage("Wifi uniquement"), + "application_settings__videos_sound" : MessageLookupByLibrary.simpleMessage("Son"), + "application_settings__videos_sound_disabled" : MessageLookupByLibrary.simpleMessage("Désactivé"), + "application_settings__videos_sound_enabled" : MessageLookupByLibrary.simpleMessage("Activé"), "auth__change_password_current_pwd" : MessageLookupByLibrary.simpleMessage("Mot de passe actuel"), "auth__change_password_current_pwd_hint" : MessageLookupByLibrary.simpleMessage("Entrez votre mot de passe actuel"), "auth__change_password_current_pwd_incorrect" : MessageLookupByLibrary.simpleMessage("Le mot de passe entré est incorrect"), @@ -164,11 +183,11 @@ class MessageLookup extends MessageLookupByLibrary { "auth__create_acc__done_description" : MessageLookupByLibrary.simpleMessage("Votre compte a été créé."), "auth__create_acc__done_subtext" : MessageLookupByLibrary.simpleMessage("Vous pouvez le changer plus tard dans vos praramètres de profil."), "auth__create_acc__done_title" : MessageLookupByLibrary.simpleMessage("Hourra !"), - "auth__create_acc__email_empty_error" : MessageLookupByLibrary.simpleMessage("😱 Votre adresse courriel ne peut pas être vide"), - "auth__create_acc__email_invalid_error" : MessageLookupByLibrary.simpleMessage("😅 Veuillez fournir une adresse courriel valide."), - "auth__create_acc__email_placeholder" : MessageLookupByLibrary.simpleMessage("karine_vanasse@courriel.com"), - "auth__create_acc__email_server_error" : MessageLookupByLibrary.simpleMessage("😭 Nous éprouvons des problèmes avec nos serveurs, veuillez s.v.p. réessayer dans quelques minutes."), - "auth__create_acc__email_taken_error" : MessageLookupByLibrary.simpleMessage("🤔 Un compte existe déjà pour cette adresse courriel."), + "auth__create_acc__email_empty_error" : MessageLookupByLibrary.simpleMessage("😱 Votre email ne peut pas être vide"), + "auth__create_acc__email_invalid_error" : MessageLookupByLibrary.simpleMessage("😅 Veuillez fournir un email valide."), + "auth__create_acc__email_placeholder" : MessageLookupByLibrary.simpleMessage("louis_de_funes@mail.com"), + "auth__create_acc__email_server_error" : MessageLookupByLibrary.simpleMessage("😭 Nous avons des problèmes avec nos serveurs, veuillez réessayer dans quelques minutes."), + "auth__create_acc__email_taken_error" : MessageLookupByLibrary.simpleMessage("🤔 Un compte existe déjà avec cet email."), "auth__create_acc__lets_get_started" : MessageLookupByLibrary.simpleMessage("Commençons"), "auth__create_acc__link_empty_error" : MessageLookupByLibrary.simpleMessage("Le lien ne peut pas être vide."), "auth__create_acc__link_invalid_error" : MessageLookupByLibrary.simpleMessage("Ce lien semble invalide."), @@ -181,8 +200,8 @@ class MessageLookup extends MessageLookupByLibrary { "auth__create_acc__password_empty_error" : MessageLookupByLibrary.simpleMessage("😱 Votre mot de passe ne peut pas être vide"), "auth__create_acc__password_length_error" : MessageLookupByLibrary.simpleMessage("😅 Un mot de passe doit comporter entre 8 et 64 caractères."), "auth__create_acc__paste_link" : MessageLookupByLibrary.simpleMessage("Collez votre lien d\'inscription ci-dessous"), - "auth__create_acc__paste_link_help_text" : MessageLookupByLibrary.simpleMessage("Utilisez le lien du bouton « Rejoignez Okuna » dans votre courriel d\'invitation."), - "auth__create_acc__paste_password_reset_link" : MessageLookupByLibrary.simpleMessage("Coller votre lien de réinitialisation de mot de passe ci-dessous"), + "auth__create_acc__paste_link_help_text" : MessageLookupByLibrary.simpleMessage("Utilisez le lien du bouton « Rejoignez Okuna » dans votre email d\'invitation."), + "auth__create_acc__paste_password_reset_link" : MessageLookupByLibrary.simpleMessage("Collez votre lien de réinitialisation de mot de passe ci-dessous"), "auth__create_acc__previous" : MessageLookupByLibrary.simpleMessage("Précédent"), "auth__create_acc__register" : MessageLookupByLibrary.simpleMessage("Inscription"), "auth__create_acc__request_invite" : MessageLookupByLibrary.simpleMessage("Pas d\'invitation ? Demandez-en une ici."), @@ -193,27 +212,27 @@ class MessageLookup extends MessageLookupByLibrary { "auth__create_acc__submit_loading_title" : MessageLookupByLibrary.simpleMessage("Tenez bon !"), "auth__create_acc__subscribe" : MessageLookupByLibrary.simpleMessage("Demander"), "auth__create_acc__subscribe_to_waitlist_text" : MessageLookupByLibrary.simpleMessage("Demandez une invitation !"), - "auth__create_acc__username_characters_error" : MessageLookupByLibrary.simpleMessage("😅 Un nom d\'utilisateur.trice ne peut contenir que des caractères alphanumériques et des soulignements."), - "auth__create_acc__username_empty_error" : MessageLookupByLibrary.simpleMessage("😱 Le nom d\'utilisateur.trice ne peut pas être vide."), - "auth__create_acc__username_length_error" : MessageLookupByLibrary.simpleMessage("😅 Un nom d\'utilisateur.trice ne peut pas être plus long que 30 caractères."), - "auth__create_acc__username_placeholder" : MessageLookupByLibrary.simpleMessage("armandvaillancourt"), - "auth__create_acc__username_server_error" : MessageLookupByLibrary.simpleMessage("😭 Nous éprouvons des problèmes avec nos serveurs, veuillez s.v.p. réessayer dans quelques minutes."), - "auth__create_acc__username_taken_error" : MessageLookupByLibrary.simpleMessage("😩 Le nom d\'utilisateur.trice @%s est pris."), + "auth__create_acc__username_characters_error" : MessageLookupByLibrary.simpleMessage("😅 Un pseudo ne peut contenir que des caractères alphanumériques et des underscores."), + "auth__create_acc__username_empty_error" : MessageLookupByLibrary.simpleMessage("😱 Le pseudo ne peut pas être vide."), + "auth__create_acc__username_length_error" : MessageLookupByLibrary.simpleMessage("😅 Un pseudo ne peut pas être plus long que 30 caractères."), + "auth__create_acc__username_placeholder" : MessageLookupByLibrary.simpleMessage("claudemonnet"), + "auth__create_acc__username_server_error" : MessageLookupByLibrary.simpleMessage("😭 Nous avons des problèmes avec nos serveurs, veuillez réessayer dans quelques minutes."), + "auth__create_acc__username_taken_error" : MessageLookupByLibrary.simpleMessage("😩 Le pseudo @%s est déjà pris."), "auth__create_acc__welcome_to_beta" : MessageLookupByLibrary.simpleMessage("Bienvenue sur la version bêta !"), "auth__create_acc__what_avatar" : MessageLookupByLibrary.simpleMessage("Choisissez une photo de profil"), - "auth__create_acc__what_email" : MessageLookupByLibrary.simpleMessage("Quelle est votre adresse courriel?"), + "auth__create_acc__what_email" : MessageLookupByLibrary.simpleMessage("Quelle est votre email?"), "auth__create_acc__what_name" : MessageLookupByLibrary.simpleMessage("Quel est votre nom ?"), "auth__create_acc__what_password" : MessageLookupByLibrary.simpleMessage("Choisissez un mot de passe"), "auth__create_acc__what_password_subtext" : MessageLookupByLibrary.simpleMessage("(minimum 8 caractères.)"), - "auth__create_acc__what_username" : MessageLookupByLibrary.simpleMessage("Choisissez un nom d\'utilisateur.trice"), + "auth__create_acc__what_username" : MessageLookupByLibrary.simpleMessage("Choisissez un pseudo"), "auth__create_acc__your_subscribed" : MessageLookupByLibrary.simpleMessage("Vous êtes à la position {0} sur la liste d\'attente."), "auth__create_acc__your_username_is" : MessageLookupByLibrary.simpleMessage("Votre nom d\'utilisateur.trice est :"), "auth__create_acc_password_hint_text" : m0, - "auth__create_account" : MessageLookupByLibrary.simpleMessage("Inscription"), + "auth__create_account" : MessageLookupByLibrary.simpleMessage("S\'inscrire"), "auth__description_empty_error" : MessageLookupByLibrary.simpleMessage("La description ne peut pas être vide."), "auth__description_range_error" : m1, - "auth__email_empty_error" : MessageLookupByLibrary.simpleMessage("Le courriel ne peut pas être vide."), - "auth__email_invalid_error" : MessageLookupByLibrary.simpleMessage("Veuillez fournir une adresse courriel valide."), + "auth__email_empty_error" : MessageLookupByLibrary.simpleMessage("L\'email ne peut pas être vide."), + "auth__email_invalid_error" : MessageLookupByLibrary.simpleMessage("Veuillez fournir un email valide."), "auth__headline" : MessageLookupByLibrary.simpleMessage("Un meilleur réseau social."), "auth__login" : MessageLookupByLibrary.simpleMessage("Ouvrir une session"), "auth__login__connection_error" : MessageLookupByLibrary.simpleMessage("Nous ne pouvons pas établir de connexion avec nos serveurs. Êtes-vous connecté.e à Internet ?"), @@ -240,7 +259,7 @@ class MessageLookup extends MessageLookupByLibrary { "auth__password_range_error" : m3, "auth__reset_password_success_info" : MessageLookupByLibrary.simpleMessage("Votre mot de passe a été mis à jour avec succès"), "auth__reset_password_success_title" : MessageLookupByLibrary.simpleMessage("Tout est prêt !"), - "auth__username_characters_error" : MessageLookupByLibrary.simpleMessage("Un nom d\'utilisateur.trice ne peut contenir que des caractères alphanumériques et des soulignements."), + "auth__username_characters_error" : MessageLookupByLibrary.simpleMessage("Un nom d\'utilisateur.trice ne peut contenir que des caractères alphanumériques et des underscores."), "auth__username_empty_error" : MessageLookupByLibrary.simpleMessage("Le nom d\'utilisateur.trice ne peut pas être vide."), "auth__username_maxlength_error" : m4, "community__about" : MessageLookupByLibrary.simpleMessage("À propos"), @@ -259,13 +278,13 @@ class MessageLookup extends MessageLookupByLibrary { "community__administrator_you" : MessageLookupByLibrary.simpleMessage("Vous"), "community__administrators_title" : MessageLookupByLibrary.simpleMessage("Administrateurs.trices"), "community__ban_confirmation" : m7, - "community__ban_desc" : MessageLookupByLibrary.simpleMessage("Ceci supprimera l\'utilisateur.trice de cette communauté et lui interdira de la rejoindre à nouveau."), + "community__ban_desc" : MessageLookupByLibrary.simpleMessage("Ceci supprimera l\'utilisateur.trice de cette communauté et lui interdira de revenir."), "community__ban_user_title" : MessageLookupByLibrary.simpleMessage("Bannir l\'utilisateur.trice"), "community__banned_user_text" : MessageLookupByLibrary.simpleMessage("utilisateur.trice banni.e"), "community__banned_users_text" : MessageLookupByLibrary.simpleMessage("utilisateurs.trices banni.e.s"), "community__banned_users_title" : MessageLookupByLibrary.simpleMessage("Utilisateurs.trices banni.e.s"), "community__button_rules" : MessageLookupByLibrary.simpleMessage("Règles"), - "community__button_staff" : MessageLookupByLibrary.simpleMessage("Personnel"), + "community__button_staff" : MessageLookupByLibrary.simpleMessage("L\'équipe"), "community__categories" : MessageLookupByLibrary.simpleMessage("catégories."), "community__category" : MessageLookupByLibrary.simpleMessage("catégorie."), "community__communities" : MessageLookupByLibrary.simpleMessage("communautés"), @@ -303,9 +322,9 @@ class MessageLookup extends MessageLookupByLibrary { "community__manage_admins_title" : MessageLookupByLibrary.simpleMessage("Administrateurs.trices"), "community__manage_banned_desc" : MessageLookupByLibrary.simpleMessage("Voir, ajouter et supprimer des utilisateurs.trices banni.e.s."), "community__manage_banned_title" : MessageLookupByLibrary.simpleMessage("Utilisateurs.trices banni.e.s"), - "community__manage_closed_posts_desc" : MessageLookupByLibrary.simpleMessage("Voir et gérer les publications fermées"), - "community__manage_closed_posts_title" : MessageLookupByLibrary.simpleMessage("Publications fermées"), - "community__manage_delete_desc" : MessageLookupByLibrary.simpleMessage("Supprimer la communauté, pour toujours."), + "community__manage_closed_posts_desc" : MessageLookupByLibrary.simpleMessage("Voir et gérer les publications désactivées"), + "community__manage_closed_posts_title" : MessageLookupByLibrary.simpleMessage("Publications désactivées"), + "community__manage_delete_desc" : MessageLookupByLibrary.simpleMessage("Supprime définitivement la communauté."), "community__manage_delete_title" : MessageLookupByLibrary.simpleMessage("Supprimer la communauté"), "community__manage_details_desc" : MessageLookupByLibrary.simpleMessage("Changer le titre, le nom, l\'avatar, la photo de couverture et plus."), "community__manage_details_title" : MessageLookupByLibrary.simpleMessage("Détails"), @@ -313,8 +332,8 @@ class MessageLookup extends MessageLookupByLibrary { "community__manage_invite_title" : MessageLookupByLibrary.simpleMessage("Inviter des gens"), "community__manage_leave_desc" : MessageLookupByLibrary.simpleMessage("Quitter la communauté."), "community__manage_leave_title" : MessageLookupByLibrary.simpleMessage("Quitter la communauté"), - "community__manage_mod_reports_desc" : MessageLookupByLibrary.simpleMessage("Vérifiez les signalements pour modération communautaire."), - "community__manage_mod_reports_title" : MessageLookupByLibrary.simpleMessage("Signalements pour modération"), + "community__manage_mod_reports_desc" : MessageLookupByLibrary.simpleMessage("Examiner les signalements."), + "community__manage_mod_reports_title" : MessageLookupByLibrary.simpleMessage("Signalements"), "community__manage_mods_desc" : MessageLookupByLibrary.simpleMessage("Voir, ajouter et supprimer des modérateurs.trices."), "community__manage_mods_title" : MessageLookupByLibrary.simpleMessage("Modérateurs.trices"), "community__manage_remove_favourite" : MessageLookupByLibrary.simpleMessage("Supprimer la communauté de vos favorites"), @@ -344,6 +363,7 @@ class MessageLookup extends MessageLookupByLibrary { "community__posts" : MessageLookupByLibrary.simpleMessage("Publications"), "community__refresh_text" : MessageLookupByLibrary.simpleMessage("Actualiser"), "community__refreshing" : MessageLookupByLibrary.simpleMessage("Actualisation de la communauté"), + "community__retry_loading_posts" : MessageLookupByLibrary.simpleMessage("Appuyez pour réessayer"), "community__rules_empty_error" : MessageLookupByLibrary.simpleMessage("Les règles ne peuvent pas être vides."), "community__rules_range_error" : m14, "community__rules_text" : MessageLookupByLibrary.simpleMessage("Règles"), @@ -386,20 +406,21 @@ class MessageLookup extends MessageLookupByLibrary { "contextual_account_search_box__suggestions" : MessageLookupByLibrary.simpleMessage("Suggestions"), "drawer__account_settings" : MessageLookupByLibrary.simpleMessage("Paramètres du compte"), "drawer__account_settings_blocked_users" : MessageLookupByLibrary.simpleMessage("Utilisateurs.trices bloqué.e.s"), - "drawer__account_settings_change_email" : MessageLookupByLibrary.simpleMessage("Changer l\'adresse courriel"), + "drawer__account_settings_change_email" : MessageLookupByLibrary.simpleMessage("Changer l\'email"), "drawer__account_settings_change_password" : MessageLookupByLibrary.simpleMessage("Changer le mot de passe"), "drawer__account_settings_delete_account" : MessageLookupByLibrary.simpleMessage("Supprimer mon compte"), "drawer__account_settings_language" : m18, "drawer__account_settings_language_text" : MessageLookupByLibrary.simpleMessage("Langue"), "drawer__account_settings_notifications" : MessageLookupByLibrary.simpleMessage("Notifications"), - "drawer__app_account_text" : MessageLookupByLibrary.simpleMessage("Application et Compte"), + "drawer__app_account_text" : MessageLookupByLibrary.simpleMessage("Application & Compte"), "drawer__application_settings" : MessageLookupByLibrary.simpleMessage("Paramètres de l\'application"), "drawer__connections" : MessageLookupByLibrary.simpleMessage("Mes connexions"), "drawer__customize" : MessageLookupByLibrary.simpleMessage("Personnaliser"), + "drawer__developer_settings" : MessageLookupByLibrary.simpleMessage("Paramètres développeur"), "drawer__global_moderation" : MessageLookupByLibrary.simpleMessage("Modération globale"), "drawer__help" : MessageLookupByLibrary.simpleMessage("Assistance et commentaires"), "drawer__lists" : MessageLookupByLibrary.simpleMessage("Mes listes"), - "drawer__logout" : MessageLookupByLibrary.simpleMessage("Fermer la session"), + "drawer__logout" : MessageLookupByLibrary.simpleMessage("Se déconnecter"), "drawer__main_title" : MessageLookupByLibrary.simpleMessage("Mon Okuna"), "drawer__menu_title" : MessageLookupByLibrary.simpleMessage("Menu"), "drawer__my_circles" : MessageLookupByLibrary.simpleMessage("Mes cercles"), @@ -412,12 +433,12 @@ class MessageLookup extends MessageLookupByLibrary { "drawer__profile" : MessageLookupByLibrary.simpleMessage("Profil"), "drawer__settings" : MessageLookupByLibrary.simpleMessage("Paramètres"), "drawer__themes" : MessageLookupByLibrary.simpleMessage("Thèmes"), - "drawer__useful_links_guidelines" : MessageLookupByLibrary.simpleMessage("Lignes directrices d\'Okuna"), - "drawer__useful_links_guidelines_bug_tracker" : MessageLookupByLibrary.simpleMessage("Outil de suivi des bogues"), - "drawer__useful_links_guidelines_bug_tracker_desc" : MessageLookupByLibrary.simpleMessage("Signaler un bogue ou voter sur les bogues existants"), - "drawer__useful_links_guidelines_desc" : MessageLookupByLibrary.simpleMessage("Les lignes directrices dont on s\'attend que nous suivions tous.tes pour une coexistence saine et amicale."), + "drawer__useful_links_guidelines" : MessageLookupByLibrary.simpleMessage("Directives générales d\'Okuna"), + "drawer__useful_links_guidelines_bug_tracker" : MessageLookupByLibrary.simpleMessage("Outil de suivi des bug"), + "drawer__useful_links_guidelines_bug_tracker_desc" : MessageLookupByLibrary.simpleMessage("Signaler un bug"), + "drawer__useful_links_guidelines_desc" : MessageLookupByLibrary.simpleMessage("Les directives générales que nous devons tous.tes suivre pour une coexistence saine et amicale."), "drawer__useful_links_guidelines_feature_requests" : MessageLookupByLibrary.simpleMessage("Demandes de fonctionnalités"), - "drawer__useful_links_guidelines_feature_requests_desc" : MessageLookupByLibrary.simpleMessage("Demander une fonctionnalité ou voter sur les demandes existantes"), + "drawer__useful_links_guidelines_feature_requests_desc" : MessageLookupByLibrary.simpleMessage("Demander une fonctionnalité ou voter pour les demandes existantes"), "drawer__useful_links_guidelines_github" : MessageLookupByLibrary.simpleMessage("Tableau de projet Github"), "drawer__useful_links_guidelines_github_desc" : MessageLookupByLibrary.simpleMessage("Regardez ce sur quoi nous travaillons actuellement"), "drawer__useful_links_guidelines_handbook" : MessageLookupByLibrary.simpleMessage("Manuel d\'Okuna"), @@ -429,22 +450,25 @@ class MessageLookup extends MessageLookupByLibrary { "drawer__useful_links_title" : MessageLookupByLibrary.simpleMessage("Liens utiles"), "error__no_internet_connection" : MessageLookupByLibrary.simpleMessage("Aucune connexion Internet"), "error__unknown_error" : MessageLookupByLibrary.simpleMessage("Erreur inconnue"), + "image_picker__error_too_large" : m19, + "image_picker__from_camera" : MessageLookupByLibrary.simpleMessage("Depuis l\'appareil photo"), + "image_picker__from_gallery" : MessageLookupByLibrary.simpleMessage("Depuis la galerie"), "moderation__actions_chat_with_team" : MessageLookupByLibrary.simpleMessage("Discutez avec l\'équipe"), "moderation__actions_review" : MessageLookupByLibrary.simpleMessage("Vérifier"), "moderation__category_text" : MessageLookupByLibrary.simpleMessage("Catégorie"), "moderation__community_moderated_objects" : MessageLookupByLibrary.simpleMessage("Objets modérés de la communauté"), "moderation__community_review_approve" : MessageLookupByLibrary.simpleMessage("Approuver"), - "moderation__community_review_item_verified" : MessageLookupByLibrary.simpleMessage("Ce signalement a été vérifié"), + "moderation__community_review_item_verified" : MessageLookupByLibrary.simpleMessage("Ce signalement a été examiné"), "moderation__community_review_object" : MessageLookupByLibrary.simpleMessage("Objet"), "moderation__community_review_reject" : MessageLookupByLibrary.simpleMessage("rejeter"), - "moderation__community_review_title" : MessageLookupByLibrary.simpleMessage("Vérifier l\'objet modéré"), + "moderation__community_review_title" : MessageLookupByLibrary.simpleMessage("Examiner l\'objet modéré"), "moderation__confirm_report_community_reported" : MessageLookupByLibrary.simpleMessage("Communauté signalée"), "moderation__confirm_report_item_reported" : MessageLookupByLibrary.simpleMessage("Objet signalé"), - "moderation__confirm_report_post_comment_reported" : MessageLookupByLibrary.simpleMessage("Commentaire sur une publication signalé"), + "moderation__confirm_report_post_comment_reported" : MessageLookupByLibrary.simpleMessage("Commentaire signalé"), "moderation__confirm_report_post_reported" : MessageLookupByLibrary.simpleMessage("Publication signalée"), "moderation__confirm_report_provide_details" : MessageLookupByLibrary.simpleMessage("Pouvez-vous fournir des détails supplémentaires qui pourraient être pertinents au signalement?"), "moderation__confirm_report_provide_happen_next" : MessageLookupByLibrary.simpleMessage("Voici ce qui va se passer ensuite :"), - "moderation__confirm_report_provide_happen_next_desc" : MessageLookupByLibrary.simpleMessage("- Votre signalement sera envoyé de façon anonyme.\n- Si vous signalez une publication ou un commentaire, le signalement sera envoyé au personel d\'Okuna et si cela s\'applique, les modérateurs.trices de la communauté, puis la publication sera retirée de votre fil d\'actualités.\n- Si vous signalez un compte ou une communauté, le signalement sera envoyé au personel d\'Okuna.\n- Nous allons vérifier le signalement et si nous l\'approuvons, le contenu fautif sera supprimé et des pénalités seront décernées aux personnes visées, allant d\'une suspension temporaire jusqu\'à la suppression du compte, dépendant de la sévérité de la transgression.\n- S\'il est établi que le signalement a été fait dans une tentative d\'endommager la réputation d\'un.e autre membre ou communauté dans la plateforme, sans qu\'il y ait une offense de la dite raison du signalement, les pénalités s\'appliqueront à vous.\n"), + "moderation__confirm_report_provide_happen_next_desc" : MessageLookupByLibrary.simpleMessage("- Votre signalement sera envoyé de façon anonyme.\n- Si vous signalez une publication ou un commentaire, le signalement sera envoyé au personnel d\'Okuna et aux modérateurs.trices de la communauté si cela s\'applique ; la publication sera ensuite retirée de votre fil d\'actualités.\n- Si vous signalez un compte ou une communauté, le signalement sera envoyé au personnel d\'Okuna.\n- Nous allons vérifier le signalement et si nous l\'approuvons, le contenu fautif sera supprimé et des pénalités seront infligées aux personnes visées, allant d\'une suspension temporaire jusqu\'à la suppression du compte, dépendant de la sévérité de la transgression.\n- S\'il est établi que le signalement a été fait dans une tentative d\'endommager la réputation d\'un.e autre membre ou communauté dans la plateforme, sans qu\'il y ait une transgression avérée, les pénalités s\'appliqueront à vous.\n"), "moderation__confirm_report_provide_optional_hint_text" : MessageLookupByLibrary.simpleMessage("Tapez ici..."), "moderation__confirm_report_provide_optional_info" : MessageLookupByLibrary.simpleMessage("(Facultatif)"), "moderation__confirm_report_submit" : MessageLookupByLibrary.simpleMessage("Je comprends, envoyer."), @@ -459,8 +483,8 @@ class MessageLookup extends MessageLookupByLibrary { "moderation__filters_type" : MessageLookupByLibrary.simpleMessage("Type"), "moderation__filters_verified" : MessageLookupByLibrary.simpleMessage("Vérifié"), "moderation__global_review_object_text" : MessageLookupByLibrary.simpleMessage("Objet"), - "moderation__global_review_title" : MessageLookupByLibrary.simpleMessage("Vérifier l\'objet modéré"), - "moderation__global_review_unverify_text" : MessageLookupByLibrary.simpleMessage("Ne pas vérifier"), + "moderation__global_review_title" : MessageLookupByLibrary.simpleMessage("Examiner l\'objet modéré"), + "moderation__global_review_unverify_text" : MessageLookupByLibrary.simpleMessage("Révoquer la vérification"), "moderation__global_review_verify_text" : MessageLookupByLibrary.simpleMessage("Vérifier "), "moderation__globally_moderated_objects" : MessageLookupByLibrary.simpleMessage("Objets modérés globalement"), "moderation__moderated_object_false_text" : MessageLookupByLibrary.simpleMessage("Faux"), @@ -485,12 +509,12 @@ class MessageLookup extends MessageLookupByLibrary { "moderation__reporter_text" : MessageLookupByLibrary.simpleMessage("Signaleur.euse"), "moderation__reports_preview_resource_reports" : MessageLookupByLibrary.simpleMessage("signalements"), "moderation__reports_preview_title" : MessageLookupByLibrary.simpleMessage("Signalements"), - "moderation__reports_see_all" : m19, + "moderation__reports_see_all" : m20, "moderation__tap_to_retry" : MessageLookupByLibrary.simpleMessage("Appuyer pour réessayer de charger les éléments"), "moderation__update_category_save" : MessageLookupByLibrary.simpleMessage("Enregistrer"), "moderation__update_category_title" : MessageLookupByLibrary.simpleMessage("Mettre à jour une catégorie"), "moderation__update_description_report_desc" : MessageLookupByLibrary.simpleMessage("Signaler la description"), - "moderation__update_description_report_hint_text" : MessageLookupByLibrary.simpleMessage("par exemple: l\'élément du signalement indique que..."), + "moderation__update_description_report_hint_text" : MessageLookupByLibrary.simpleMessage("Exemple: L\'élément a été signalé parce que..."), "moderation__update_description_save" : MessageLookupByLibrary.simpleMessage("Enregistrer"), "moderation__update_description_title" : MessageLookupByLibrary.simpleMessage("Modifier la description"), "moderation__update_status_save" : MessageLookupByLibrary.simpleMessage("Enregistrer"), @@ -500,18 +524,18 @@ class MessageLookup extends MessageLookupByLibrary { "moderation__you_have_reported_community_text" : MessageLookupByLibrary.simpleMessage("Vous avez signalé cette communauté"), "moderation__you_have_reported_post_text" : MessageLookupByLibrary.simpleMessage("Vous avez signalé cette publication"), "notifications__accepted_connection_request_tile" : MessageLookupByLibrary.simpleMessage("[name] · [username] a accepté votre demande de connexion."), - "notifications__comment_comment_notification_tile_user_also_commented" : m20, - "notifications__comment_comment_notification_tile_user_commented" : m21, + "notifications__comment_comment_notification_tile_user_also_commented" : m21, + "notifications__comment_comment_notification_tile_user_commented" : m22, "notifications__comment_desc" : MessageLookupByLibrary.simpleMessage("Soyez averti.e lorsque quelqu\'un commente sur l\'une de vos publications ou une sur laquelle vous avez commenté"), - "notifications__comment_reaction_desc" : MessageLookupByLibrary.simpleMessage("Soyez averti.e lorsque quelqu\'un réagit à l\'un de vos commentaires sur une publication"), - "notifications__comment_reaction_title" : MessageLookupByLibrary.simpleMessage("Réaction à l\'un de vos commentaires sur une publication"), + "notifications__comment_reaction_desc" : MessageLookupByLibrary.simpleMessage("Soyez averti.e lorsque quelqu\'un réagit à l\'un de vos commentaires"), + "notifications__comment_reaction_title" : MessageLookupByLibrary.simpleMessage("Réaction à l\'un de vos commentaires"), "notifications__comment_reply_desc" : MessageLookupByLibrary.simpleMessage("Soyez averti.e lorsque quelqu\'un répond à l\'un de vos commentaires ou un auquel vous avez aussi répondu"), - "notifications__comment_reply_notification_tile_user_also_replied" : m22, - "notifications__comment_reply_notification_tile_user_replied" : m23, - "notifications__comment_reply_title" : MessageLookupByLibrary.simpleMessage("Réponse à l\'un de vos commentaires sur une publication"), + "notifications__comment_reply_notification_tile_user_also_replied" : m23, + "notifications__comment_reply_notification_tile_user_replied" : m24, + "notifications__comment_reply_title" : MessageLookupByLibrary.simpleMessage("Réponse à l\'un de vos commentaires"), "notifications__comment_title" : MessageLookupByLibrary.simpleMessage("Commentaire sur l\'une de vos publications"), - "notifications__comment_user_mention_desc" : MessageLookupByLibrary.simpleMessage("Soyez averti.e lorsque quelqu\'un vous mentionne sur l\'un de leurs commentaires"), - "notifications__comment_user_mention_title" : MessageLookupByLibrary.simpleMessage("Mention sur un commentaire d\'une publication"), + "notifications__comment_user_mention_desc" : MessageLookupByLibrary.simpleMessage("Soyez averti.e lorsque quelqu\'un vous mentionne dans l\'un de leurs commentaires"), + "notifications__comment_user_mention_title" : MessageLookupByLibrary.simpleMessage("Mention dans un commentaire"), "notifications__community_invite_desc" : MessageLookupByLibrary.simpleMessage("Soyez averti.e lorsque quelqu\'un vous invite à rejoindre une communauté"), "notifications__community_invite_title" : MessageLookupByLibrary.simpleMessage("Invitation à une communauté"), "notifications__connection_desc" : MessageLookupByLibrary.simpleMessage("Soyez averti.e lorsque quelqu\'un veut se connecter avec vous"), @@ -522,7 +546,7 @@ class MessageLookup extends MessageLookupByLibrary { "notifications__following_you_tile" : MessageLookupByLibrary.simpleMessage("[name] · [username] est maintenant l\'un.e de vos abonné.e.s"), "notifications__general_desc" : MessageLookupByLibrary.simpleMessage("Soyez averti.e lorsque quelque chose se produit"), "notifications__general_title" : MessageLookupByLibrary.simpleMessage("Notifications"), - "notifications__mentioned_in_post_comment_tile" : m24, + "notifications__mentioned_in_post_comment_tile" : m25, "notifications__mentioned_in_post_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] vous a mentionné.e sur une publication."), "notifications__mute_post_turn_off_post_comment_notifications" : MessageLookupByLibrary.simpleMessage("Désactiver les notifications de commentaires sur les publications"), "notifications__mute_post_turn_off_post_notifications" : MessageLookupByLibrary.simpleMessage("Désactiver les notifications de publications"), @@ -530,12 +554,14 @@ class MessageLookup extends MessageLookupByLibrary { "notifications__mute_post_turn_on_post_notifications" : MessageLookupByLibrary.simpleMessage("Activer les notifications de publications"), "notifications__post_reaction_desc" : MessageLookupByLibrary.simpleMessage("Soyez averti.e lorsque quelqu\'un réagit à l\'une de vos publications"), "notifications__post_reaction_title" : MessageLookupByLibrary.simpleMessage("Réaction sur l\'une de vos publications"), - "notifications__post_user_mention_desc" : MessageLookupByLibrary.simpleMessage("Soyez averti.e lorsque quelqu\'un vous mentionne sur l\'une de leurs publications"), + "notifications__post_user_mention_desc" : MessageLookupByLibrary.simpleMessage("Soyez averti.e lorsque quelqu\'un vous mentionne dans l\'une de leurs publications"), "notifications__post_user_mention_title" : MessageLookupByLibrary.simpleMessage("Mention sur une publication"), - "notifications__reacted_to_post_comment_tile" : MessageLookupByLibrary.simpleMessage("[name] · [username] a réagi à votre commentaire sur une publication."), + "notifications__reacted_to_post_comment_tile" : MessageLookupByLibrary.simpleMessage("[name] · [username] a réagi à votre commentaire."), "notifications__reacted_to_post_tile" : MessageLookupByLibrary.simpleMessage("[name] · [username] a réagi à votre publication."), "notifications__settings_title" : MessageLookupByLibrary.simpleMessage("Paramètres de notifications"), - "notifications__user_community_invite_tile" : m25, + "notifications__tab_general" : MessageLookupByLibrary.simpleMessage("Général"), + "notifications__tab_requests" : MessageLookupByLibrary.simpleMessage("Requêtes"), + "notifications__user_community_invite_tile" : m26, "post__action_comment" : MessageLookupByLibrary.simpleMessage("Commenter"), "post__action_react" : MessageLookupByLibrary.simpleMessage("Réagir"), "post__action_reply" : MessageLookupByLibrary.simpleMessage("Répondre"), @@ -547,14 +573,15 @@ class MessageLookup extends MessageLookupByLibrary { "post__actions_report_text" : MessageLookupByLibrary.simpleMessage("Signaler"), "post__actions_reported_text" : MessageLookupByLibrary.simpleMessage("Signalé.e"), "post__actions_show_more_text" : MessageLookupByLibrary.simpleMessage("Afficher plus"), + "post__close_create_post_label" : MessageLookupByLibrary.simpleMessage("Close create new post"), "post__close_post" : MessageLookupByLibrary.simpleMessage("Fermer la publication"), - "post__comment_maxlength_error" : m26, + "post__comment_maxlength_error" : m27, "post__comment_reply_expanded_post" : MessageLookupByLibrary.simpleMessage("Publication"), "post__comment_reply_expanded_reply_comment" : MessageLookupByLibrary.simpleMessage("Répondre au commentaire"), "post__comment_reply_expanded_reply_hint_text" : MessageLookupByLibrary.simpleMessage("Votre réponse..."), "post__comment_required_error" : MessageLookupByLibrary.simpleMessage("Le commentaire ne peut pas être vide."), "post__commenter_expanded_edit_comment" : MessageLookupByLibrary.simpleMessage("Modifier le commentaire"), - "post__commenter_expanded_join_conversation" : MessageLookupByLibrary.simpleMessage("Participez à la conversation..."), + "post__commenter_expanded_join_conversation" : MessageLookupByLibrary.simpleMessage("Rejoindre la conversation..."), "post__commenter_expanded_save" : MessageLookupByLibrary.simpleMessage("Enregistrer"), "post__commenter_expanded_start_conversation" : MessageLookupByLibrary.simpleMessage("Commencer une conversation..."), "post__commenter_post_text" : MessageLookupByLibrary.simpleMessage("Publication"), @@ -585,10 +612,13 @@ class MessageLookup extends MessageLookupByLibrary { "post__comments_page_tap_to_retry" : MessageLookupByLibrary.simpleMessage("Appuyer pour réessayer de charger les commentaires."), "post__comments_page_tap_to_retry_replies" : MessageLookupByLibrary.simpleMessage("Appuyer pour réessayer de charger les réponses."), "post__comments_page_title" : MessageLookupByLibrary.simpleMessage("Commentaires sur la publication"), - "post__comments_view_all_comments" : m27, + "post__comments_view_all_comments" : m28, "post__create_new" : MessageLookupByLibrary.simpleMessage("Nouvelle publication"), + "post__create_new_community_post_label" : MessageLookupByLibrary.simpleMessage("Create new communtiy post"), + "post__create_new_post_label" : MessageLookupByLibrary.simpleMessage("Create new post"), "post__create_next" : MessageLookupByLibrary.simpleMessage("Suivant"), "post__create_photo" : MessageLookupByLibrary.simpleMessage("Photo"), + "post__create_video" : MessageLookupByLibrary.simpleMessage("Vidéo"), "post__disable_post_comments" : MessageLookupByLibrary.simpleMessage("Désactiver les commentaires sur la publication"), "post__edit_save" : MessageLookupByLibrary.simpleMessage("Enregistrer"), "post__edit_title" : MessageLookupByLibrary.simpleMessage("Modifier la publication"), @@ -597,16 +627,17 @@ class MessageLookup extends MessageLookupByLibrary { "post__is_closed" : MessageLookupByLibrary.simpleMessage("Publication fermée"), "post__my_circles" : MessageLookupByLibrary.simpleMessage("Mes cercles"), "post__my_circles_desc" : MessageLookupByLibrary.simpleMessage("Partagez la publication vers un ou plusieurs de vos cercles."), - "post__no_circles_for" : m28, + "post__no_circles_for" : m29, "post__open_post" : MessageLookupByLibrary.simpleMessage("Ouvrir la publication"), "post__post_closed" : MessageLookupByLibrary.simpleMessage("Publication fermée"), "post__post_opened" : MessageLookupByLibrary.simpleMessage("Publication ouverte"), "post__post_reactions_title" : MessageLookupByLibrary.simpleMessage("Réactions à la publication"), "post__profile_counts_follower" : MessageLookupByLibrary.simpleMessage(" Abonné.e"), "post__profile_counts_followers" : MessageLookupByLibrary.simpleMessage(" Abonné.e.s"), - "post__profile_counts_following" : MessageLookupByLibrary.simpleMessage(" Abonnements"), + "post__profile_counts_following" : MessageLookupByLibrary.simpleMessage("Suivis"), "post__profile_counts_post" : MessageLookupByLibrary.simpleMessage(" Publication"), "post__profile_counts_posts" : MessageLookupByLibrary.simpleMessage("Publications"), + "post__profile_retry_loading_posts" : MessageLookupByLibrary.simpleMessage("Appuyez pour réessayer"), "post__reaction_list_tap_retry" : MessageLookupByLibrary.simpleMessage("Appuyez pour réessayer de charger les réactions."), "post__search_circles" : MessageLookupByLibrary.simpleMessage("Rechercher dans les cercles..."), "post__share" : MessageLookupByLibrary.simpleMessage("Partager"), @@ -637,17 +668,36 @@ class MessageLookup extends MessageLookupByLibrary { "post__timeline_posts_failed_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Réessayez dans quelques secondes"), "post__timeline_posts_failed_drhoo_title" : MessageLookupByLibrary.simpleMessage("Impossible de charger votre fil d\'actualités."), "post__timeline_posts_no_more_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Suivez des utilisateurs.trices ou rejoignez une communauté pour commencer !"), - "post__timeline_posts_no_more_drhoo_title" : MessageLookupByLibrary.simpleMessage("Votre fil d\'actualités est vide."), "post__timeline_posts_refresh_posts" : MessageLookupByLibrary.simpleMessage("Actualiser les publications"), - "post__timeline_posts_refreshing_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Chargement de votre fil d\'actualités."), "post__timeline_posts_refreshing_drhoo_title" : MessageLookupByLibrary.simpleMessage("Tenez bon !"), "post__trending_posts_no_trending_posts" : MessageLookupByLibrary.simpleMessage("Il n\'y a pas de publications tendance. Essayez d\'actualiser la page dans quelques secondes."), "post__trending_posts_refresh" : MessageLookupByLibrary.simpleMessage("Actualiser"), "post__trending_posts_title" : MessageLookupByLibrary.simpleMessage("Publications tendance"), - "post__user_has_not_shared_anything" : m29, - "post__usernames_circles" : m30, - "post__world_circle_name" : MessageLookupByLibrary.simpleMessage("Monde entier"), + "post__user_has_not_shared_anything" : m30, + "post__usernames_circles" : m31, + "post__world_circle_name" : MessageLookupByLibrary.simpleMessage("Monde"), "post__you_shared_with" : MessageLookupByLibrary.simpleMessage("Vous avez partagé avec"), + "post_body_link_preview__empty" : MessageLookupByLibrary.simpleMessage("This link could not be previewed"), + "post_body_link_preview__error_with_description" : m32, + "post_body_media__unsupported" : MessageLookupByLibrary.simpleMessage("Type de media non pris en charge"), + "post_uploader__cancelled" : MessageLookupByLibrary.simpleMessage("Annulé !"), + "post_uploader__cancelling" : MessageLookupByLibrary.simpleMessage("Annulation"), + "post_uploader__compressing_media" : MessageLookupByLibrary.simpleMessage("Compression du média..."), + "post_uploader__creating_post" : MessageLookupByLibrary.simpleMessage("Création du post..."), + "post_uploader__generic_upload_failed" : MessageLookupByLibrary.simpleMessage("Échec du chargement"), + "post_uploader__processing" : MessageLookupByLibrary.simpleMessage("Traitement ..."), + "post_uploader__publishing" : MessageLookupByLibrary.simpleMessage("Publication en cours ..."), + "post_uploader__success" : MessageLookupByLibrary.simpleMessage("Succès !"), + "post_uploader__uploading_media" : MessageLookupByLibrary.simpleMessage("Envoi du fichier..."), + "posts_stream__all_loaded" : MessageLookupByLibrary.simpleMessage("🎉 Toutes les publications ont été chargées"), + "posts_stream__empty_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Réessayez dans quelques secondes."), + "posts_stream__empty_drhoo_title" : MessageLookupByLibrary.simpleMessage("Ce forum est vide."), + "posts_stream__failed_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Réessayez dans quelques secondes"), + "posts_stream__failed_drhoo_title" : MessageLookupByLibrary.simpleMessage("Impossible de charger les posts."), + "posts_stream__refreshing_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Actualisation des posts."), + "posts_stream__refreshing_drhoo_title" : MessageLookupByLibrary.simpleMessage("Tenez bon !"), + "posts_stream__status_tile_empty" : MessageLookupByLibrary.simpleMessage("Aucun post trouvé"), + "posts_stream__status_tile_no_more_to_load" : MessageLookupByLibrary.simpleMessage("🎉 Toutes les publications ont été chargées"), "user__add_account_done" : MessageLookupByLibrary.simpleMessage("Terminé"), "user__add_account_save" : MessageLookupByLibrary.simpleMessage("Enregistrer"), "user__add_account_success" : MessageLookupByLibrary.simpleMessage("Opération réussie"), @@ -663,8 +713,8 @@ class MessageLookup extends MessageLookupByLibrary { "user__change_email_success_info" : MessageLookupByLibrary.simpleMessage("Nous avons envoyé un lien de confirmation à votre nouvelle adresse courriel, cliquez-le pour vérifier votre nouvelle adresse courriel"), "user__change_email_title" : MessageLookupByLibrary.simpleMessage("Changer l\'adresse courriel"), "user__circle_name_empty_error" : MessageLookupByLibrary.simpleMessage("Le nom de cercle ne peut pas être vide."), - "user__circle_name_range_error" : m31, - "user__circle_peoples_count" : m32, + "user__circle_name_range_error" : m33, + "user__circle_peoples_count" : m34, "user__clear_app_preferences_cleared_successfully" : MessageLookupByLibrary.simpleMessage("Préférences réinitialisées avec succès"), "user__clear_app_preferences_desc" : MessageLookupByLibrary.simpleMessage("Réinitialiser les préférences de l\'application. Actuellement, ce n\'est que l\'ordre préféré d\'affichage des commentaires."), "user__clear_app_preferences_error" : MessageLookupByLibrary.simpleMessage("Impossible d\'effacer les préférences"), @@ -676,13 +726,13 @@ class MessageLookup extends MessageLookupByLibrary { "user__confirm_block_user_blocked" : MessageLookupByLibrary.simpleMessage("Utilisateur.trice bloqué.e."), "user__confirm_block_user_info" : MessageLookupByLibrary.simpleMessage("Vous ne verrez pas vos publications respectives ni ne pourrez interagir de quelque manière que ce soit."), "user__confirm_block_user_no" : MessageLookupByLibrary.simpleMessage("Non"), - "user__confirm_block_user_question" : m33, + "user__confirm_block_user_question" : m35, "user__confirm_block_user_title" : MessageLookupByLibrary.simpleMessage("Confirmation"), "user__confirm_block_user_yes" : MessageLookupByLibrary.simpleMessage("Oui"), "user__confirm_connection_add_connection" : MessageLookupByLibrary.simpleMessage("Ajouter la connexion au cercle"), "user__confirm_connection_confirm_text" : MessageLookupByLibrary.simpleMessage("Confirmer"), "user__confirm_connection_connection_confirmed" : MessageLookupByLibrary.simpleMessage("Connexion confirmée"), - "user__confirm_connection_with" : m34, + "user__confirm_connection_with" : m36, "user__confirm_guidelines_reject_chat_community" : MessageLookupByLibrary.simpleMessage("Discutez avec la communauté."), "user__confirm_guidelines_reject_chat_immediately" : MessageLookupByLibrary.simpleMessage("Commencer une discussion immédiatement."), "user__confirm_guidelines_reject_chat_with_team" : MessageLookupByLibrary.simpleMessage("Discutez avec l\'équipe."), @@ -692,7 +742,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__confirm_guidelines_reject_join_slack" : MessageLookupByLibrary.simpleMessage("Rejoignez le canal Slack d\'Okuna."), "user__confirm_guidelines_reject_title" : MessageLookupByLibrary.simpleMessage("Rejet des lignes directrices"), "user__connect_to_user_add_connection" : MessageLookupByLibrary.simpleMessage("Ajouter la connexion au cercle"), - "user__connect_to_user_connect_with_username" : m35, + "user__connect_to_user_connect_with_username" : m37, "user__connect_to_user_done" : MessageLookupByLibrary.simpleMessage("Terminé"), "user__connect_to_user_request_sent" : MessageLookupByLibrary.simpleMessage("Demande de connexion envoyée"), "user__connection_circle_edit" : MessageLookupByLibrary.simpleMessage("Modifier"), @@ -710,28 +760,29 @@ class MessageLookup extends MessageLookupByLibrary { "user__delete_account_current_pwd_hint" : MessageLookupByLibrary.simpleMessage("Entrez votre mot de passe actuel"), "user__delete_account_next" : MessageLookupByLibrary.simpleMessage("Suivant"), "user__delete_account_title" : MessageLookupByLibrary.simpleMessage("Supprimer mon compte"), - "user__disconnect_from_user" : m36, + "user__disconnect_from_user" : m38, "user__disconnect_from_user_success" : MessageLookupByLibrary.simpleMessage("Déconnecté.e avec succès"), "user__edit_profile_bio" : MessageLookupByLibrary.simpleMessage("Bio"), + "user__edit_profile_community_posts" : MessageLookupByLibrary.simpleMessage("Posts de la communauté"), "user__edit_profile_delete" : MessageLookupByLibrary.simpleMessage("Supprimer"), "user__edit_profile_followers_count" : MessageLookupByLibrary.simpleMessage("Nombre d\'abonné.e.s"), - "user__edit_profile_location" : MessageLookupByLibrary.simpleMessage("Localité"), + "user__edit_profile_location" : MessageLookupByLibrary.simpleMessage("Emplacement"), "user__edit_profile_name" : MessageLookupByLibrary.simpleMessage("Nom"), "user__edit_profile_pick_image" : MessageLookupByLibrary.simpleMessage("Choisir une image"), - "user__edit_profile_pick_image_error_too_large" : m37, + "user__edit_profile_pick_image_error_too_large" : m39, "user__edit_profile_save_text" : MessageLookupByLibrary.simpleMessage("Enregistrer"), "user__edit_profile_title" : MessageLookupByLibrary.simpleMessage("Modifier le profil"), - "user__edit_profile_url" : MessageLookupByLibrary.simpleMessage("Site web"), - "user__edit_profile_user_name_taken" : m38, - "user__edit_profile_username" : MessageLookupByLibrary.simpleMessage("Nom d\'utilisateur.trice"), + "user__edit_profile_url" : MessageLookupByLibrary.simpleMessage("Url"), + "user__edit_profile_user_name_taken" : m40, + "user__edit_profile_username" : MessageLookupByLibrary.simpleMessage("Pseudo"), "user__email_verification_error" : MessageLookupByLibrary.simpleMessage("Oups ! Votre jeton n\'était pas valide ou a expiré, veuillez s.v.p. réessayer"), "user__email_verification_successful" : MessageLookupByLibrary.simpleMessage("Super ! Votre adresse courriel est maintenant vérifiée"), "user__emoji_field_none_selected" : MessageLookupByLibrary.simpleMessage("Aucune émoticône sélectionnée"), - "user__emoji_search_none_found" : m39, + "user__emoji_search_none_found" : m41, "user__follow_button_follow_text" : MessageLookupByLibrary.simpleMessage("Suivre"), "user__follow_button_unfollow_text" : MessageLookupByLibrary.simpleMessage("Ne plus suivre"), "user__follow_lists_no_list_found" : MessageLookupByLibrary.simpleMessage("Aucune liste trouvée."), - "user__follow_lists_no_list_found_for" : m40, + "user__follow_lists_no_list_found_for" : m42, "user__follow_lists_search_for" : MessageLookupByLibrary.simpleMessage("Rechercher une liste..."), "user__follow_lists_title" : MessageLookupByLibrary.simpleMessage("Mes listes"), "user__follower_plural" : MessageLookupByLibrary.simpleMessage("abonné.e.s"), @@ -739,18 +790,18 @@ class MessageLookup extends MessageLookupByLibrary { "user__followers_title" : MessageLookupByLibrary.simpleMessage("Abonné.e.s"), "user__following_resource_name" : MessageLookupByLibrary.simpleMessage("utilisateurs.trices auxquels.elles vous êtes abonné.e"), "user__following_text" : MessageLookupByLibrary.simpleMessage("Abonné.e à"), - "user__follows_list_accounts_count" : m41, + "user__follows_list_accounts_count" : m43, "user__follows_list_edit" : MessageLookupByLibrary.simpleMessage("Modifier"), "user__follows_list_header_title" : MessageLookupByLibrary.simpleMessage("Utilisateurs.trices"), "user__follows_lists_account" : MessageLookupByLibrary.simpleMessage("1 Compte"), - "user__follows_lists_accounts" : m42, - "user__groups_see_all" : m43, + "user__follows_lists_accounts" : m44, + "user__groups_see_all" : m45, "user__guidelines_accept" : MessageLookupByLibrary.simpleMessage("Accepter"), - "user__guidelines_desc" : MessageLookupByLibrary.simpleMessage("Veuillez s.v.p. prendre un moment pour lire et accepter nos lignes directrices."), + "user__guidelines_desc" : MessageLookupByLibrary.simpleMessage("Veuillez prendre un moment pour lire et accepter nos directives générales."), "user__guidelines_reject" : MessageLookupByLibrary.simpleMessage("Rejeter"), "user__invite" : MessageLookupByLibrary.simpleMessage("Inviter"), "user__invite_member" : MessageLookupByLibrary.simpleMessage("Membre"), - "user__invite_someone_message" : m44, + "user__invite_someone_message" : m46, "user__invites_accepted_group_item_name" : MessageLookupByLibrary.simpleMessage("invitation acceptée"), "user__invites_accepted_group_name" : MessageLookupByLibrary.simpleMessage("invitation(s) acceptée(s)"), "user__invites_accepted_title" : MessageLookupByLibrary.simpleMessage("Acceptée(s)"), @@ -769,11 +820,11 @@ class MessageLookup extends MessageLookupByLibrary { "user__invites_email_text" : MessageLookupByLibrary.simpleMessage("Adresse courriel"), "user__invites_invite_a_friend" : MessageLookupByLibrary.simpleMessage("Inviter un.e ami.e"), "user__invites_invite_text" : MessageLookupByLibrary.simpleMessage("Inviter"), - "user__invites_joined_with" : m45, + "user__invites_joined_with" : m47, "user__invites_none_left" : MessageLookupByLibrary.simpleMessage("Vous n\'avez pas d\'invitations disponibles."), "user__invites_none_used" : MessageLookupByLibrary.simpleMessage("Il semble que vous n\'ayez utilisé aucune invitation."), "user__invites_pending" : MessageLookupByLibrary.simpleMessage("En attente"), - "user__invites_pending_email" : m46, + "user__invites_pending_email" : m48, "user__invites_pending_group_item_name" : MessageLookupByLibrary.simpleMessage("invitation en attente"), "user__invites_pending_group_name" : MessageLookupByLibrary.simpleMessage("invitation(s) en attente"), "user__invites_refresh" : MessageLookupByLibrary.simpleMessage("Actualiser"), @@ -786,15 +837,15 @@ class MessageLookup extends MessageLookupByLibrary { "user__language_settings_saved_success" : MessageLookupByLibrary.simpleMessage("Langue changée avec succès"), "user__language_settings_title" : MessageLookupByLibrary.simpleMessage("Paramètres de langue"), "user__list_name_empty_error" : MessageLookupByLibrary.simpleMessage("Le nom de liste ne peut pas être vide."), - "user__list_name_range_error" : m47, + "user__list_name_range_error" : m49, "user__million_postfix" : MessageLookupByLibrary.simpleMessage("million"), "user__profile_action_cancel_connection" : MessageLookupByLibrary.simpleMessage("Annuler la demande de connexion"), - "user__profile_action_deny_connection" : MessageLookupByLibrary.simpleMessage("Refuser la demande de connexion"), + "user__profile_action_deny_connection" : MessageLookupByLibrary.simpleMessage("Décliner la demande de connexion"), "user__profile_action_user_blocked" : MessageLookupByLibrary.simpleMessage("Utilisateur.trice bloqué.e"), "user__profile_action_user_unblocked" : MessageLookupByLibrary.simpleMessage("Utilisateur.trice débloqué.e"), - "user__profile_bio_length_error" : m48, - "user__profile_location_length_error" : m49, - "user__profile_url_invalid_error" : MessageLookupByLibrary.simpleMessage("Veuillez fournir une adresse web valide."), + "user__profile_bio_length_error" : m50, + "user__profile_location_length_error" : m51, + "user__profile_url_invalid_error" : MessageLookupByLibrary.simpleMessage("Veuillez fournir un url valide."), "user__remove_account_from_list" : MessageLookupByLibrary.simpleMessage("Supprimer le compte des listes"), "user__remove_account_from_list_success" : MessageLookupByLibrary.simpleMessage("Opération réussie"), "user__save_connection_circle_color_hint" : MessageLookupByLibrary.simpleMessage("(Appuyez pour changer)"), @@ -803,16 +854,16 @@ class MessageLookup extends MessageLookupByLibrary { "user__save_connection_circle_edit" : MessageLookupByLibrary.simpleMessage("Modifier le cercle"), "user__save_connection_circle_hint" : MessageLookupByLibrary.simpleMessage("par exemple: amis, famille, travail."), "user__save_connection_circle_name" : MessageLookupByLibrary.simpleMessage("Nom"), - "user__save_connection_circle_name_taken" : m50, + "user__save_connection_circle_name_taken" : m52, "user__save_connection_circle_save" : MessageLookupByLibrary.simpleMessage("Enregistrer"), "user__save_connection_circle_users" : MessageLookupByLibrary.simpleMessage("Utilisateurs.trices"), "user__save_follows_list_create" : MessageLookupByLibrary.simpleMessage("Créer une liste"), "user__save_follows_list_edit" : MessageLookupByLibrary.simpleMessage("Modifier la liste"), "user__save_follows_list_emoji" : MessageLookupByLibrary.simpleMessage("Émoticône"), - "user__save_follows_list_emoji_required_error" : MessageLookupByLibrary.simpleMessage("Émoticône est requise"), - "user__save_follows_list_hint_text" : MessageLookupByLibrary.simpleMessage("par exemple : Voyage, Photographie"), + "user__save_follows_list_emoji_required_error" : MessageLookupByLibrary.simpleMessage("Une émoticône est requise"), + "user__save_follows_list_hint_text" : MessageLookupByLibrary.simpleMessage("Exemple : Voyage, Photographie"), "user__save_follows_list_name" : MessageLookupByLibrary.simpleMessage("Nom"), - "user__save_follows_list_name_taken" : m51, + "user__save_follows_list_name_taken" : m53, "user__save_follows_list_save" : MessageLookupByLibrary.simpleMessage("Enregistrer"), "user__save_follows_list_users" : MessageLookupByLibrary.simpleMessage("Utilisateurs.trices"), "user__thousand_postfix" : MessageLookupByLibrary.simpleMessage("mille"), @@ -822,7 +873,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__timeline_filters_circles" : MessageLookupByLibrary.simpleMessage("Cercles"), "user__timeline_filters_clear_all" : MessageLookupByLibrary.simpleMessage("Tout effacer"), "user__timeline_filters_lists" : MessageLookupByLibrary.simpleMessage("Listes"), - "user__timeline_filters_no_match" : m52, + "user__timeline_filters_no_match" : m54, "user__timeline_filters_search_desc" : MessageLookupByLibrary.simpleMessage("Recherche de cercles et de listes..."), "user__timeline_filters_title" : MessageLookupByLibrary.simpleMessage("Filtres du fil d\'actualités"), "user__translate_see_translation" : MessageLookupByLibrary.simpleMessage("Voir la traduction"), @@ -834,15 +885,17 @@ class MessageLookup extends MessageLookupByLibrary { "user__update_connection_circles_title" : MessageLookupByLibrary.simpleMessage("Mettre à jour les cercles de connexions"), "user_search__cancel" : MessageLookupByLibrary.simpleMessage("Annuler"), "user_search__communities" : MessageLookupByLibrary.simpleMessage("Communautés"), - "user_search__list_no_results_found" : m53, + "user_search__list_no_results_found" : m55, "user_search__list_refresh_text" : MessageLookupByLibrary.simpleMessage("Actualiser"), "user_search__list_retry" : MessageLookupByLibrary.simpleMessage("Appuyez pour réessayer."), - "user_search__list_search_text" : m54, - "user_search__no_communities_for" : m55, - "user_search__no_results_for" : m56, - "user_search__no_users_for" : m57, + "user_search__list_search_text" : m56, + "user_search__no_communities_for" : m57, + "user_search__no_results_for" : m58, + "user_search__no_users_for" : m59, "user_search__search_text" : MessageLookupByLibrary.simpleMessage("Rechercher..."), - "user_search__searching_for" : m58, - "user_search__users" : MessageLookupByLibrary.simpleMessage("Utilisateurs.trices") + "user_search__searching_for" : m60, + "user_search__users" : MessageLookupByLibrary.simpleMessage("Utilisateurs.trices"), + "video_picker__from_camera" : MessageLookupByLibrary.simpleMessage("Depuis l\'appareil photo"), + "video_picker__from_gallery" : MessageLookupByLibrary.simpleMessage("Depuis la galerie") }; } diff --git a/lib/locale/messages_hu.dart b/lib/locale/messages_hu.dart new file mode 100644 index 000000000..0d8489ac4 --- /dev/null +++ b/lib/locale/messages_hu.dart @@ -0,0 +1,901 @@ +// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart +// This is a library that provides messages for a hu locale. All the +// messages from the main program should be duplicated here with the same +// function name. + +// Ignore issues from commonly used lints in this file. +// ignore_for_file:unnecessary_brace_in_string_interps, unnecessary_new +// ignore_for_file:prefer_single_quotes,comment_references, directives_ordering +// ignore_for_file:annotate_overrides,prefer_generic_function_type_aliases +// ignore_for_file:unused_import, file_names + +import 'package:intl/intl.dart'; +import 'package:intl/message_lookup_by_library.dart'; + +final messages = new MessageLookup(); + +typedef String MessageIfAbsent(String messageStr, List args); + +class MessageLookup extends MessageLookupByLibrary { + String get localeName => 'hu'; + + static m0(minLength, maxLength) => "(${minLength}-${maxLength} karakter)"; + + static m1(minLength, maxLength) => "A leírás hosszúsága ${minLength} és ${maxLength} kell legyen."; + + static m2(minLength, maxLength) => "A név hosszúsága ${minLength} és ${maxLength} kell legyen."; + + static m3(minLength, maxLength) => "A jelszó hosszúsága ${minLength} és ${maxLength} kell legyen."; + + static m4(maxLength) => "A felhasználónév nem lehet ${maxLength} karakternél hosszabb."; + + static m5(maxLength) => "A melléknevek nem lehetnek ${maxLength} karakternél hosszabbak."; + + static m6(username) => "Biztosan ki szeretnéd nevezni @${username}-t a közösség adminisztrátoraként?"; + + static m7(username) => "Biztosan le szeretnéd tiltani @${username}-t?"; + + static m8(maxLength) => "A leírás nem lehet ${maxLength} karakternél hosszabb."; + + static m9(username) => "Biztosan ki szeretnéd nevezni @${username}-t a közösség moderátoraként?"; + + static m10(maxLength) => "A név nem lehet ${maxLength} karakternél hosszabb."; + + static m11(min) => "Legalább ${min} kategóriát kell kiválasztanod."; + + static m12(min) => "Legalább ${min} kategóriát kell kiválasztanod."; + + static m13(max) => "Válassz ki legfeljebb ${max} kategóriát"; + + static m14(maxLength) => "A szabályzat nem lehet ${maxLength} karakternél hosszabb."; + + static m15(takenName) => "A(z) ${takenName} név már foglalt"; + + static m16(maxLength) => "A cím nem lehet ${maxLength} karakternél hosszabb."; + + static m17(categoryName) => "Felkapottak a(z) ${categoryName} kategóriában"; + + static m18(currentUserLanguage) => "Nyelv (${currentUserLanguage})"; + + static m19(limit) => "A fájl túl nagy (korlát: ${limit} MB)"; + + static m20(resourceCount, resourceName) => "Mind a(z) ${resourceCount} ${resourceName} megtekintése"; + + static m21(postCommentText) => "[name] [username] is hozzászólt: ${postCommentText}"; + + static m22(postCommentText) => "[name] [username] hozzászólt a bejegyzésedhez: ${postCommentText}"; + + static m23(postCommentText) => "[name] [username] is válaszolt: ${postCommentText}"; + + static m24(postCommentText) => "[name] [username] válaszolt: ${postCommentText}"; + + static m25(postCommentText) => "[name] [username] megjelölt egy hozzászólásban: ${postCommentText}"; + + static m26(communityName) => "[name] [username] meghívott téged a(z) /c/${communityName} közösségbe."; + + static m27(maxLength) => "A hozzászólás nem lehet ${maxLength} karakternél hosszabb."; + + static m28(commentsCount) => "Mind a(z) ${commentsCount} hozzászólás betöltése"; + + static m29(circlesSearchQuery) => "Nem találhatóak körök a(z) \"${circlesSearchQuery}\" keresésre."; + + static m30(name) => "${name} még nem osztott meg semmit."; + + static m31(postCreatorUsername) => "@${postCreatorUsername} köreiben"; + + static m32(description) => "Failed to preview link with website error: ${description}"; + + static m33(maxLength) => "A kör neve nem lehet ${maxLength} karakternél hosszabb."; + + static m34(prettyUsersCount) => "${prettyUsersCount} ember"; + + static m35(username) => "Biztosan le szeretnéd tiltani @${username}-t?"; + + static m36(userName) => "Kapcsolat megerősítése vele: ${userName}"; + + static m37(userName) => "Kapcsolódás vele: ${userName}"; + + static m38(userName) => "Kapcsolat törlése vele: ${userName}"; + + static m39(limit) => "A kép túl nagy (korlát: ${limit} MB)"; + + static m40(username) => "A(z) @${username} felhasználónév foglalt"; + + static m41(searchQuery) => "Nem találhatóak emojik a(z) \"${searchQuery}\" keresésre."; + + static m42(searchQuery) => "Nem található lista a(z) \"${searchQuery}\" keresésre"; + + static m43(prettyUsersCount) => "${prettyUsersCount} fiók"; + + static m44(prettyUsersCount) => "${prettyUsersCount} fiók"; + + static m45(groupName) => "Összes ${groupName} megtekintése"; + + static m46(iosLink, androidLink, inviteLink) => "Szia! Meg szeretnélek hívni az Okuna közösségi hálózatra. Először is töltsd le az alkalmazást az iTunes-ról (${iosLink}) vagy a Play áruházból (${androidLink}). Utána illeszd be ezt a személyre szabott meghívó linket az Okuna alkalmazásban: ${inviteLink}"; + + static m47(username) => "Regisztrált a(z) @${username} felhasználónévvel"; + + static m48(email) => "Függőben, meghívó elküldve erre az e-mail címre: ${email}"; + + static m49(maxLength) => "A lista neve nem lehet ${maxLength} karakternél hosszabb."; + + static m50(maxLength) => "A bemutatkozás nem lehet ${maxLength} karakternél hosszabb."; + + static m51(maxLength) => "A hely nem lehet ${maxLength} karakternél hosszabb."; + + static m52(takenConnectionsCircleName) => "A(z) \'${takenConnectionsCircleName}\' körnév már foglalt"; + + static m53(listName) => "A(z) \'${listName}\' listanév már foglalt"; + + static m54(searchQuery) => "Nincs találat a(z) \"${searchQuery}\" keresésre."; + + static m55(resourcePluralName) => "Nem találhatóak ${resourcePluralName}."; + + static m56(resourcePluralName) => "${resourcePluralName} keresése..."; + + static m57(searchQuery) => "Nem található közösség a(z) \"${searchQuery}\" keresésre."; + + static m58(searchQuery) => "Nincs találat a(z) \"${searchQuery}\" keresésre."; + + static m59(searchQuery) => "Nem található felhasználó a(z) \"${searchQuery}\" keresésre."; + + static m60(searchQuery) => "\"${searchQuery}\" keresése"; + + final messages = _notInlinedMessages(_notInlinedMessages); + static _notInlinedMessages(_) => { + "application_settings__comment_sort_newest_first" : MessageLookupByLibrary.simpleMessage("Újak elől"), + "application_settings__comment_sort_oldest_first" : MessageLookupByLibrary.simpleMessage("Régiek elől"), + "application_settings__link_previews" : MessageLookupByLibrary.simpleMessage("Link previews"), + "application_settings__link_previews_autoplay_always" : MessageLookupByLibrary.simpleMessage("Always"), + "application_settings__link_previews_autoplay_never" : MessageLookupByLibrary.simpleMessage("Never"), + "application_settings__link_previews_autoplay_wifi_only" : MessageLookupByLibrary.simpleMessage("Wifi only"), + "application_settings__link_previews_show" : MessageLookupByLibrary.simpleMessage("Show"), + "application_settings__tap_to_change" : MessageLookupByLibrary.simpleMessage("(Koppints a módosításhoz)"), + "application_settings__videos" : MessageLookupByLibrary.simpleMessage("Videók"), + "application_settings__videos_autoplay" : MessageLookupByLibrary.simpleMessage("Automatikus lejátszás"), + "application_settings__videos_autoplay_always" : MessageLookupByLibrary.simpleMessage("Mindig"), + "application_settings__videos_autoplay_never" : MessageLookupByLibrary.simpleMessage("Soha"), + "application_settings__videos_autoplay_wifi_only" : MessageLookupByLibrary.simpleMessage("Csak Wi-Fi hálózaton"), + "application_settings__videos_sound" : MessageLookupByLibrary.simpleMessage("Hang"), + "application_settings__videos_sound_disabled" : MessageLookupByLibrary.simpleMessage("Letiltva"), + "application_settings__videos_sound_enabled" : MessageLookupByLibrary.simpleMessage("Engedélyezve"), + "auth__change_password_current_pwd" : MessageLookupByLibrary.simpleMessage("Jelenlegi jelszó"), + "auth__change_password_current_pwd_hint" : MessageLookupByLibrary.simpleMessage("Írd be a jelenlegi jelszavad"), + "auth__change_password_current_pwd_incorrect" : MessageLookupByLibrary.simpleMessage("A megadott jelszó helytelen"), + "auth__change_password_new_pwd" : MessageLookupByLibrary.simpleMessage("Új jelszó"), + "auth__change_password_new_pwd_error" : MessageLookupByLibrary.simpleMessage("Kérünk, bizonyosodj meg arról, hogy a jelszavad hosszúsága 10 és 100 karakter között van"), + "auth__change_password_new_pwd_hint" : MessageLookupByLibrary.simpleMessage("Add meg az új jelszavad"), + "auth__change_password_save_success" : MessageLookupByLibrary.simpleMessage("Remek! Jelszavad sikeresen módosításra került"), + "auth__change_password_save_text" : MessageLookupByLibrary.simpleMessage("Mentés"), + "auth__change_password_title" : MessageLookupByLibrary.simpleMessage("Jelszó megváltoztatása"), + "auth__create_acc__almost_there" : MessageLookupByLibrary.simpleMessage("Mindjárt kész..."), + "auth__create_acc__are_you_legal_age" : MessageLookupByLibrary.simpleMessage("Elmúltál már 16 éves?"), + "auth__create_acc__avatar_choose_camera" : MessageLookupByLibrary.simpleMessage("Készíts fotót"), + "auth__create_acc__avatar_choose_gallery" : MessageLookupByLibrary.simpleMessage("Meglévő fotó használata"), + "auth__create_acc__avatar_remove_photo" : MessageLookupByLibrary.simpleMessage("Fotó törlése"), + "auth__create_acc__avatar_tap_to_change" : MessageLookupByLibrary.simpleMessage("Koppints a módosításhoz"), + "auth__create_acc__can_change_username" : MessageLookupByLibrary.simpleMessage("Ha akarod, bármikor megváltoztathatod azt a profiloldaladon keresztül."), + "auth__create_acc__congratulations" : MessageLookupByLibrary.simpleMessage("Gratulálunk!"), + "auth__create_acc__create_account" : MessageLookupByLibrary.simpleMessage("Fiók létrehozása"), + "auth__create_acc__done" : MessageLookupByLibrary.simpleMessage("Fiók létrehozása"), + "auth__create_acc__done_continue" : MessageLookupByLibrary.simpleMessage("Belépés"), + "auth__create_acc__done_created" : MessageLookupByLibrary.simpleMessage("A fiókod sikeresen létrejött! Íme a felhasználóneved: "), + "auth__create_acc__done_description" : MessageLookupByLibrary.simpleMessage("A fiókod sikeresen létrejött."), + "auth__create_acc__done_subtext" : MessageLookupByLibrary.simpleMessage("Ezt a profilod beállításaiban módosíthatod."), + "auth__create_acc__done_title" : MessageLookupByLibrary.simpleMessage("Hurrá!"), + "auth__create_acc__email_empty_error" : MessageLookupByLibrary.simpleMessage("😱 Az e-mail címed nem lehet üres"), + "auth__create_acc__email_invalid_error" : MessageLookupByLibrary.simpleMessage("😅 Kérünk, adj meg egy érvényes e-mail címet."), + "auth__create_acc__email_placeholder" : MessageLookupByLibrary.simpleMessage("kis_otto@mail.com"), + "auth__create_acc__email_server_error" : MessageLookupByLibrary.simpleMessage("😭 Problémákba ütköztek a szervereink! Kérünk, próbáld újra pár perc múlva."), + "auth__create_acc__email_taken_error" : MessageLookupByLibrary.simpleMessage("🤔 Már létezik egy fiók ezzel az e-mail címmel."), + "auth__create_acc__lets_get_started" : MessageLookupByLibrary.simpleMessage("Lássunk neki"), + "auth__create_acc__link_empty_error" : MessageLookupByLibrary.simpleMessage("A link mező nem lehet üres."), + "auth__create_acc__link_invalid_error" : MessageLookupByLibrary.simpleMessage("A megadott link érvénytelen."), + "auth__create_acc__name_characters_error" : MessageLookupByLibrary.simpleMessage("😅 Egy név (jelenleg) csak alfanumerikus karakterekből állhat."), + "auth__create_acc__name_empty_error" : MessageLookupByLibrary.simpleMessage("😱 A neved nem lehet üres."), + "auth__create_acc__name_length_error" : MessageLookupByLibrary.simpleMessage("😱 A neved nem lehet 50 karakternél hosszabb. (Ha az, akkor elnézést kérünk.)"), + "auth__create_acc__name_placeholder" : MessageLookupByLibrary.simpleMessage("Kis Árpád"), + "auth__create_acc__next" : MessageLookupByLibrary.simpleMessage("Következő"), + "auth__create_acc__one_last_thing" : MessageLookupByLibrary.simpleMessage("Még egy apró dolog..."), + "auth__create_acc__password_empty_error" : MessageLookupByLibrary.simpleMessage("😱 A jelszavad nem lehet üres"), + "auth__create_acc__password_length_error" : MessageLookupByLibrary.simpleMessage("😅 A jelszónak min. 8 és max. 64 karakter hosszúnak kell lennie."), + "auth__create_acc__paste_link" : MessageLookupByLibrary.simpleMessage("Illeszd be a regisztrációs linkedet"), + "auth__create_acc__paste_link_help_text" : MessageLookupByLibrary.simpleMessage("Használd a \"Join Openbook\" gomb linkjét a meghívó e-mail-edből."), + "auth__create_acc__paste_password_reset_link" : MessageLookupByLibrary.simpleMessage("Illeszd be a jelszó-visszaállítási linkedet"), + "auth__create_acc__previous" : MessageLookupByLibrary.simpleMessage("Vissza"), + "auth__create_acc__register" : MessageLookupByLibrary.simpleMessage("Regisztráció"), + "auth__create_acc__request_invite" : MessageLookupByLibrary.simpleMessage("Nincs meghívód? Kérj egyet itt."), + "auth__create_acc__submit_error_desc_server" : MessageLookupByLibrary.simpleMessage("😭 Problémákba ütköztek a szervereink! Kérünk, próbáld újra pár perc múlva."), + "auth__create_acc__submit_error_desc_validation" : MessageLookupByLibrary.simpleMessage("😅 Úgy fest, valamelyik információ nem volt megfelelő. Kérünk, ellenőrizd és próbáld újra."), + "auth__create_acc__submit_error_title" : MessageLookupByLibrary.simpleMessage("Óh ne..."), + "auth__create_acc__submit_loading_desc" : MessageLookupByLibrary.simpleMessage("Létrehozzuk a fiókodat."), + "auth__create_acc__submit_loading_title" : MessageLookupByLibrary.simpleMessage("Csak egy pillanat!"), + "auth__create_acc__subscribe" : MessageLookupByLibrary.simpleMessage("Kérés"), + "auth__create_acc__subscribe_to_waitlist_text" : MessageLookupByLibrary.simpleMessage("Kérj egy meghívót!"), + "auth__create_acc__username_characters_error" : MessageLookupByLibrary.simpleMessage("😅 A felhasználónév csak alfanumerikus karaktereket és alulvonásokat tartalmazhat."), + "auth__create_acc__username_empty_error" : MessageLookupByLibrary.simpleMessage("😱 A felhasználónév nem lehet üres."), + "auth__create_acc__username_length_error" : MessageLookupByLibrary.simpleMessage("😅 A felhasználónév nem lehet 30 karakternél hosszabb."), + "auth__create_acc__username_placeholder" : MessageLookupByLibrary.simpleMessage("szegenylegeny"), + "auth__create_acc__username_server_error" : MessageLookupByLibrary.simpleMessage("😭 Problémákba ütköztek a szervereink! Kérünk, próbáld újra pár perc múlva."), + "auth__create_acc__username_taken_error" : MessageLookupByLibrary.simpleMessage("😩 A(z) @%s felhasználónév foglalt."), + "auth__create_acc__welcome_to_beta" : MessageLookupByLibrary.simpleMessage("Üdv a bétában!"), + "auth__create_acc__what_avatar" : MessageLookupByLibrary.simpleMessage("Válassz ki egy profilképet"), + "auth__create_acc__what_email" : MessageLookupByLibrary.simpleMessage("Mi az e-mail címed?"), + "auth__create_acc__what_name" : MessageLookupByLibrary.simpleMessage("Hogy hívnak?"), + "auth__create_acc__what_password" : MessageLookupByLibrary.simpleMessage("Adj meg egy jelszót"), + "auth__create_acc__what_password_subtext" : MessageLookupByLibrary.simpleMessage("(min. 10 karakter)"), + "auth__create_acc__what_username" : MessageLookupByLibrary.simpleMessage("Válassz egy felhasználónevet"), + "auth__create_acc__your_subscribed" : MessageLookupByLibrary.simpleMessage("Te vagy a(z) {0}. a várólistán."), + "auth__create_acc__your_username_is" : MessageLookupByLibrary.simpleMessage("A felhasználóneved "), + "auth__create_acc_password_hint_text" : m0, + "auth__create_account" : MessageLookupByLibrary.simpleMessage("Regisztráció"), + "auth__description_empty_error" : MessageLookupByLibrary.simpleMessage("A leírás mező nem lehet üres."), + "auth__description_range_error" : m1, + "auth__email_empty_error" : MessageLookupByLibrary.simpleMessage("Az email nem lehet üres."), + "auth__email_invalid_error" : MessageLookupByLibrary.simpleMessage("Kérünk, adj meg egy érvényes email címet."), + "auth__headline" : MessageLookupByLibrary.simpleMessage("Egy jobb közösségi hálózat."), + "auth__login" : MessageLookupByLibrary.simpleMessage("Belépés"), + "auth__login__connection_error" : MessageLookupByLibrary.simpleMessage("Nem tudjuk elérni a szervereinket. Van működő internetkapcsolatod?"), + "auth__login__credentials_mismatch_error" : MessageLookupByLibrary.simpleMessage("A megadott belépési adatok nem megfelelőek."), + "auth__login__email_label" : MessageLookupByLibrary.simpleMessage("E-mail cím"), + "auth__login__forgot_password" : MessageLookupByLibrary.simpleMessage("Elfelejtett jelszó"), + "auth__login__forgot_password_subtitle" : MessageLookupByLibrary.simpleMessage("Add meg a felhasználóneved vagy e-mail címed"), + "auth__login__login" : MessageLookupByLibrary.simpleMessage("Folytatás"), + "auth__login__or_text" : MessageLookupByLibrary.simpleMessage("vagy"), + "auth__login__password_empty_error" : MessageLookupByLibrary.simpleMessage("A jelszó szükséges."), + "auth__login__password_label" : MessageLookupByLibrary.simpleMessage("Jelszó"), + "auth__login__password_length_error" : MessageLookupByLibrary.simpleMessage("A jelszónak min. 8 és max. 64 karakter hosszúnak kell lennie."), + "auth__login__previous" : MessageLookupByLibrary.simpleMessage("Előző"), + "auth__login__server_error" : MessageLookupByLibrary.simpleMessage("Hoppsz... Szerverproblémákba ütköztünk. Kérünk, próbáld újra pár perc múlva."), + "auth__login__subtitle" : MessageLookupByLibrary.simpleMessage("A folytatáshoz add meg a belépési adataidat."), + "auth__login__title" : MessageLookupByLibrary.simpleMessage("Üdv újra!"), + "auth__login__username_characters_error" : MessageLookupByLibrary.simpleMessage("A felhasználónév csak alfanumerikus karaktereket és alulvonásokat tartalmazhat."), + "auth__login__username_empty_error" : MessageLookupByLibrary.simpleMessage("A felhasználónév szükséges."), + "auth__login__username_label" : MessageLookupByLibrary.simpleMessage("Felhasználónév"), + "auth__login__username_length_error" : MessageLookupByLibrary.simpleMessage("A felhasználónév nem lehet 30 karakternél hosszabb."), + "auth__name_empty_error" : MessageLookupByLibrary.simpleMessage("A név mező nem lehet üres."), + "auth__name_range_error" : m2, + "auth__password_empty_error" : MessageLookupByLibrary.simpleMessage("A jelszó mező nem lehet üres."), + "auth__password_range_error" : m3, + "auth__reset_password_success_info" : MessageLookupByLibrary.simpleMessage("A jelszavad sikeresen meg lett változtatva"), + "auth__reset_password_success_title" : MessageLookupByLibrary.simpleMessage("Készen állunk!"), + "auth__username_characters_error" : MessageLookupByLibrary.simpleMessage("A felhasználónév csak alfanumerikus karaktereket és alulvonásokat tartalmazhat."), + "auth__username_empty_error" : MessageLookupByLibrary.simpleMessage("A felhasználónév nem lehet üres."), + "auth__username_maxlength_error" : m4, + "community__about" : MessageLookupByLibrary.simpleMessage("A közösségről"), + "community__actions_invite_people_title" : MessageLookupByLibrary.simpleMessage("Hívj meg embereket a közösséghez"), + "community__actions_manage_text" : MessageLookupByLibrary.simpleMessage("Kezelés"), + "community__add_administrators_title" : MessageLookupByLibrary.simpleMessage("Adminisztrátor hozzáadása"), + "community__add_moderator_title" : MessageLookupByLibrary.simpleMessage("Moderátor hozzáadása"), + "community__adjectives_range_error" : m5, + "community__admin_add_confirmation" : m6, + "community__admin_desc" : MessageLookupByLibrary.simpleMessage("Ezáltal a tag módosíthatja a közösség beállításait, adminisztrátorait, moderátorait és letiltott felhasználóit."), + "community__administrated_communities" : MessageLookupByLibrary.simpleMessage("adminisztrált közösség"), + "community__administrated_community" : MessageLookupByLibrary.simpleMessage("adminisztrált közösség"), + "community__administrated_title" : MessageLookupByLibrary.simpleMessage("Adminisztrált"), + "community__administrator_plural" : MessageLookupByLibrary.simpleMessage("adminisztrátor"), + "community__administrator_text" : MessageLookupByLibrary.simpleMessage("adminisztrátor"), + "community__administrator_you" : MessageLookupByLibrary.simpleMessage("Te"), + "community__administrators_title" : MessageLookupByLibrary.simpleMessage("Adminisztrátorok"), + "community__ban_confirmation" : m7, + "community__ban_desc" : MessageLookupByLibrary.simpleMessage("Ezáltal a felhasználó közösségi tagsága törölve lesz és nem kérelmezhet újat."), + "community__ban_user_title" : MessageLookupByLibrary.simpleMessage("Felhasználó tiltása"), + "community__banned_user_text" : MessageLookupByLibrary.simpleMessage("letiltott felhasználó"), + "community__banned_users_text" : MessageLookupByLibrary.simpleMessage("letiltott felhasználó"), + "community__banned_users_title" : MessageLookupByLibrary.simpleMessage("Letiltott felhasználók"), + "community__button_rules" : MessageLookupByLibrary.simpleMessage("Szabályok"), + "community__button_staff" : MessageLookupByLibrary.simpleMessage("Staff"), + "community__categories" : MessageLookupByLibrary.simpleMessage("kategória."), + "community__category" : MessageLookupByLibrary.simpleMessage("kategória."), + "community__communities" : MessageLookupByLibrary.simpleMessage("közösség"), + "community__communities_all_text" : MessageLookupByLibrary.simpleMessage("Összes"), + "community__communities_no_category_found" : MessageLookupByLibrary.simpleMessage("Nem találhatóak kategóriák. Kérünk, próbáld újra pár perc múlva."), + "community__communities_refresh_text" : MessageLookupByLibrary.simpleMessage("Frissítés"), + "community__communities_title" : MessageLookupByLibrary.simpleMessage("Közösségek"), + "community__community" : MessageLookupByLibrary.simpleMessage("közösség"), + "community__community_members" : MessageLookupByLibrary.simpleMessage("Közösség tagjai"), + "community__community_staff" : MessageLookupByLibrary.simpleMessage("Közösség személyzete"), + "community__confirmation_title" : MessageLookupByLibrary.simpleMessage("Megerősítés"), + "community__delete_confirmation" : MessageLookupByLibrary.simpleMessage("Biztosan törölni szeretnéd ezt a közösséget?"), + "community__delete_desc" : MessageLookupByLibrary.simpleMessage("Nem láthatod a bejegyzéseit többé a hírfolyamodban és nem hozhatsz létre több bejegyzést benne."), + "community__description_range_error" : m8, + "community__favorite_action" : MessageLookupByLibrary.simpleMessage("Közösség kedvencnek jelölése"), + "community__favorite_communities" : MessageLookupByLibrary.simpleMessage("kedvenc közösség"), + "community__favorite_community" : MessageLookupByLibrary.simpleMessage("kedvenc közösség"), + "community__favorites_title" : MessageLookupByLibrary.simpleMessage("Kedvencek"), + "community__invite_to_community_resource_plural" : MessageLookupByLibrary.simpleMessage("kapcsolatok és követők"), + "community__invite_to_community_resource_singular" : MessageLookupByLibrary.simpleMessage("kapcsolat vagy követő"), + "community__invite_to_community_title" : MessageLookupByLibrary.simpleMessage("Meghívás közösséghez"), + "community__invited_by_member" : MessageLookupByLibrary.simpleMessage("Egy közösségi tagnak meg kell hívnia."), + "community__invited_by_moderator" : MessageLookupByLibrary.simpleMessage("Egy moderátornak meg kell hívnia."), + "community__is_private" : MessageLookupByLibrary.simpleMessage("Ez a közösség zárt."), + "community__join_communities_desc" : MessageLookupByLibrary.simpleMessage("Csatlakozz közösségekhez, hogy ne legyen üres ez a fül!"), + "community__join_community" : MessageLookupByLibrary.simpleMessage("Csatlakozás"), + "community__joined_communities" : MessageLookupByLibrary.simpleMessage("csatlakozott közösség"), + "community__joined_community" : MessageLookupByLibrary.simpleMessage("csatlakozott közösség"), + "community__joined_title" : MessageLookupByLibrary.simpleMessage("Csatlakozott"), + "community__leave_community" : MessageLookupByLibrary.simpleMessage("Kilépés"), + "community__leave_confirmation" : MessageLookupByLibrary.simpleMessage("Biztosan ki szeretnél lépni a közösségből?"), + "community__leave_desc" : MessageLookupByLibrary.simpleMessage("Nem láthatod a bejegyzéseit többé a hírfolyamodban és nem hozhatsz létre több bejegyzést benne."), + "community__manage_add_favourite" : MessageLookupByLibrary.simpleMessage("Közösség hozzáadása a kedvencekhez"), + "community__manage_admins_desc" : MessageLookupByLibrary.simpleMessage("Adminisztrátorok megtekintése, hozzáadása és törlése."), + "community__manage_admins_title" : MessageLookupByLibrary.simpleMessage("Adminisztrátorok"), + "community__manage_banned_desc" : MessageLookupByLibrary.simpleMessage("Letiltott felhasználók megtekintése, hozzáadása és törlése."), + "community__manage_banned_title" : MessageLookupByLibrary.simpleMessage("Letiltott felhasználók"), + "community__manage_closed_posts_desc" : MessageLookupByLibrary.simpleMessage("Zárt bejegyzések megtekintése és kezelése"), + "community__manage_closed_posts_title" : MessageLookupByLibrary.simpleMessage("Zárt bejegyzések"), + "community__manage_delete_desc" : MessageLookupByLibrary.simpleMessage("Közösség törlése örökre."), + "community__manage_delete_title" : MessageLookupByLibrary.simpleMessage("Közösség törlése"), + "community__manage_details_desc" : MessageLookupByLibrary.simpleMessage("Cím, név, ikonkép, borítókép, stb. módosítása."), + "community__manage_details_title" : MessageLookupByLibrary.simpleMessage("Részletek"), + "community__manage_invite_desc" : MessageLookupByLibrary.simpleMessage("Hívd meg kapcsolataidat és követőidet a közösséghez."), + "community__manage_invite_title" : MessageLookupByLibrary.simpleMessage("Emberek meghívása"), + "community__manage_leave_desc" : MessageLookupByLibrary.simpleMessage("Kilépés a közösségből."), + "community__manage_leave_title" : MessageLookupByLibrary.simpleMessage("Kilépés a közösségből"), + "community__manage_mod_reports_desc" : MessageLookupByLibrary.simpleMessage("A közösségen belül létrehozott moderálási jelentések áttekintése."), + "community__manage_mod_reports_title" : MessageLookupByLibrary.simpleMessage("Moderálási jelentések"), + "community__manage_mods_desc" : MessageLookupByLibrary.simpleMessage("Moderátorok megtekintése, hozzáadása és törlése."), + "community__manage_mods_title" : MessageLookupByLibrary.simpleMessage("Moderátorok"), + "community__manage_remove_favourite" : MessageLookupByLibrary.simpleMessage("Közösség törlése a kedvencek közül"), + "community__manage_title" : MessageLookupByLibrary.simpleMessage("Közösség kezelése"), + "community__member" : MessageLookupByLibrary.simpleMessage("tag"), + "community__member_capitalized" : MessageLookupByLibrary.simpleMessage("tag"), + "community__member_plural" : MessageLookupByLibrary.simpleMessage("tag"), + "community__members_capitalized" : MessageLookupByLibrary.simpleMessage("tag"), + "community__moderated_communities" : MessageLookupByLibrary.simpleMessage("moderált közösség"), + "community__moderated_community" : MessageLookupByLibrary.simpleMessage("moderált közösség"), + "community__moderated_title" : MessageLookupByLibrary.simpleMessage("Moderált"), + "community__moderator_add_confirmation" : m9, + "community__moderator_desc" : MessageLookupByLibrary.simpleMessage("Ezáltal a tag módosíthatja a közösség beállításait, moderátorait és letiltott felhasználóit."), + "community__moderator_resource_name" : MessageLookupByLibrary.simpleMessage("moderátor"), + "community__moderators_resource_name" : MessageLookupByLibrary.simpleMessage("moderátor"), + "community__moderators_title" : MessageLookupByLibrary.simpleMessage("Moderátorok"), + "community__moderators_you" : MessageLookupByLibrary.simpleMessage("Te"), + "community__name_characters_error" : MessageLookupByLibrary.simpleMessage("A név csak alfanumerikus karaktereket és alulvonásokat tartalmazhat."), + "community__name_empty_error" : MessageLookupByLibrary.simpleMessage("A név mező nem lehet üres."), + "community__name_range_error" : m10, + "community__no" : MessageLookupByLibrary.simpleMessage("Nem"), + "community__pick_atleast_min_categories" : m11, + "community__pick_atleast_min_category" : m12, + "community__pick_upto_max" : m13, + "community__post_plural" : MessageLookupByLibrary.simpleMessage("bejegyzés"), + "community__post_singular" : MessageLookupByLibrary.simpleMessage("bejegyzés"), + "community__posts" : MessageLookupByLibrary.simpleMessage("Bejegyzések"), + "community__refresh_text" : MessageLookupByLibrary.simpleMessage("Frissítés"), + "community__refreshing" : MessageLookupByLibrary.simpleMessage("Közösség frissítése"), + "community__retry_loading_posts" : MessageLookupByLibrary.simpleMessage("Koppints az újrapróbálkozáshoz"), + "community__rules_empty_error" : MessageLookupByLibrary.simpleMessage("A szabályzat nem lehet üres."), + "community__rules_range_error" : m14, + "community__rules_text" : MessageLookupByLibrary.simpleMessage("Szabályok"), + "community__rules_title" : MessageLookupByLibrary.simpleMessage("Közösség szabályai"), + "community__save_community_create_community" : MessageLookupByLibrary.simpleMessage("Közösség létrehozása"), + "community__save_community_create_text" : MessageLookupByLibrary.simpleMessage("Létrehozás"), + "community__save_community_edit_community" : MessageLookupByLibrary.simpleMessage("Közösség szerkesztése"), + "community__save_community_label_title" : MessageLookupByLibrary.simpleMessage("Cím"), + "community__save_community_label_title_hint_text" : MessageLookupByLibrary.simpleMessage("pl.: Utazás, Fényképészet, Videojátékok."), + "community__save_community_name_category" : MessageLookupByLibrary.simpleMessage("Kategória"), + "community__save_community_name_label_color" : MessageLookupByLibrary.simpleMessage("Szín"), + "community__save_community_name_label_color_hint_text" : MessageLookupByLibrary.simpleMessage("(Koppints a módosításhoz)"), + "community__save_community_name_label_desc_optional" : MessageLookupByLibrary.simpleMessage("Leírás (nem kötelező)"), + "community__save_community_name_label_desc_optional_hint_text" : MessageLookupByLibrary.simpleMessage("Miről szól a közösséged?"), + "community__save_community_name_label_member_adjective" : MessageLookupByLibrary.simpleMessage("Tag melléknév (nem kötelező)"), + "community__save_community_name_label_member_adjective_hint_text" : MessageLookupByLibrary.simpleMessage("pl.: utazó, fényképész, gamer."), + "community__save_community_name_label_members_adjective" : MessageLookupByLibrary.simpleMessage("Tag melléknév - többesszám (nem kötelező)"), + "community__save_community_name_label_members_adjective_hint_text" : MessageLookupByLibrary.simpleMessage("pl.: utazók, fényképészek, gamerek."), + "community__save_community_name_label_rules_optional" : MessageLookupByLibrary.simpleMessage("Szabályzat (nem kötelező)"), + "community__save_community_name_label_rules_optional_hint_text" : MessageLookupByLibrary.simpleMessage("Szeretnéd ha a tagjaid betartsanak bizonyos szabályokat?"), + "community__save_community_name_label_type" : MessageLookupByLibrary.simpleMessage("Típus"), + "community__save_community_name_label_type_hint_text" : MessageLookupByLibrary.simpleMessage("(Koppints a módosításhoz)"), + "community__save_community_name_member_invites" : MessageLookupByLibrary.simpleMessage("Tagmeghívások"), + "community__save_community_name_member_invites_subtitle" : MessageLookupByLibrary.simpleMessage("A tagok meghívhatnak másokat a közösséghez"), + "community__save_community_name_taken" : m15, + "community__save_community_name_title" : MessageLookupByLibrary.simpleMessage("Név"), + "community__save_community_name_title_hint_text" : MessageLookupByLibrary.simpleMessage(" pl.: utazas, fenykepeszet, videojatekok."), + "community__save_community_save_text" : MessageLookupByLibrary.simpleMessage("Mentés"), + "community__title_empty_error" : MessageLookupByLibrary.simpleMessage("A cím nem lehet üres."), + "community__title_range_error" : m16, + "community__trending_in_all" : MessageLookupByLibrary.simpleMessage("Felkapottak az összes kategóriában"), + "community__trending_in_category" : m17, + "community__trending_none_found" : MessageLookupByLibrary.simpleMessage("Nem találhatóak felkapott közösségek. Próbáld újra pár perc múlva."), + "community__trending_refresh" : MessageLookupByLibrary.simpleMessage("Frissítés"), + "community__type_private" : MessageLookupByLibrary.simpleMessage("Zárt"), + "community__type_public" : MessageLookupByLibrary.simpleMessage("Nyilvános"), + "community__unfavorite_action" : MessageLookupByLibrary.simpleMessage("Törlés a kedvencek közül"), + "community__user_you_text" : MessageLookupByLibrary.simpleMessage("Te"), + "community__yes" : MessageLookupByLibrary.simpleMessage("Igen"), + "contextual_account_search_box__suggestions" : MessageLookupByLibrary.simpleMessage("Javaslatok"), + "drawer__account_settings" : MessageLookupByLibrary.simpleMessage("Fiók beállításai"), + "drawer__account_settings_blocked_users" : MessageLookupByLibrary.simpleMessage("Letiltott felhasználók"), + "drawer__account_settings_change_email" : MessageLookupByLibrary.simpleMessage("E-mail cím módosítása"), + "drawer__account_settings_change_password" : MessageLookupByLibrary.simpleMessage("Jelszó módosítása"), + "drawer__account_settings_delete_account" : MessageLookupByLibrary.simpleMessage("Fiók törlése"), + "drawer__account_settings_language" : m18, + "drawer__account_settings_language_text" : MessageLookupByLibrary.simpleMessage("Nyelv"), + "drawer__account_settings_notifications" : MessageLookupByLibrary.simpleMessage("Értesítések"), + "drawer__app_account_text" : MessageLookupByLibrary.simpleMessage("App és fiók"), + "drawer__application_settings" : MessageLookupByLibrary.simpleMessage("Alkalmazás beállításai"), + "drawer__connections" : MessageLookupByLibrary.simpleMessage("Kapcsolataim"), + "drawer__customize" : MessageLookupByLibrary.simpleMessage("Testreszabás"), + "drawer__developer_settings" : MessageLookupByLibrary.simpleMessage("Fejlesztői beállítások"), + "drawer__global_moderation" : MessageLookupByLibrary.simpleMessage("Globális moderáció"), + "drawer__help" : MessageLookupByLibrary.simpleMessage("Segítség és visszajelzés"), + "drawer__lists" : MessageLookupByLibrary.simpleMessage("Listáim"), + "drawer__logout" : MessageLookupByLibrary.simpleMessage("Kijelentkezés"), + "drawer__main_title" : MessageLookupByLibrary.simpleMessage("Saját Okuna"), + "drawer__menu_title" : MessageLookupByLibrary.simpleMessage("Menü"), + "drawer__my_circles" : MessageLookupByLibrary.simpleMessage("Köreim"), + "drawer__my_followers" : MessageLookupByLibrary.simpleMessage("Követőim"), + "drawer__my_following" : MessageLookupByLibrary.simpleMessage("Követéseim"), + "drawer__my_invites" : MessageLookupByLibrary.simpleMessage("Meghívóim"), + "drawer__my_lists" : MessageLookupByLibrary.simpleMessage("Listáim"), + "drawer__my_mod_penalties" : MessageLookupByLibrary.simpleMessage("Moderációs büntetéseim"), + "drawer__my_pending_mod_tasks" : MessageLookupByLibrary.simpleMessage("Függő moderációs feladataim"), + "drawer__profile" : MessageLookupByLibrary.simpleMessage("Profilom"), + "drawer__settings" : MessageLookupByLibrary.simpleMessage("Beállítások"), + "drawer__themes" : MessageLookupByLibrary.simpleMessage("Témák"), + "drawer__useful_links_guidelines" : MessageLookupByLibrary.simpleMessage("Okuna irányelvek"), + "drawer__useful_links_guidelines_bug_tracker" : MessageLookupByLibrary.simpleMessage("Hibakövető"), + "drawer__useful_links_guidelines_bug_tracker_desc" : MessageLookupByLibrary.simpleMessage("Jelents be egy hibát vagy szavazz a már létezőekre"), + "drawer__useful_links_guidelines_desc" : MessageLookupByLibrary.simpleMessage("Az irányelvek, melyeket mindenkinek be kell tartania a barátságos és kényelmes körülmények megteremtéséhez."), + "drawer__useful_links_guidelines_feature_requests" : MessageLookupByLibrary.simpleMessage("Funkciójavaslatok"), + "drawer__useful_links_guidelines_feature_requests_desc" : MessageLookupByLibrary.simpleMessage("Javasolj egy funkciót vagy szavazz a már létezőekre"), + "drawer__useful_links_guidelines_github" : MessageLookupByLibrary.simpleMessage("GitHub projekttábla"), + "drawer__useful_links_guidelines_github_desc" : MessageLookupByLibrary.simpleMessage("Tekintsd meg, min dolgozunk jelenleg"), + "drawer__useful_links_guidelines_handbook" : MessageLookupByLibrary.simpleMessage("Okuna kézikönyv"), + "drawer__useful_links_guidelines_handbook_desc" : MessageLookupByLibrary.simpleMessage("Egy kézikönyv, mely mindent leír a platform használatáról"), + "drawer__useful_links_slack_channel" : MessageLookupByLibrary.simpleMessage("Közösségi Slack csatorna"), + "drawer__useful_links_slack_channel_desc" : MessageLookupByLibrary.simpleMessage("A hely ahol bármit megbeszélhetsz az Okunával kapcsolatban"), + "drawer__useful_links_support" : MessageLookupByLibrary.simpleMessage("Az Okuna támogatása"), + "drawer__useful_links_support_desc" : MessageLookupByLibrary.simpleMessage("Segíthetsz, hogy tovább tudjunk evezni a terveink tengerén!"), + "drawer__useful_links_title" : MessageLookupByLibrary.simpleMessage("Hasznos linkek"), + "error__no_internet_connection" : MessageLookupByLibrary.simpleMessage("Nincs internetkapcsolat"), + "error__unknown_error" : MessageLookupByLibrary.simpleMessage("Ismeretlen hiba"), + "image_picker__error_too_large" : m19, + "image_picker__from_camera" : MessageLookupByLibrary.simpleMessage("Kameráról"), + "image_picker__from_gallery" : MessageLookupByLibrary.simpleMessage("Galériából"), + "moderation__actions_chat_with_team" : MessageLookupByLibrary.simpleMessage("Beszélgess a csapattal"), + "moderation__actions_review" : MessageLookupByLibrary.simpleMessage("Áttekintés"), + "moderation__category_text" : MessageLookupByLibrary.simpleMessage("Kategória"), + "moderation__community_moderated_objects" : MessageLookupByLibrary.simpleMessage("Közösség által moderált tárgyak"), + "moderation__community_review_approve" : MessageLookupByLibrary.simpleMessage("Jóváhagy"), + "moderation__community_review_item_verified" : MessageLookupByLibrary.simpleMessage("Ez a tárgy ellenőrizve van"), + "moderation__community_review_object" : MessageLookupByLibrary.simpleMessage("Tárgy"), + "moderation__community_review_reject" : MessageLookupByLibrary.simpleMessage("Elutasít"), + "moderation__community_review_title" : MessageLookupByLibrary.simpleMessage("Tekintse át a moderált tárgyat"), + "moderation__confirm_report_community_reported" : MessageLookupByLibrary.simpleMessage("Jelentett közösség"), + "moderation__confirm_report_item_reported" : MessageLookupByLibrary.simpleMessage("Jelentett tárgy"), + "moderation__confirm_report_post_comment_reported" : MessageLookupByLibrary.simpleMessage("Jelentett hozzászólás"), + "moderation__confirm_report_post_reported" : MessageLookupByLibrary.simpleMessage("Jelentett bejegyzés"), + "moderation__confirm_report_provide_details" : MessageLookupByLibrary.simpleMessage("Tudnál további részleteket szolgáltatni amelyek lényegesek lennének a bejelentéshez?"), + "moderation__confirm_report_provide_happen_next" : MessageLookupByLibrary.simpleMessage("Ez fog történni most:"), + "moderation__confirm_report_provide_happen_next_desc" : MessageLookupByLibrary.simpleMessage("- A jelentés névtelenül lesz elküldve. \n- Ha egy bejegyzést vagy hozzászólást jelentesz, a jelentés el lesz küldve az Okuna vezetőségéhez és adott esetben a közösség moderátoraihoz, valamint a bejegyzés el lesz rejtve a hírfolyamodból. \n- Ha egy fiókot vagy közösséget jelentesz, a jelentés el lesz küldve az Okuna vezetőségéhez. \n- Felülvizsgáljuk a jelentést és amennyiben ütközik irányelveinkkel, a jelentett tartalmat törölni fogjuk és kiszabjuk a megfelelő büntetést az érintett felekre, mely az áthágás súlyosságának függvényében lehet ideiglenes felfüggesztés vagy a teljes fiók törlése. \n- Ha a jelentett tartalom nem ütközik irányelveinkkel és a jelentés azért lett létrehozva, hogy más felhasználó vagy közösség hírnevét csökkentse, a büntetést terád fogjuk kiszabni.\n"), + "moderation__confirm_report_provide_optional_hint_text" : MessageLookupByLibrary.simpleMessage("Írj ide..."), + "moderation__confirm_report_provide_optional_info" : MessageLookupByLibrary.simpleMessage("(Nem kötelező)"), + "moderation__confirm_report_submit" : MessageLookupByLibrary.simpleMessage("Megértettem, küldés."), + "moderation__confirm_report_title" : MessageLookupByLibrary.simpleMessage("Bejelentés elküldése"), + "moderation__confirm_report_user_reported" : MessageLookupByLibrary.simpleMessage("Jelentett felhasználó"), + "moderation__description_text" : MessageLookupByLibrary.simpleMessage("Leírás"), + "moderation__filters_apply" : MessageLookupByLibrary.simpleMessage("Szűrők alkalmazása"), + "moderation__filters_other" : MessageLookupByLibrary.simpleMessage("Egyéb"), + "moderation__filters_reset" : MessageLookupByLibrary.simpleMessage("Visszaállítás"), + "moderation__filters_status" : MessageLookupByLibrary.simpleMessage("Állapot"), + "moderation__filters_title" : MessageLookupByLibrary.simpleMessage("Moderációs szűrők"), + "moderation__filters_type" : MessageLookupByLibrary.simpleMessage("Típus"), + "moderation__filters_verified" : MessageLookupByLibrary.simpleMessage("Ellenőrizve"), + "moderation__global_review_object_text" : MessageLookupByLibrary.simpleMessage("Tárgy"), + "moderation__global_review_title" : MessageLookupByLibrary.simpleMessage("Moderált tárgy áttekintése"), + "moderation__global_review_unverify_text" : MessageLookupByLibrary.simpleMessage("Ellenőrzés visszavonása"), + "moderation__global_review_verify_text" : MessageLookupByLibrary.simpleMessage("Ellenőrzés"), + "moderation__globally_moderated_objects" : MessageLookupByLibrary.simpleMessage("Globálisan moderált tárgyak"), + "moderation__moderated_object_false_text" : MessageLookupByLibrary.simpleMessage("Hamis"), + "moderation__moderated_object_reports_count" : MessageLookupByLibrary.simpleMessage("Jelentések száma"), + "moderation__moderated_object_status" : MessageLookupByLibrary.simpleMessage("Állapot"), + "moderation__moderated_object_title" : MessageLookupByLibrary.simpleMessage("Tárgy"), + "moderation__moderated_object_true_text" : MessageLookupByLibrary.simpleMessage("Igaz"), + "moderation__moderated_object_verified" : MessageLookupByLibrary.simpleMessage("Ellenőrizve"), + "moderation__moderated_object_verified_by_staff" : MessageLookupByLibrary.simpleMessage("Az Okuna csapata által ellenőrizve"), + "moderation__my_moderation_penalties_resouce_singular" : MessageLookupByLibrary.simpleMessage("moderációs büntetés"), + "moderation__my_moderation_penalties_resource_plural" : MessageLookupByLibrary.simpleMessage("moderációs büntetés"), + "moderation__my_moderation_penalties_title" : MessageLookupByLibrary.simpleMessage("Moderációs büntetések"), + "moderation__my_moderation_tasks_title" : MessageLookupByLibrary.simpleMessage("Függő moderációs feladatok"), + "moderation__no_description_text" : MessageLookupByLibrary.simpleMessage("Nincs leírás"), + "moderation__object_status_title" : MessageLookupByLibrary.simpleMessage("Állapot"), + "moderation__pending_moderation_tasks_plural" : MessageLookupByLibrary.simpleMessage("függő moderációs feladat"), + "moderation__pending_moderation_tasks_singular" : MessageLookupByLibrary.simpleMessage("függő moderációs feladat"), + "moderation__report_account_text" : MessageLookupByLibrary.simpleMessage("Fiók bejelentése"), + "moderation__report_comment_text" : MessageLookupByLibrary.simpleMessage("Hozzászólás jelentése"), + "moderation__report_community_text" : MessageLookupByLibrary.simpleMessage("Közösség jelentése"), + "moderation__report_post_text" : MessageLookupByLibrary.simpleMessage("Bejegyzés jelentése"), + "moderation__reporter_text" : MessageLookupByLibrary.simpleMessage("Bejelentő"), + "moderation__reports_preview_resource_reports" : MessageLookupByLibrary.simpleMessage("jelentés"), + "moderation__reports_preview_title" : MessageLookupByLibrary.simpleMessage("Jelentések"), + "moderation__reports_see_all" : m20, + "moderation__tap_to_retry" : MessageLookupByLibrary.simpleMessage("Koppints az elemek betöltésének újrapróbálásához"), + "moderation__update_category_save" : MessageLookupByLibrary.simpleMessage("Mentés"), + "moderation__update_category_title" : MessageLookupByLibrary.simpleMessage("Kategória módosítása"), + "moderation__update_description_report_desc" : MessageLookupByLibrary.simpleMessage("Leírás jelentése"), + "moderation__update_description_report_hint_text" : MessageLookupByLibrary.simpleMessage("pl.: A bejelentett elem az alábbi irányelveket sértette meg..."), + "moderation__update_description_save" : MessageLookupByLibrary.simpleMessage("Mentés"), + "moderation__update_description_title" : MessageLookupByLibrary.simpleMessage("Leírás szerkesztése"), + "moderation__update_status_save" : MessageLookupByLibrary.simpleMessage("Mentés"), + "moderation__update_status_title" : MessageLookupByLibrary.simpleMessage("Állapot frissítése"), + "moderation__you_have_reported_account_text" : MessageLookupByLibrary.simpleMessage("Sikeresen jelentetted ezt a fiókot"), + "moderation__you_have_reported_comment_text" : MessageLookupByLibrary.simpleMessage("Sikeresen jelentetted ezt a hozzászólást"), + "moderation__you_have_reported_community_text" : MessageLookupByLibrary.simpleMessage("Sikeresen jelentetted ezt a közösséget"), + "moderation__you_have_reported_post_text" : MessageLookupByLibrary.simpleMessage("Sikeresen jelentetted ezt a bejegyzést"), + "notifications__accepted_connection_request_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] elfogadta a kapcsolatfelkérési kérelmedet."), + "notifications__comment_comment_notification_tile_user_also_commented" : m21, + "notifications__comment_comment_notification_tile_user_commented" : m22, + "notifications__comment_desc" : MessageLookupByLibrary.simpleMessage("Értesülj, ha valaki hozzászólt egy bejegyzésedhez vagy egy bejegyzéshez amelyhez te is hozzászóltál"), + "notifications__comment_reaction_desc" : MessageLookupByLibrary.simpleMessage("Értesülj, ha valaki reagált egy hozzászólásodra"), + "notifications__comment_reaction_title" : MessageLookupByLibrary.simpleMessage("Reagálás hozzászólásra"), + "notifications__comment_reply_desc" : MessageLookupByLibrary.simpleMessage("Értesülj, ha valaki válaszol egy hozzászólásodra vagy egy hozzászólásra melyre te is válaszoltál"), + "notifications__comment_reply_notification_tile_user_also_replied" : m23, + "notifications__comment_reply_notification_tile_user_replied" : m24, + "notifications__comment_reply_title" : MessageLookupByLibrary.simpleMessage("Válasz hozzászólásra"), + "notifications__comment_title" : MessageLookupByLibrary.simpleMessage("Hozzászólás küldése"), + "notifications__comment_user_mention_desc" : MessageLookupByLibrary.simpleMessage("Értesülj, ha valaki megjelöl téged egy hozzászólásban"), + "notifications__comment_user_mention_title" : MessageLookupByLibrary.simpleMessage("Megjelölés hozzászólásban"), + "notifications__community_invite_desc" : MessageLookupByLibrary.simpleMessage("Értesülj, ha valaki meghív téged egy közösségbe"), + "notifications__community_invite_title" : MessageLookupByLibrary.simpleMessage("Meghívás közösségbe"), + "notifications__connection_desc" : MessageLookupByLibrary.simpleMessage("Értesülj, ha valaki kapcsolatfelkérést küldött neked"), + "notifications__connection_request_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] kapcsolatfelkérést küldött."), + "notifications__connection_title" : MessageLookupByLibrary.simpleMessage("Függő kapcsolat"), + "notifications__follow_desc" : MessageLookupByLibrary.simpleMessage("Értesülj, ha valaki követni kezd téged"), + "notifications__follow_title" : MessageLookupByLibrary.simpleMessage("Követés"), + "notifications__following_you_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] mostantól követ téged."), + "notifications__general_desc" : MessageLookupByLibrary.simpleMessage("Értesülj, ha történik valami"), + "notifications__general_title" : MessageLookupByLibrary.simpleMessage("Értesítések"), + "notifications__mentioned_in_post_comment_tile" : m25, + "notifications__mentioned_in_post_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] megjelölt egy bejegyzésben."), + "notifications__mute_post_turn_off_post_comment_notifications" : MessageLookupByLibrary.simpleMessage("Hozzászólás-értesítések kikapcsolása"), + "notifications__mute_post_turn_off_post_notifications" : MessageLookupByLibrary.simpleMessage("Bejegyzésértesítések kikapcsolása"), + "notifications__mute_post_turn_on_post_comment_notifications" : MessageLookupByLibrary.simpleMessage("Hozzászólás-értesítések bekapcsolása"), + "notifications__mute_post_turn_on_post_notifications" : MessageLookupByLibrary.simpleMessage("Bejegyzésértesítések bekapcsolása"), + "notifications__post_reaction_desc" : MessageLookupByLibrary.simpleMessage("Értesülj, ha valaki reagált egy bejegyzésedre"), + "notifications__post_reaction_title" : MessageLookupByLibrary.simpleMessage("Reagálás bejegyzésre"), + "notifications__post_user_mention_desc" : MessageLookupByLibrary.simpleMessage("Értesülj, ha valaki megjelöl téged egy bejegyzésben"), + "notifications__post_user_mention_title" : MessageLookupByLibrary.simpleMessage("Megjelölés bejegyzésben"), + "notifications__reacted_to_post_comment_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] reagált a hozzászólásodra."), + "notifications__reacted_to_post_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] reagált a bejegyzésedre."), + "notifications__settings_title" : MessageLookupByLibrary.simpleMessage("Értesítési beálllítások"), + "notifications__tab_general" : MessageLookupByLibrary.simpleMessage("Általános"), + "notifications__tab_requests" : MessageLookupByLibrary.simpleMessage("Kérelmek"), + "notifications__user_community_invite_tile" : m26, + "post__action_comment" : MessageLookupByLibrary.simpleMessage("Hozzászólás"), + "post__action_react" : MessageLookupByLibrary.simpleMessage("Reagálás"), + "post__action_reply" : MessageLookupByLibrary.simpleMessage("Válasz"), + "post__actions_comment_deleted" : MessageLookupByLibrary.simpleMessage("Hozzászólás törölve"), + "post__actions_delete" : MessageLookupByLibrary.simpleMessage("Bejegyzés törlése"), + "post__actions_delete_comment" : MessageLookupByLibrary.simpleMessage("Hozzászólás törlése"), + "post__actions_deleted" : MessageLookupByLibrary.simpleMessage("Bejegyzés törölve"), + "post__actions_edit_comment" : MessageLookupByLibrary.simpleMessage("Hozzászólás szerkesztése"), + "post__actions_report_text" : MessageLookupByLibrary.simpleMessage("Jelentés"), + "post__actions_reported_text" : MessageLookupByLibrary.simpleMessage("Jelentve"), + "post__actions_show_more_text" : MessageLookupByLibrary.simpleMessage("Bővebben"), + "post__close_create_post_label" : MessageLookupByLibrary.simpleMessage("Close create new post"), + "post__close_post" : MessageLookupByLibrary.simpleMessage("Bejegyzés bezárása"), + "post__comment_maxlength_error" : m27, + "post__comment_reply_expanded_post" : MessageLookupByLibrary.simpleMessage("Bejegyzés"), + "post__comment_reply_expanded_reply_comment" : MessageLookupByLibrary.simpleMessage("Válasz a hozzászólásra"), + "post__comment_reply_expanded_reply_hint_text" : MessageLookupByLibrary.simpleMessage("A válaszod..."), + "post__comment_required_error" : MessageLookupByLibrary.simpleMessage("A hozzászólás nem lehet üres."), + "post__commenter_expanded_edit_comment" : MessageLookupByLibrary.simpleMessage("Hozzászólás szerkesztése"), + "post__commenter_expanded_join_conversation" : MessageLookupByLibrary.simpleMessage("Csatlakozz a beszélgetéshez..."), + "post__commenter_expanded_save" : MessageLookupByLibrary.simpleMessage("Mentés"), + "post__commenter_expanded_start_conversation" : MessageLookupByLibrary.simpleMessage("Új beszélgetés indítása..."), + "post__commenter_post_text" : MessageLookupByLibrary.simpleMessage("Bejegyzés"), + "post__commenter_write_something" : MessageLookupByLibrary.simpleMessage("Írj valamit..."), + "post__comments_closed_post" : MessageLookupByLibrary.simpleMessage("Zárt bejegyzés"), + "post__comments_disabled" : MessageLookupByLibrary.simpleMessage("A hozzászólások le vannak tiltva"), + "post__comments_disabled_message" : MessageLookupByLibrary.simpleMessage("A hozzászólások letiltva"), + "post__comments_enabled_message" : MessageLookupByLibrary.simpleMessage("A hozzászólások engedélyezve"), + "post__comments_header_be_the_first_comments" : MessageLookupByLibrary.simpleMessage("Legyél az első hozzászóló"), + "post__comments_header_be_the_first_replies" : MessageLookupByLibrary.simpleMessage("Legyél az első hozzászóló"), + "post__comments_header_newer" : MessageLookupByLibrary.simpleMessage("Újabb"), + "post__comments_header_newest_comments" : MessageLookupByLibrary.simpleMessage("Legutóbbiak"), + "post__comments_header_newest_replies" : MessageLookupByLibrary.simpleMessage("Legutóbbiak"), + "post__comments_header_older" : MessageLookupByLibrary.simpleMessage("Korábbi"), + "post__comments_header_oldest_comments" : MessageLookupByLibrary.simpleMessage("Legkorábbiak"), + "post__comments_header_oldest_replies" : MessageLookupByLibrary.simpleMessage("Legkorábbiak"), + "post__comments_header_see_newest_comments" : MessageLookupByLibrary.simpleMessage("Legutóbbi hozzászólások megtekintése"), + "post__comments_header_see_newest_replies" : MessageLookupByLibrary.simpleMessage("Újabb válaszok megtekintése"), + "post__comments_header_see_oldest_comments" : MessageLookupByLibrary.simpleMessage("Legkorábbi hozzászólások megtekintése"), + "post__comments_header_see_oldest_replies" : MessageLookupByLibrary.simpleMessage("Legkorábbi válaszok megtekintése"), + "post__comments_header_view_newest_comments" : MessageLookupByLibrary.simpleMessage("Legutóbbi hozzászólások megtekintése"), + "post__comments_header_view_newest_replies" : MessageLookupByLibrary.simpleMessage("Újabb válaszok megtekintése"), + "post__comments_header_view_oldest_comments" : MessageLookupByLibrary.simpleMessage("Legkorábbi hozzászólások megtekintése"), + "post__comments_header_view_oldest_replies" : MessageLookupByLibrary.simpleMessage("Legkorábbi válaszok megtekintése"), + "post__comments_page_no_more_replies_to_load" : MessageLookupByLibrary.simpleMessage("Nincs több betölthető válasz"), + "post__comments_page_no_more_to_load" : MessageLookupByLibrary.simpleMessage("Nincs több betölthető hozzászólás"), + "post__comments_page_replies_title" : MessageLookupByLibrary.simpleMessage("Hozzászólás válaszai"), + "post__comments_page_tap_to_retry" : MessageLookupByLibrary.simpleMessage("Koppints a hozzászólások betöltésének újrapróbálásához."), + "post__comments_page_tap_to_retry_replies" : MessageLookupByLibrary.simpleMessage("Koppints a válaszok betöltésének újrapróbálásához."), + "post__comments_page_title" : MessageLookupByLibrary.simpleMessage("Bejegyzés hozzászólásai"), + "post__comments_view_all_comments" : m28, + "post__create_new" : MessageLookupByLibrary.simpleMessage("Új bejegyzés"), + "post__create_new_community_post_label" : MessageLookupByLibrary.simpleMessage("Create new communtiy post"), + "post__create_new_post_label" : MessageLookupByLibrary.simpleMessage("Create new post"), + "post__create_next" : MessageLookupByLibrary.simpleMessage("Tovább"), + "post__create_photo" : MessageLookupByLibrary.simpleMessage("Fotó"), + "post__create_video" : MessageLookupByLibrary.simpleMessage("Videó"), + "post__disable_post_comments" : MessageLookupByLibrary.simpleMessage("Hozzászólások letiltása"), + "post__edit_save" : MessageLookupByLibrary.simpleMessage("Mentés"), + "post__edit_title" : MessageLookupByLibrary.simpleMessage("Bejegyzés szerkesztése"), + "post__enable_post_comments" : MessageLookupByLibrary.simpleMessage("Hozzászólások engedélyezése"), + "post__have_not_shared_anything" : MessageLookupByLibrary.simpleMessage("Még nem osztottál meg semmit sem."), + "post__is_closed" : MessageLookupByLibrary.simpleMessage("Zárt bejegyzés"), + "post__my_circles" : MessageLookupByLibrary.simpleMessage("Köreim"), + "post__my_circles_desc" : MessageLookupByLibrary.simpleMessage("Bejegyzés megosztása egy vagy több körödben."), + "post__no_circles_for" : m29, + "post__open_post" : MessageLookupByLibrary.simpleMessage("Bejegyzés megnyitása"), + "post__post_closed" : MessageLookupByLibrary.simpleMessage("Zárt bejegyzés "), + "post__post_opened" : MessageLookupByLibrary.simpleMessage("Nyitott bejegyzés"), + "post__post_reactions_title" : MessageLookupByLibrary.simpleMessage("Bejegyzés reakciói"), + "post__profile_counts_follower" : MessageLookupByLibrary.simpleMessage(" követő"), + "post__profile_counts_followers" : MessageLookupByLibrary.simpleMessage(" követő"), + "post__profile_counts_following" : MessageLookupByLibrary.simpleMessage(" követés"), + "post__profile_counts_post" : MessageLookupByLibrary.simpleMessage(" bejegyzés"), + "post__profile_counts_posts" : MessageLookupByLibrary.simpleMessage(" bejegyzés"), + "post__profile_retry_loading_posts" : MessageLookupByLibrary.simpleMessage("Koppints az újrapróbálkozáshoz"), + "post__reaction_list_tap_retry" : MessageLookupByLibrary.simpleMessage("Koppints a reakciók betöltésének újrapróbálásához."), + "post__search_circles" : MessageLookupByLibrary.simpleMessage("Körök keresése..."), + "post__share" : MessageLookupByLibrary.simpleMessage("Megosztás"), + "post__share_community" : MessageLookupByLibrary.simpleMessage("Megosztás"), + "post__share_community_desc" : MessageLookupByLibrary.simpleMessage("Bejegyzés megosztása egy közösségben, amelynek tagja vagy."), + "post__share_community_title" : MessageLookupByLibrary.simpleMessage("Egy közösség"), + "post__share_to" : MessageLookupByLibrary.simpleMessage("Megosztás itt..."), + "post__share_to_circles" : MessageLookupByLibrary.simpleMessage("Megosztás körökben"), + "post__share_to_community" : MessageLookupByLibrary.simpleMessage("Megosztás közösségben..."), + "post__shared_privately_on" : MessageLookupByLibrary.simpleMessage("Bizalmasan megosztva"), + "post__sharing_post_to" : MessageLookupByLibrary.simpleMessage("Bejegyzés megosztása itt:"), + "post__text_copied" : MessageLookupByLibrary.simpleMessage("Szöveg kimásolva!"), + "post__time_short_days" : MessageLookupByLibrary.simpleMessage("n"), + "post__time_short_hours" : MessageLookupByLibrary.simpleMessage("ó"), + "post__time_short_minutes" : MessageLookupByLibrary.simpleMessage("p"), + "post__time_short_now_text" : MessageLookupByLibrary.simpleMessage("most"), + "post__time_short_one_day" : MessageLookupByLibrary.simpleMessage("1n"), + "post__time_short_one_hour" : MessageLookupByLibrary.simpleMessage("1ó"), + "post__time_short_one_minute" : MessageLookupByLibrary.simpleMessage("1p"), + "post__time_short_one_week" : MessageLookupByLibrary.simpleMessage("1h"), + "post__time_short_one_year" : MessageLookupByLibrary.simpleMessage("1év"), + "post__time_short_seconds" : MessageLookupByLibrary.simpleMessage("mp"), + "post__time_short_weeks" : MessageLookupByLibrary.simpleMessage("h"), + "post__time_short_years" : MessageLookupByLibrary.simpleMessage("év"), + "post__timeline_posts_all_loaded" : MessageLookupByLibrary.simpleMessage("🎉 Összes bejegyzés betöltve"), + "post__timeline_posts_default_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Próbáld meg frissíteni a hírfolyamot."), + "post__timeline_posts_default_drhoo_title" : MessageLookupByLibrary.simpleMessage("Valami nincs rendben."), + "post__timeline_posts_failed_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Próbáld újra pár másodperc múlva"), + "post__timeline_posts_failed_drhoo_title" : MessageLookupByLibrary.simpleMessage("Nem sikerült betölteni a hírfolyamodat."), + "post__timeline_posts_no_more_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("A kezdéshez kövess pár felhasználót vagy csatlakozz egy közösséghez!"), + "post__timeline_posts_refresh_posts" : MessageLookupByLibrary.simpleMessage("Bejegyzések frissítése"), + "post__timeline_posts_refreshing_drhoo_title" : MessageLookupByLibrary.simpleMessage("Csak egy pillanat!"), + "post__trending_posts_no_trending_posts" : MessageLookupByLibrary.simpleMessage("Nincsenek felkapott bejegyzések. Próbáld újra pár másodperc múlva."), + "post__trending_posts_refresh" : MessageLookupByLibrary.simpleMessage("Frissítés"), + "post__trending_posts_title" : MessageLookupByLibrary.simpleMessage("Felkapott bejegyzések"), + "post__user_has_not_shared_anything" : m30, + "post__usernames_circles" : m31, + "post__world_circle_name" : MessageLookupByLibrary.simpleMessage("Világ"), + "post__you_shared_with" : MessageLookupByLibrary.simpleMessage("Itt megosztva:"), + "post_body_link_preview__empty" : MessageLookupByLibrary.simpleMessage("This link could not be previewed"), + "post_body_link_preview__error_with_description" : m32, + "post_body_media__unsupported" : MessageLookupByLibrary.simpleMessage("Nem támogatott médiaformátum"), + "post_uploader__cancelled" : MessageLookupByLibrary.simpleMessage("Megszakítva!"), + "post_uploader__cancelling" : MessageLookupByLibrary.simpleMessage("Megszakítás"), + "post_uploader__compressing_media" : MessageLookupByLibrary.simpleMessage("Média tömörítése..."), + "post_uploader__creating_post" : MessageLookupByLibrary.simpleMessage("Bejegyzés létrehozása..."), + "post_uploader__generic_upload_failed" : MessageLookupByLibrary.simpleMessage("Sikertelen feltöltés"), + "post_uploader__processing" : MessageLookupByLibrary.simpleMessage("Bejegyzés feldolgozása..."), + "post_uploader__publishing" : MessageLookupByLibrary.simpleMessage("Bejegyzés közzététele..."), + "post_uploader__success" : MessageLookupByLibrary.simpleMessage("Siker!"), + "post_uploader__uploading_media" : MessageLookupByLibrary.simpleMessage("Média feltöltése..."), + "posts_stream__all_loaded" : MessageLookupByLibrary.simpleMessage("🎉 Összes bejegyzés betöltve"), + "posts_stream__empty_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Próbáld újra pár másodperc múlva."), + "posts_stream__empty_drhoo_title" : MessageLookupByLibrary.simpleMessage("Ez a hírfolyam üres."), + "posts_stream__failed_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Próbáld újra pár másodperc múlva"), + "posts_stream__failed_drhoo_title" : MessageLookupByLibrary.simpleMessage("Nem sikerült betölteni a hírfolyamot."), + "posts_stream__refreshing_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Hírfolyam újratöltése."), + "posts_stream__refreshing_drhoo_title" : MessageLookupByLibrary.simpleMessage("Csak egy pillanat!"), + "posts_stream__status_tile_empty" : MessageLookupByLibrary.simpleMessage("Nem található bejegyzés"), + "posts_stream__status_tile_no_more_to_load" : MessageLookupByLibrary.simpleMessage("🎉 Összes bejegyzés betöltve"), + "user__add_account_done" : MessageLookupByLibrary.simpleMessage("Kész"), + "user__add_account_save" : MessageLookupByLibrary.simpleMessage("Mentés"), + "user__add_account_success" : MessageLookupByLibrary.simpleMessage("Siker"), + "user__add_account_to_lists" : MessageLookupByLibrary.simpleMessage("Fiók hozzáadása listákhoz"), + "user__add_account_update_account_lists" : MessageLookupByLibrary.simpleMessage("Fióklisták frissítése"), + "user__add_account_update_lists" : MessageLookupByLibrary.simpleMessage("Listák frissítése"), + "user__billion_postfix" : MessageLookupByLibrary.simpleMessage("mld"), + "user__block_user" : MessageLookupByLibrary.simpleMessage("Felhasználó letiltása"), + "user__change_email_email_text" : MessageLookupByLibrary.simpleMessage("E-mail cím"), + "user__change_email_error" : MessageLookupByLibrary.simpleMessage("Ez az e-mail cím már regisztrálva van"), + "user__change_email_hint_text" : MessageLookupByLibrary.simpleMessage("Add meg az új e-mail címedet"), + "user__change_email_save" : MessageLookupByLibrary.simpleMessage("Mentés"), + "user__change_email_success_info" : MessageLookupByLibrary.simpleMessage("Elküldtünk egy visszaigazoló linket az új e-mail címedre. Kattints rá az új e-mail címed megerősítéséhez"), + "user__change_email_title" : MessageLookupByLibrary.simpleMessage("E-mail cím módosítása"), + "user__circle_name_empty_error" : MessageLookupByLibrary.simpleMessage("A kör neve nem lehet üres."), + "user__circle_name_range_error" : m33, + "user__circle_peoples_count" : m34, + "user__clear_app_preferences_cleared_successfully" : MessageLookupByLibrary.simpleMessage("Beállítások sikeresen törölve"), + "user__clear_app_preferences_desc" : MessageLookupByLibrary.simpleMessage("Az alkalmazás beállításainak törlése. Jelenleg ez az opció csak a hozzászólások megjelenítési sorrendjét vonja magába."), + "user__clear_app_preferences_error" : MessageLookupByLibrary.simpleMessage("Nem sikerült törölni a beállításokat"), + "user__clear_app_preferences_title" : MessageLookupByLibrary.simpleMessage("Beállítások törlése"), + "user__clear_application_cache_desc" : MessageLookupByLibrary.simpleMessage("Gyorsítótárazott bejegyzések, fiókok, képek, stb. törlése."), + "user__clear_application_cache_failure" : MessageLookupByLibrary.simpleMessage("Nem sikerült törölni a gyorsítótárat"), + "user__clear_application_cache_success" : MessageLookupByLibrary.simpleMessage("Gyorsítótár sikeresen ürítve"), + "user__clear_application_cache_text" : MessageLookupByLibrary.simpleMessage("Gyorsítótár ürítése"), + "user__confirm_block_user_blocked" : MessageLookupByLibrary.simpleMessage("Felhasználó letiltva."), + "user__confirm_block_user_info" : MessageLookupByLibrary.simpleMessage("Nem láthatjátok egymás bejegyzéseit és semmilyen módon nem léphettek kapcsolatba egymással."), + "user__confirm_block_user_no" : MessageLookupByLibrary.simpleMessage("Nem"), + "user__confirm_block_user_question" : m35, + "user__confirm_block_user_title" : MessageLookupByLibrary.simpleMessage("Megerősítés"), + "user__confirm_block_user_yes" : MessageLookupByLibrary.simpleMessage("Igen"), + "user__confirm_connection_add_connection" : MessageLookupByLibrary.simpleMessage("Kapcsolat hozzáadása körökhöz"), + "user__confirm_connection_confirm_text" : MessageLookupByLibrary.simpleMessage("Megerősít"), + "user__confirm_connection_connection_confirmed" : MessageLookupByLibrary.simpleMessage("Kapcsolat megerősítve"), + "user__confirm_connection_with" : m36, + "user__confirm_guidelines_reject_chat_community" : MessageLookupByLibrary.simpleMessage("Beszélgess a közösséggel."), + "user__confirm_guidelines_reject_chat_immediately" : MessageLookupByLibrary.simpleMessage("Azonnali beszélgetés kezdeményezése."), + "user__confirm_guidelines_reject_chat_with_team" : MessageLookupByLibrary.simpleMessage("Beszélgess a csapattal."), + "user__confirm_guidelines_reject_delete_account" : MessageLookupByLibrary.simpleMessage("Fiók törlése"), + "user__confirm_guidelines_reject_go_back" : MessageLookupByLibrary.simpleMessage("Vissza"), + "user__confirm_guidelines_reject_info" : MessageLookupByLibrary.simpleMessage("Nem használhatod az Okunát amíg nem fogadod el az irányelveket."), + "user__confirm_guidelines_reject_join_slack" : MessageLookupByLibrary.simpleMessage("Csatlakozz a Slack csatornánkhoz."), + "user__confirm_guidelines_reject_title" : MessageLookupByLibrary.simpleMessage("Irányelvek elutasítása"), + "user__connect_to_user_add_connection" : MessageLookupByLibrary.simpleMessage("Kapcsolat hozzáadása körökhöz"), + "user__connect_to_user_connect_with_username" : m37, + "user__connect_to_user_done" : MessageLookupByLibrary.simpleMessage("Kész"), + "user__connect_to_user_request_sent" : MessageLookupByLibrary.simpleMessage("Kapcsolódási kérelem elküldve"), + "user__connection_circle_edit" : MessageLookupByLibrary.simpleMessage("Szerkeszt"), + "user__connection_pending" : MessageLookupByLibrary.simpleMessage("Függőben"), + "user__connections_circle_delete" : MessageLookupByLibrary.simpleMessage("Törlés"), + "user__connections_header_circle_desc" : MessageLookupByLibrary.simpleMessage("A kör, melyhez az összes kapcsolatot hozzá lesz adva."), + "user__connections_header_users" : MessageLookupByLibrary.simpleMessage("Felhasználók"), + "user__delete_account_confirmation_desc" : MessageLookupByLibrary.simpleMessage("Biztosan törölni szeretnéd a fiókodat?"), + "user__delete_account_confirmation_desc_info" : MessageLookupByLibrary.simpleMessage("Ez a művelet végleges és nem visszavonható."), + "user__delete_account_confirmation_goodbye" : MessageLookupByLibrary.simpleMessage("Viszlát... 😢"), + "user__delete_account_confirmation_no" : MessageLookupByLibrary.simpleMessage("Nem"), + "user__delete_account_confirmation_title" : MessageLookupByLibrary.simpleMessage("Megerősítés"), + "user__delete_account_confirmation_yes" : MessageLookupByLibrary.simpleMessage("Igen"), + "user__delete_account_current_pwd" : MessageLookupByLibrary.simpleMessage("Jelenlegi jelszó"), + "user__delete_account_current_pwd_hint" : MessageLookupByLibrary.simpleMessage("Írd be a jelenlegi jelszavad"), + "user__delete_account_next" : MessageLookupByLibrary.simpleMessage("Következő"), + "user__delete_account_title" : MessageLookupByLibrary.simpleMessage("Fiók törlése"), + "user__disconnect_from_user" : m38, + "user__disconnect_from_user_success" : MessageLookupByLibrary.simpleMessage("Kapcsolat sikeresen törölve"), + "user__edit_profile_bio" : MessageLookupByLibrary.simpleMessage("Bemutatkozás"), + "user__edit_profile_community_posts" : MessageLookupByLibrary.simpleMessage("Közösségi bejegyzések"), + "user__edit_profile_delete" : MessageLookupByLibrary.simpleMessage("Törlés"), + "user__edit_profile_followers_count" : MessageLookupByLibrary.simpleMessage("Követők száma"), + "user__edit_profile_location" : MessageLookupByLibrary.simpleMessage("Hely"), + "user__edit_profile_name" : MessageLookupByLibrary.simpleMessage("Név"), + "user__edit_profile_pick_image" : MessageLookupByLibrary.simpleMessage("Kép kiválasztása"), + "user__edit_profile_pick_image_error_too_large" : m39, + "user__edit_profile_save_text" : MessageLookupByLibrary.simpleMessage("Mentés"), + "user__edit_profile_title" : MessageLookupByLibrary.simpleMessage("Profil szerkesztése"), + "user__edit_profile_url" : MessageLookupByLibrary.simpleMessage("URL"), + "user__edit_profile_user_name_taken" : m40, + "user__edit_profile_username" : MessageLookupByLibrary.simpleMessage("Felhasználónév"), + "user__email_verification_error" : MessageLookupByLibrary.simpleMessage("Hoppá! A tokened nem érvényes vagy már lejárt. Kérünk, próbáld újra"), + "user__email_verification_successful" : MessageLookupByLibrary.simpleMessage("Remek! Az e-mail címed meg lett erősítve"), + "user__emoji_field_none_selected" : MessageLookupByLibrary.simpleMessage("Nincs kiválasztott emoji"), + "user__emoji_search_none_found" : m41, + "user__follow_button_follow_text" : MessageLookupByLibrary.simpleMessage("Követés"), + "user__follow_button_unfollow_text" : MessageLookupByLibrary.simpleMessage("Követés törlése"), + "user__follow_lists_no_list_found" : MessageLookupByLibrary.simpleMessage("Nem találhatóak listák."), + "user__follow_lists_no_list_found_for" : m42, + "user__follow_lists_search_for" : MessageLookupByLibrary.simpleMessage("Listák keresése..."), + "user__follow_lists_title" : MessageLookupByLibrary.simpleMessage("Listáim"), + "user__follower_plural" : MessageLookupByLibrary.simpleMessage("követő"), + "user__follower_singular" : MessageLookupByLibrary.simpleMessage("követő"), + "user__followers_title" : MessageLookupByLibrary.simpleMessage("Követők"), + "user__following_resource_name" : MessageLookupByLibrary.simpleMessage("követett felhasználó"), + "user__following_text" : MessageLookupByLibrary.simpleMessage("Követve"), + "user__follows_list_accounts_count" : m43, + "user__follows_list_edit" : MessageLookupByLibrary.simpleMessage("Szerkeszt"), + "user__follows_list_header_title" : MessageLookupByLibrary.simpleMessage("Felhasználók"), + "user__follows_lists_account" : MessageLookupByLibrary.simpleMessage("1 fiók"), + "user__follows_lists_accounts" : m44, + "user__groups_see_all" : m45, + "user__guidelines_accept" : MessageLookupByLibrary.simpleMessage("Elfogad"), + "user__guidelines_desc" : MessageLookupByLibrary.simpleMessage("Kérünk, szánj pár percet arra, hogy elolvasd és elfogadd az irányelveinket."), + "user__guidelines_reject" : MessageLookupByLibrary.simpleMessage("Elutasít"), + "user__invite" : MessageLookupByLibrary.simpleMessage("Meghívás"), + "user__invite_member" : MessageLookupByLibrary.simpleMessage("Tag"), + "user__invite_someone_message" : m46, + "user__invites_accepted_group_item_name" : MessageLookupByLibrary.simpleMessage("elfogadott meghívó"), + "user__invites_accepted_group_name" : MessageLookupByLibrary.simpleMessage("elfogadott meghívók"), + "user__invites_accepted_title" : MessageLookupByLibrary.simpleMessage("Elfogadva"), + "user__invites_create_create" : MessageLookupByLibrary.simpleMessage("Létrehozás"), + "user__invites_create_create_title" : MessageLookupByLibrary.simpleMessage("Meghívó létrehozása"), + "user__invites_create_edit_title" : MessageLookupByLibrary.simpleMessage("Meghívó szerkesztése"), + "user__invites_create_name_hint" : MessageLookupByLibrary.simpleMessage("pl. Kovács Anna"), + "user__invites_create_name_title" : MessageLookupByLibrary.simpleMessage("Becenév"), + "user__invites_create_save" : MessageLookupByLibrary.simpleMessage("Mentés"), + "user__invites_delete" : MessageLookupByLibrary.simpleMessage("Törlés"), + "user__invites_edit_text" : MessageLookupByLibrary.simpleMessage("Szerkeszt"), + "user__invites_email_hint" : MessageLookupByLibrary.simpleMessage("pl.: kovacsanna@email.hu"), + "user__invites_email_invite_text" : MessageLookupByLibrary.simpleMessage("E-mail meghívó"), + "user__invites_email_send_text" : MessageLookupByLibrary.simpleMessage("Küldés"), + "user__invites_email_sent_text" : MessageLookupByLibrary.simpleMessage("Meghívó e-mail elküldve"), + "user__invites_email_text" : MessageLookupByLibrary.simpleMessage("E-mail cím"), + "user__invites_invite_a_friend" : MessageLookupByLibrary.simpleMessage("Ismerős meghívása"), + "user__invites_invite_text" : MessageLookupByLibrary.simpleMessage("Meghívás"), + "user__invites_joined_with" : m47, + "user__invites_none_left" : MessageLookupByLibrary.simpleMessage("Jelenleg nem hozhatsz létre több meghívót."), + "user__invites_none_used" : MessageLookupByLibrary.simpleMessage("Úgy fest nem használtál egy meghívót sem."), + "user__invites_pending" : MessageLookupByLibrary.simpleMessage("Függőben"), + "user__invites_pending_email" : m48, + "user__invites_pending_group_item_name" : MessageLookupByLibrary.simpleMessage("függő meghívó"), + "user__invites_pending_group_name" : MessageLookupByLibrary.simpleMessage("függő meghívók"), + "user__invites_refresh" : MessageLookupByLibrary.simpleMessage("Frissítés"), + "user__invites_share_email" : MessageLookupByLibrary.simpleMessage("Megosztom a meghívót e-mailben"), + "user__invites_share_email_desc" : MessageLookupByLibrary.simpleMessage("Elküldünk egy meghívó e-mailt az utasításokkal a részedről"), + "user__invites_share_yourself" : MessageLookupByLibrary.simpleMessage("Megosztom a meghívót magam"), + "user__invites_share_yourself_desc" : MessageLookupByLibrary.simpleMessage("Válassz chat alkalmazások, stb. közül"), + "user__invites_title" : MessageLookupByLibrary.simpleMessage("Meghívóim"), + "user__language_settings_save" : MessageLookupByLibrary.simpleMessage("Mentés"), + "user__language_settings_saved_success" : MessageLookupByLibrary.simpleMessage("Nyelv sikeresen megváltoztatva"), + "user__language_settings_title" : MessageLookupByLibrary.simpleMessage("Nyelvi beállítások"), + "user__list_name_empty_error" : MessageLookupByLibrary.simpleMessage("A lista neve nem lehet üres."), + "user__list_name_range_error" : m49, + "user__million_postfix" : MessageLookupByLibrary.simpleMessage("mln"), + "user__profile_action_cancel_connection" : MessageLookupByLibrary.simpleMessage("Kapcsolódási kérelem visszavonása"), + "user__profile_action_deny_connection" : MessageLookupByLibrary.simpleMessage("Kapcsolódási kérelem visszautasítása"), + "user__profile_action_user_blocked" : MessageLookupByLibrary.simpleMessage("Felhasználó letiltva"), + "user__profile_action_user_unblocked" : MessageLookupByLibrary.simpleMessage("Felhasználó tiltása törölve"), + "user__profile_bio_length_error" : m50, + "user__profile_location_length_error" : m51, + "user__profile_url_invalid_error" : MessageLookupByLibrary.simpleMessage("Kérünk, adj meg egy érvényes URL-t."), + "user__remove_account_from_list" : MessageLookupByLibrary.simpleMessage("Fiók törlése a listákból"), + "user__remove_account_from_list_success" : MessageLookupByLibrary.simpleMessage("Siker"), + "user__save_connection_circle_color_hint" : MessageLookupByLibrary.simpleMessage("(Koppints a módosításhoz)"), + "user__save_connection_circle_color_name" : MessageLookupByLibrary.simpleMessage("Szín"), + "user__save_connection_circle_create" : MessageLookupByLibrary.simpleMessage("Kör létrehozása"), + "user__save_connection_circle_edit" : MessageLookupByLibrary.simpleMessage("Kör szerkesztése"), + "user__save_connection_circle_hint" : MessageLookupByLibrary.simpleMessage("pl.: Barátok, Család, Kollégák."), + "user__save_connection_circle_name" : MessageLookupByLibrary.simpleMessage("Név"), + "user__save_connection_circle_name_taken" : m52, + "user__save_connection_circle_save" : MessageLookupByLibrary.simpleMessage("Mentés"), + "user__save_connection_circle_users" : MessageLookupByLibrary.simpleMessage("Felhasználók"), + "user__save_follows_list_create" : MessageLookupByLibrary.simpleMessage("Lista létrehozása"), + "user__save_follows_list_edit" : MessageLookupByLibrary.simpleMessage("Lista szerkesztése"), + "user__save_follows_list_emoji" : MessageLookupByLibrary.simpleMessage("Emoji"), + "user__save_follows_list_emoji_required_error" : MessageLookupByLibrary.simpleMessage("Az emoji kötelező"), + "user__save_follows_list_hint_text" : MessageLookupByLibrary.simpleMessage("pl.: Utazás, Fényképészet"), + "user__save_follows_list_name" : MessageLookupByLibrary.simpleMessage("Név"), + "user__save_follows_list_name_taken" : m53, + "user__save_follows_list_save" : MessageLookupByLibrary.simpleMessage("Mentés"), + "user__save_follows_list_users" : MessageLookupByLibrary.simpleMessage("Felhasználók"), + "user__thousand_postfix" : MessageLookupByLibrary.simpleMessage("e"), + "user__tile_delete" : MessageLookupByLibrary.simpleMessage("Törlés"), + "user__tile_following" : MessageLookupByLibrary.simpleMessage(" · követve"), + "user__timeline_filters_apply_all" : MessageLookupByLibrary.simpleMessage("Szűrők alkalmazása"), + "user__timeline_filters_circles" : MessageLookupByLibrary.simpleMessage("Körök"), + "user__timeline_filters_clear_all" : MessageLookupByLibrary.simpleMessage("Összes törlése"), + "user__timeline_filters_lists" : MessageLookupByLibrary.simpleMessage("Listák"), + "user__timeline_filters_no_match" : m54, + "user__timeline_filters_search_desc" : MessageLookupByLibrary.simpleMessage("Körök és listák keresése..."), + "user__timeline_filters_title" : MessageLookupByLibrary.simpleMessage("Idővonal szűrők"), + "user__translate_see_translation" : MessageLookupByLibrary.simpleMessage("Fordítás megtekintése"), + "user__translate_show_original" : MessageLookupByLibrary.simpleMessage("Eredeti megtekintése"), + "user__unblock_user" : MessageLookupByLibrary.simpleMessage("Felhasználó tiltásának törlése"), + "user__uninvite" : MessageLookupByLibrary.simpleMessage("Meghívás törlése"), + "user__update_connection_circle_save" : MessageLookupByLibrary.simpleMessage("Mentés"), + "user__update_connection_circle_updated" : MessageLookupByLibrary.simpleMessage("Kapcsolat frissítve"), + "user__update_connection_circles_title" : MessageLookupByLibrary.simpleMessage("Kapcsolati körök frissítése"), + "user_search__cancel" : MessageLookupByLibrary.simpleMessage("Mégse"), + "user_search__communities" : MessageLookupByLibrary.simpleMessage("Közösségek"), + "user_search__list_no_results_found" : m55, + "user_search__list_refresh_text" : MessageLookupByLibrary.simpleMessage("Frissítés"), + "user_search__list_retry" : MessageLookupByLibrary.simpleMessage("Koppints az újrapróbálkozáshoz."), + "user_search__list_search_text" : m56, + "user_search__no_communities_for" : m57, + "user_search__no_results_for" : m58, + "user_search__no_users_for" : m59, + "user_search__search_text" : MessageLookupByLibrary.simpleMessage("Keresés..."), + "user_search__searching_for" : m60, + "user_search__users" : MessageLookupByLibrary.simpleMessage("Felhasználók"), + "video_picker__from_camera" : MessageLookupByLibrary.simpleMessage("Kameráról"), + "video_picker__from_gallery" : MessageLookupByLibrary.simpleMessage("Galériából") + }; +} diff --git a/lib/locale/messages_it.dart b/lib/locale/messages_it.dart index c3cb9e881..60b2835c1 100644 --- a/lib/locale/messages_it.dart +++ b/lib/locale/messages_it.dart @@ -3,22 +3,21 @@ // messages from the main program should be duplicated here with the same // function name. -// ignore_for_file: unnecessary_brace_in_string_interps +// Ignore issues from commonly used lints in this file. +// ignore_for_file:unnecessary_brace_in_string_interps, unnecessary_new +// ignore_for_file:prefer_single_quotes,comment_references, directives_ordering +// ignore_for_file:annotate_overrides,prefer_generic_function_type_aliases +// ignore_for_file:unused_import, file_names import 'package:intl/intl.dart'; import 'package:intl/message_lookup_by_library.dart'; -// ignore: unnecessary_new final messages = new MessageLookup(); -// ignore: unused_element -final _keepAnalysisHappy = Intl.defaultLocale; - -// ignore: non_constant_identifier_names -typedef MessageIfAbsent(String message_str, List args); +typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { - get localeName => 'it'; + String get localeName => 'it'; static m0(minLength, maxLength) => "(${minLength}-${maxLength} caratteri)"; @@ -58,88 +57,108 @@ class MessageLookup extends MessageLookupByLibrary { static m18(currentUserLanguage) => "Lingua (${currentUserLanguage})"; - static m19(resourceCount, resourceName) => "Vedi tutti ${resourceCount} ${resourceName}"; + static m19(limit) => "File troppo grande (limite: ${limit} MB)"; + + static m20(resourceCount, resourceName) => "Vedi tutti ${resourceCount} ${resourceName}"; + + static m21(postCommentText) => "anche [name] [username] ha commentato: ${postCommentText}"; - static m20(postCommentText) => "anche [name] [username] ha commentato il tuo post: ${postCommentText}"; + static m22(postCommentText) => "[name] [username] ha commentato il tuo post: ${postCommentText}"; - static m21(postCommentText) => "[name] [username] ha commentato il tuo post: ${postCommentText}"; + static m23(postCommentText) => "anche [name] [username] ha risposto: ${postCommentText}"; - static m22(postCommentText) => "anche [name] [username] ha risposto: ${postCommentText}"; + static m24(postCommentText) => "[name] [username] ha risposto: ${postCommentText}"; - static m23(postCommentText) => "[name] [username] ha risposto: ${postCommentText}"; + static m25(postCommentText) => "[name] [username] ti ha menzionato in un commento: ${postCommentText}"; - static m24(postCommentText) => "[name] [username] ti ha menzionato in un commento: ${postCommentText}"; + static m26(communityName) => "[name] [username] ti ha invitato a unirti alla comunità /c/${communityName}."; - static m25(communityName) => "[name] [username] ti ha invitato a unirti alla comunità /c/${communityName}."; + static m27(maxLength) => "Un commento non può essere più lungo di ${maxLength} caratteri."; - static m26(maxLength) => "Un commento non può essere più lungo di ${maxLength} caratteri."; + static m28(commentsCount) => "Mostra tutti i ${commentsCount} commenti"; - static m27(commentsCount) => "Mostra tutti i ${commentsCount} commenti"; + static m29(circlesSearchQuery) => "Nessuna cerchia trovata corrisponde a \'${circlesSearchQuery}\'."; - static m28(circlesSearchQuery) => "Nessuna cerchia trovata corrisponde a \'${circlesSearchQuery}\'."; + static m30(name) => "${name} non ha ancora condiviso niente."; - static m29(name) => "${name} non ha ancora condiviso niente."; + static m31(postCreatorUsername) => "le cerchie di @${postCreatorUsername}"; - static m30(postCreatorUsername) => "le cerchie di @${postCreatorUsername}"; + static m32(description) => "Impossibile creare l’anteprima del link, il sito web riporta errore: ${description}"; - static m31(maxLength) => "Il nome della cerchia non può essere più lungo di ${maxLength} caratteri."; + static m33(maxLength) => "Il nome della cerchia non può essere più lungo di ${maxLength} caratteri."; - static m32(prettyUsersCount) => "${prettyUsersCount} persone"; + static m34(prettyUsersCount) => "${prettyUsersCount} persone"; - static m33(username) => "Sei sicuro di voler bloccare @${username}?"; + static m35(username) => "Sei sicuro di voler bloccare @${username}?"; - static m34(userName) => "Conferma la connessione con ${userName}"; + static m36(userName) => "Conferma la connessione con ${userName}"; - static m35(userName) => "Connettiti con ${userName}"; + static m37(userName) => "Connettiti con ${userName}"; - static m36(userName) => "Disconnetti da ${userName}"; + static m38(userName) => "Disconnetti da ${userName}"; - static m37(limit) => "Immagine troppo grande (limite: ${limit} MB)"; + static m39(limit) => "Immagine troppo grande (limite: ${limit} MB)"; - static m38(username) => "Il nome utente @${username} è stato preso"; + static m40(username) => "Il nome utente @${username} è stato preso"; - static m39(searchQuery) => "Nessun emoji trovato corrispondente a \'${searchQuery}\'."; + static m41(searchQuery) => "Nessun emoji trovato corrispondente a \'${searchQuery}\'."; - static m40(searchQuery) => "Nessuna lista trovata per \'${searchQuery}\'"; + static m42(searchQuery) => "Nessuna lista trovata per \'${searchQuery}\'"; - static m41(prettyUsersCount) => "${prettyUsersCount} account"; + static m43(prettyUsersCount) => "${prettyUsersCount} account"; - static m42(prettyUsersCount) => "${prettyUsersCount} Profili"; + static m44(prettyUsersCount) => "${prettyUsersCount} Profili"; - static m43(groupName) => "Vedi tutti/e ${groupName}"; + static m45(groupName) => "Vedi tutti/e ${groupName}"; - static m44(iosLink, androidLink, inviteLink) => "Ehi, vorrei invitarti su Okuna. Per prima cosa scarica l\'app da iTunes (${iosLink}) o dal Play store (${androidLink}). Poi incolla questo link di invito personalizzato nel modulo \'Iscriviti\' nell\'App Okuna: ${inviteLink}"; + static m46(iosLink, androidLink, inviteLink) => "Ehi, vorrei invitarti su Okuna. Per prima cosa scarica l\'app da iTunes (${iosLink}) o dal Play store (${androidLink}). Poi incolla questo link di invito personalizzato nel modulo \'Iscriviti\' nell\'App Okuna: ${inviteLink}"; - static m45(username) => "Iscritto con nome utente @${username}"; + static m47(username) => "Iscritto con nome utente @${username}"; - static m46(email) => "In attesa, invia email di invito a ${email}"; + static m48(email) => "In attesa, invia email di invito a ${email}"; - static m47(maxLength) => "Il nome della lista non può essere più lungo di ${maxLength} caratteri."; + static m49(maxLength) => "Il nome della lista non può essere più lungo di ${maxLength} caratteri."; - static m48(maxLength) => "La biografia non può essere più lunga di ${maxLength} caratteri."; + static m50(maxLength) => "La biografia non può essere più lunga di ${maxLength} caratteri."; - static m49(maxLength) => "Il luogo non può essere più lungo di ${maxLength} caratteri."; + static m51(maxLength) => "Il luogo non può essere più lungo di ${maxLength} caratteri."; - static m50(takenConnectionsCircleName) => "Nome cerchia \'${takenConnectionsCircleName}\' già utilizzato"; + static m52(takenConnectionsCircleName) => "Nome cerchia \'${takenConnectionsCircleName}\' già utilizzato"; - static m51(listName) => "Il nome per la lista \'${listName}\' è già utilizzato"; + static m53(listName) => "Il nome per la lista \'${listName}\' è già utilizzato"; - static m52(searchQuery) => "Nessun risultato per \'${searchQuery}\'."; + static m54(searchQuery) => "Nessun risultato per \'${searchQuery}\'."; - static m53(resourcePluralName) => "Impossibile trovare ${resourcePluralName}."; + static m55(resourcePluralName) => "Impossibile trovare ${resourcePluralName}."; - static m54(resourcePluralName) => "Cerca ${resourcePluralName}..."; + static m56(resourcePluralName) => "Cerca ${resourcePluralName}..."; - static m55(searchQuery) => "Nessuna Comunità trovata per \'${searchQuery}\'."; + static m57(searchQuery) => "Nessuna Comunità trovata per \'${searchQuery}\'."; - static m56(searchQuery) => "Nessun risultato per \'${searchQuery}\'."; + static m58(searchQuery) => "Nessun risultato per \'${searchQuery}\'."; - static m57(searchQuery) => "Nessun Utente trovato per \'${searchQuery}\'."; + static m59(searchQuery) => "Nessun Utente trovato per \'${searchQuery}\'."; - static m58(searchQuery) => "Ricerca di \'${searchQuery}\'"; + static m60(searchQuery) => "Ricerca di \'${searchQuery}\'"; final messages = _notInlinedMessages(_notInlinedMessages); static _notInlinedMessages(_) => { + "application_settings__comment_sort_newest_first" : MessageLookupByLibrary.simpleMessage("Prima i più recenti"), + "application_settings__comment_sort_oldest_first" : MessageLookupByLibrary.simpleMessage("Prima i più vecchi"), + "application_settings__link_previews" : MessageLookupByLibrary.simpleMessage("Anteprime link"), + "application_settings__link_previews_autoplay_always" : MessageLookupByLibrary.simpleMessage("Sempre"), + "application_settings__link_previews_autoplay_never" : MessageLookupByLibrary.simpleMessage("Mai"), + "application_settings__link_previews_autoplay_wifi_only" : MessageLookupByLibrary.simpleMessage("Solo WiFi"), + "application_settings__link_previews_show" : MessageLookupByLibrary.simpleMessage("Mostra"), + "application_settings__tap_to_change" : MessageLookupByLibrary.simpleMessage("(Tocca per cambiare)"), + "application_settings__videos" : MessageLookupByLibrary.simpleMessage("Video"), + "application_settings__videos_autoplay" : MessageLookupByLibrary.simpleMessage("Riproduzione automatica"), + "application_settings__videos_autoplay_always" : MessageLookupByLibrary.simpleMessage("Sempre"), + "application_settings__videos_autoplay_never" : MessageLookupByLibrary.simpleMessage("Mai"), + "application_settings__videos_autoplay_wifi_only" : MessageLookupByLibrary.simpleMessage("Solo Wi-Fi"), + "application_settings__videos_sound" : MessageLookupByLibrary.simpleMessage("Suono"), + "application_settings__videos_sound_disabled" : MessageLookupByLibrary.simpleMessage("Disabilitato"), + "application_settings__videos_sound_enabled" : MessageLookupByLibrary.simpleMessage("Abilitato"), "auth__change_password_current_pwd" : MessageLookupByLibrary.simpleMessage("Password attuale"), "auth__change_password_current_pwd_hint" : MessageLookupByLibrary.simpleMessage("Inserisci la password attuale"), "auth__change_password_current_pwd_incorrect" : MessageLookupByLibrary.simpleMessage("La password inserita non è corretta"), @@ -214,7 +233,7 @@ class MessageLookup extends MessageLookupByLibrary { "auth__description_range_error" : m1, "auth__email_empty_error" : MessageLookupByLibrary.simpleMessage("Il campo email non può essere vuoto."), "auth__email_invalid_error" : MessageLookupByLibrary.simpleMessage("Per favore inserisci un indirizzo email valido."), - "auth__headline" : MessageLookupByLibrary.simpleMessage("Better social."), + "auth__headline" : MessageLookupByLibrary.simpleMessage("Un social migliore. "), "auth__login" : MessageLookupByLibrary.simpleMessage("Accedi"), "auth__login__connection_error" : MessageLookupByLibrary.simpleMessage("Non possiamo raggiungere i nostri server. Sei connesso a internet?"), "auth__login__credentials_mismatch_error" : MessageLookupByLibrary.simpleMessage("Le credenziali fornite non corrispondono."), @@ -344,6 +363,7 @@ class MessageLookup extends MessageLookupByLibrary { "community__posts" : MessageLookupByLibrary.simpleMessage("Post"), "community__refresh_text" : MessageLookupByLibrary.simpleMessage("Aggiorna"), "community__refreshing" : MessageLookupByLibrary.simpleMessage("Aggiornando la comunità"), + "community__retry_loading_posts" : MessageLookupByLibrary.simpleMessage("Tocca per riprovare"), "community__rules_empty_error" : MessageLookupByLibrary.simpleMessage("Le regole non possono essere vuote."), "community__rules_range_error" : m14, "community__rules_text" : MessageLookupByLibrary.simpleMessage("Regole"), @@ -396,6 +416,7 @@ class MessageLookup extends MessageLookupByLibrary { "drawer__application_settings" : MessageLookupByLibrary.simpleMessage("Impostazioni Applicazione"), "drawer__connections" : MessageLookupByLibrary.simpleMessage("Connessioni"), "drawer__customize" : MessageLookupByLibrary.simpleMessage("Personalizza"), + "drawer__developer_settings" : MessageLookupByLibrary.simpleMessage("Impostazioni sviluppatore"), "drawer__global_moderation" : MessageLookupByLibrary.simpleMessage("Moderazione globale"), "drawer__help" : MessageLookupByLibrary.simpleMessage("Assistenza & Feedback"), "drawer__lists" : MessageLookupByLibrary.simpleMessage("Liste"), @@ -429,6 +450,9 @@ class MessageLookup extends MessageLookupByLibrary { "drawer__useful_links_title" : MessageLookupByLibrary.simpleMessage("Link utili"), "error__no_internet_connection" : MessageLookupByLibrary.simpleMessage("Nessuna connessione Internet"), "error__unknown_error" : MessageLookupByLibrary.simpleMessage("Errore sconosciuto"), + "image_picker__error_too_large" : m19, + "image_picker__from_camera" : MessageLookupByLibrary.simpleMessage("Dalla fotocamera"), + "image_picker__from_gallery" : MessageLookupByLibrary.simpleMessage("Dalla galleria"), "moderation__actions_chat_with_team" : MessageLookupByLibrary.simpleMessage("Chatta con il team"), "moderation__actions_review" : MessageLookupByLibrary.simpleMessage("Controlla"), "moderation__category_text" : MessageLookupByLibrary.simpleMessage("Categoria"), @@ -485,7 +509,7 @@ class MessageLookup extends MessageLookupByLibrary { "moderation__reporter_text" : MessageLookupByLibrary.simpleMessage("Segnalatore"), "moderation__reports_preview_resource_reports" : MessageLookupByLibrary.simpleMessage("segnalazioni"), "moderation__reports_preview_title" : MessageLookupByLibrary.simpleMessage("Segnalazioni"), - "moderation__reports_see_all" : m19, + "moderation__reports_see_all" : m20, "moderation__tap_to_retry" : MessageLookupByLibrary.simpleMessage("Tocca per riprovare a caricare gli elementi"), "moderation__update_category_save" : MessageLookupByLibrary.simpleMessage("Salva"), "moderation__update_category_title" : MessageLookupByLibrary.simpleMessage("Aggiorna categoria"), @@ -500,14 +524,14 @@ class MessageLookup extends MessageLookupByLibrary { "moderation__you_have_reported_community_text" : MessageLookupByLibrary.simpleMessage("Hai segnalato questa comunità"), "moderation__you_have_reported_post_text" : MessageLookupByLibrary.simpleMessage("Hai segnalato questo post"), "notifications__accepted_connection_request_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] ha accettato la tua richiesta di connessione."), - "notifications__comment_comment_notification_tile_user_also_commented" : m20, - "notifications__comment_comment_notification_tile_user_commented" : m21, + "notifications__comment_comment_notification_tile_user_also_commented" : m21, + "notifications__comment_comment_notification_tile_user_commented" : m22, "notifications__comment_desc" : MessageLookupByLibrary.simpleMessage("Ricevi una notifica quando qualcuno commenta un tuo post o un post che hai commentato."), "notifications__comment_reaction_desc" : MessageLookupByLibrary.simpleMessage("Ricevi una notifica quando qualcuno reagisce a uno dei tuoi commenti."), "notifications__comment_reaction_title" : MessageLookupByLibrary.simpleMessage("Pubblica reaction al commento"), "notifications__comment_reply_desc" : MessageLookupByLibrary.simpleMessage("Ricevi una notifica quando qualcuno risponde a un tuo post o a un post a cui hai risposto."), - "notifications__comment_reply_notification_tile_user_also_replied" : m22, - "notifications__comment_reply_notification_tile_user_replied" : m23, + "notifications__comment_reply_notification_tile_user_also_replied" : m23, + "notifications__comment_reply_notification_tile_user_replied" : m24, "notifications__comment_reply_title" : MessageLookupByLibrary.simpleMessage("Risposta al commento"), "notifications__comment_title" : MessageLookupByLibrary.simpleMessage("Pubblica commento"), "notifications__comment_user_mention_desc" : MessageLookupByLibrary.simpleMessage("Ricevi una notifica quando qualcuno ti cita su uno dei suoi commenti"), @@ -522,7 +546,7 @@ class MessageLookup extends MessageLookupByLibrary { "notifications__following_you_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] ha iniziato a seguirti."), "notifications__general_desc" : MessageLookupByLibrary.simpleMessage("Ricevi notifiche quando succede qualcosa"), "notifications__general_title" : MessageLookupByLibrary.simpleMessage("Notifiche"), - "notifications__mentioned_in_post_comment_tile" : m24, + "notifications__mentioned_in_post_comment_tile" : m25, "notifications__mentioned_in_post_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] ti ha menzionato in un post."), "notifications__mute_post_turn_off_post_comment_notifications" : MessageLookupByLibrary.simpleMessage("Disattiva notifiche ai commenti dei post"), "notifications__mute_post_turn_off_post_notifications" : MessageLookupByLibrary.simpleMessage("Disattiva notifiche ai post"), @@ -534,8 +558,10 @@ class MessageLookup extends MessageLookupByLibrary { "notifications__post_user_mention_title" : MessageLookupByLibrary.simpleMessage("Menzione in un post"), "notifications__reacted_to_post_comment_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] ha reagito al tuo commento."), "notifications__reacted_to_post_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] ha reagito al tuo post."), - "notifications__settings_title" : MessageLookupByLibrary.simpleMessage("Impostazioni Notifiche"), - "notifications__user_community_invite_tile" : m25, + "notifications__settings_title" : MessageLookupByLibrary.simpleMessage("Impostazioni notifiche"), + "notifications__tab_general" : MessageLookupByLibrary.simpleMessage("Generali"), + "notifications__tab_requests" : MessageLookupByLibrary.simpleMessage("Richieste"), + "notifications__user_community_invite_tile" : m26, "post__action_comment" : MessageLookupByLibrary.simpleMessage("Commenta"), "post__action_react" : MessageLookupByLibrary.simpleMessage("Reagisci"), "post__action_reply" : MessageLookupByLibrary.simpleMessage("Rispondi"), @@ -547,8 +573,9 @@ class MessageLookup extends MessageLookupByLibrary { "post__actions_report_text" : MessageLookupByLibrary.simpleMessage("Segnala"), "post__actions_reported_text" : MessageLookupByLibrary.simpleMessage("Segnalato"), "post__actions_show_more_text" : MessageLookupByLibrary.simpleMessage("Mostra altro"), + "post__close_create_post_label" : MessageLookupByLibrary.simpleMessage("Chiudi creazione nuovo post"), "post__close_post" : MessageLookupByLibrary.simpleMessage("Chiudi post"), - "post__comment_maxlength_error" : m26, + "post__comment_maxlength_error" : m27, "post__comment_reply_expanded_post" : MessageLookupByLibrary.simpleMessage("Post"), "post__comment_reply_expanded_reply_comment" : MessageLookupByLibrary.simpleMessage("Rispondi al commento"), "post__comment_reply_expanded_reply_hint_text" : MessageLookupByLibrary.simpleMessage("La tua risposta..."), @@ -585,10 +612,13 @@ class MessageLookup extends MessageLookupByLibrary { "post__comments_page_tap_to_retry" : MessageLookupByLibrary.simpleMessage("Tocca per riprovare a caricare i commenti."), "post__comments_page_tap_to_retry_replies" : MessageLookupByLibrary.simpleMessage("Tocca per riprovare a caricare le risposte."), "post__comments_page_title" : MessageLookupByLibrary.simpleMessage("Commenti del post"), - "post__comments_view_all_comments" : m27, + "post__comments_view_all_comments" : m28, "post__create_new" : MessageLookupByLibrary.simpleMessage("Nuovo post"), + "post__create_new_community_post_label" : MessageLookupByLibrary.simpleMessage("Crea un nuovo post comunità"), + "post__create_new_post_label" : MessageLookupByLibrary.simpleMessage("Crea nuovo post"), "post__create_next" : MessageLookupByLibrary.simpleMessage("Successivo"), "post__create_photo" : MessageLookupByLibrary.simpleMessage("Foto"), + "post__create_video" : MessageLookupByLibrary.simpleMessage("Video"), "post__disable_post_comments" : MessageLookupByLibrary.simpleMessage("Disabilita i commenti per il post"), "post__edit_save" : MessageLookupByLibrary.simpleMessage("Salva"), "post__edit_title" : MessageLookupByLibrary.simpleMessage("Modifica post"), @@ -597,7 +627,7 @@ class MessageLookup extends MessageLookupByLibrary { "post__is_closed" : MessageLookupByLibrary.simpleMessage("Post chiuso"), "post__my_circles" : MessageLookupByLibrary.simpleMessage("Cerchie"), "post__my_circles_desc" : MessageLookupByLibrary.simpleMessage("Condividi il post con una o più delle tue cerchie."), - "post__no_circles_for" : m28, + "post__no_circles_for" : m29, "post__open_post" : MessageLookupByLibrary.simpleMessage("Apri post"), "post__post_closed" : MessageLookupByLibrary.simpleMessage("Post chiuso "), "post__post_opened" : MessageLookupByLibrary.simpleMessage("Post aperto"), @@ -607,6 +637,7 @@ class MessageLookup extends MessageLookupByLibrary { "post__profile_counts_following" : MessageLookupByLibrary.simpleMessage(" Seguendo"), "post__profile_counts_post" : MessageLookupByLibrary.simpleMessage(" Pubblica"), "post__profile_counts_posts" : MessageLookupByLibrary.simpleMessage(" Post"), + "post__profile_retry_loading_posts" : MessageLookupByLibrary.simpleMessage("Tocca per riprovare"), "post__reaction_list_tap_retry" : MessageLookupByLibrary.simpleMessage("Tocca per riprovare a caricare le reaction."), "post__search_circles" : MessageLookupByLibrary.simpleMessage("Trova cerchie..."), "post__share" : MessageLookupByLibrary.simpleMessage("Condividi"), @@ -637,17 +668,36 @@ class MessageLookup extends MessageLookupByLibrary { "post__timeline_posts_failed_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Riprova tra qualche secondo"), "post__timeline_posts_failed_drhoo_title" : MessageLookupByLibrary.simpleMessage("Impossibile caricare la tua timeline."), "post__timeline_posts_no_more_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Segui gli altri utenti o unisciti a una comunità per iniziare!"), - "post__timeline_posts_no_more_drhoo_title" : MessageLookupByLibrary.simpleMessage("La tua timeline è vuota."), "post__timeline_posts_refresh_posts" : MessageLookupByLibrary.simpleMessage("Aggiorna i post"), - "post__timeline_posts_refreshing_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Caricamento timeline."), "post__timeline_posts_refreshing_drhoo_title" : MessageLookupByLibrary.simpleMessage("Tieni duro!"), "post__trending_posts_no_trending_posts" : MessageLookupByLibrary.simpleMessage("Non ci sono post in tendenza. Prova ad aggiornare fra qualche secondo."), "post__trending_posts_refresh" : MessageLookupByLibrary.simpleMessage("Aggiorna"), "post__trending_posts_title" : MessageLookupByLibrary.simpleMessage("Post in tendenza"), - "post__user_has_not_shared_anything" : m29, - "post__usernames_circles" : m30, + "post__user_has_not_shared_anything" : m30, + "post__usernames_circles" : m31, "post__world_circle_name" : MessageLookupByLibrary.simpleMessage("Tutto il mondo"), "post__you_shared_with" : MessageLookupByLibrary.simpleMessage("Hai condiviso con"), + "post_body_link_preview__empty" : MessageLookupByLibrary.simpleMessage("Non può essere creata l’anteprima per questo link"), + "post_body_link_preview__error_with_description" : m32, + "post_body_media__unsupported" : MessageLookupByLibrary.simpleMessage("Tipo di file multimediale non supportato"), + "post_uploader__cancelled" : MessageLookupByLibrary.simpleMessage("Annullato!"), + "post_uploader__cancelling" : MessageLookupByLibrary.simpleMessage("Annullamento"), + "post_uploader__compressing_media" : MessageLookupByLibrary.simpleMessage("Comprimendo il file media..."), + "post_uploader__creating_post" : MessageLookupByLibrary.simpleMessage("Creazione post..."), + "post_uploader__generic_upload_failed" : MessageLookupByLibrary.simpleMessage("Caricamento fallito"), + "post_uploader__processing" : MessageLookupByLibrary.simpleMessage("Elaborazione post..."), + "post_uploader__publishing" : MessageLookupByLibrary.simpleMessage("Pubblicazione post..."), + "post_uploader__success" : MessageLookupByLibrary.simpleMessage("Successo!"), + "post_uploader__uploading_media" : MessageLookupByLibrary.simpleMessage("Caricamento del file media..."), + "posts_stream__all_loaded" : MessageLookupByLibrary.simpleMessage("🎉 Tutti i post caricati"), + "posts_stream__empty_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Prova ad aggiornare tra un paio di secondi."), + "posts_stream__empty_drhoo_title" : MessageLookupByLibrary.simpleMessage("Questo stream è vuoto."), + "posts_stream__failed_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Riprova tra un paio di secondi"), + "posts_stream__failed_drhoo_title" : MessageLookupByLibrary.simpleMessage("Impossibile caricare lo stream."), + "posts_stream__refreshing_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Aggiornamento dello stream."), + "posts_stream__refreshing_drhoo_title" : MessageLookupByLibrary.simpleMessage("Ancora un attimo!"), + "posts_stream__status_tile_empty" : MessageLookupByLibrary.simpleMessage("Nessun post trovato"), + "posts_stream__status_tile_no_more_to_load" : MessageLookupByLibrary.simpleMessage("🎉 Tutti i post caricati"), "user__add_account_done" : MessageLookupByLibrary.simpleMessage("Fatto"), "user__add_account_save" : MessageLookupByLibrary.simpleMessage("Salva"), "user__add_account_success" : MessageLookupByLibrary.simpleMessage("Operazione riuscita"), @@ -663,8 +713,8 @@ class MessageLookup extends MessageLookupByLibrary { "user__change_email_success_info" : MessageLookupByLibrary.simpleMessage("Abbiamo inviato un link di conferma al tuo nuovo indirizzo email, clicca su di esso per verificare la tua nuova email"), "user__change_email_title" : MessageLookupByLibrary.simpleMessage("Cambia Email"), "user__circle_name_empty_error" : MessageLookupByLibrary.simpleMessage("Il nome della cerchia non può essere vuoto."), - "user__circle_name_range_error" : m31, - "user__circle_peoples_count" : m32, + "user__circle_name_range_error" : m33, + "user__circle_peoples_count" : m34, "user__clear_app_preferences_cleared_successfully" : MessageLookupByLibrary.simpleMessage("Preferenze cancellate con successo"), "user__clear_app_preferences_desc" : MessageLookupByLibrary.simpleMessage("Cancella le preferenze dell\'applicazione. Per ora riguarda solo l\'ordine preferito dei commenti."), "user__clear_app_preferences_error" : MessageLookupByLibrary.simpleMessage("Impossibile cancellare le preferenze"), @@ -676,13 +726,13 @@ class MessageLookup extends MessageLookupByLibrary { "user__confirm_block_user_blocked" : MessageLookupByLibrary.simpleMessage("Utente bloccato."), "user__confirm_block_user_info" : MessageLookupByLibrary.simpleMessage("Non vedrete i rispettivi post né potrete interagire in alcun modo."), "user__confirm_block_user_no" : MessageLookupByLibrary.simpleMessage("No"), - "user__confirm_block_user_question" : m33, + "user__confirm_block_user_question" : m35, "user__confirm_block_user_title" : MessageLookupByLibrary.simpleMessage("Conferma"), "user__confirm_block_user_yes" : MessageLookupByLibrary.simpleMessage("Sì"), "user__confirm_connection_add_connection" : MessageLookupByLibrary.simpleMessage("Aggiungi connessione alla cerchia"), "user__confirm_connection_confirm_text" : MessageLookupByLibrary.simpleMessage("Conferma"), "user__confirm_connection_connection_confirmed" : MessageLookupByLibrary.simpleMessage("Connessione confermata"), - "user__confirm_connection_with" : m34, + "user__confirm_connection_with" : m36, "user__confirm_guidelines_reject_chat_community" : MessageLookupByLibrary.simpleMessage("Chatta con la comunità."), "user__confirm_guidelines_reject_chat_immediately" : MessageLookupByLibrary.simpleMessage("Avvia una chat immediatamente."), "user__confirm_guidelines_reject_chat_with_team" : MessageLookupByLibrary.simpleMessage("Chatta con il team."), @@ -692,7 +742,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__confirm_guidelines_reject_join_slack" : MessageLookupByLibrary.simpleMessage("Entra nel canale Slack."), "user__confirm_guidelines_reject_title" : MessageLookupByLibrary.simpleMessage("Rifiuto Linee guida"), "user__connect_to_user_add_connection" : MessageLookupByLibrary.simpleMessage("Aggiungi connessione alla cerchia"), - "user__connect_to_user_connect_with_username" : m35, + "user__connect_to_user_connect_with_username" : m37, "user__connect_to_user_done" : MessageLookupByLibrary.simpleMessage("Fatto"), "user__connect_to_user_request_sent" : MessageLookupByLibrary.simpleMessage("Richiesta di connessione inviata"), "user__connection_circle_edit" : MessageLookupByLibrary.simpleMessage("Modifica"), @@ -710,28 +760,29 @@ class MessageLookup extends MessageLookupByLibrary { "user__delete_account_current_pwd_hint" : MessageLookupByLibrary.simpleMessage("Inserisci la password attuale"), "user__delete_account_next" : MessageLookupByLibrary.simpleMessage("Prossimo"), "user__delete_account_title" : MessageLookupByLibrary.simpleMessage("Elimina account"), - "user__disconnect_from_user" : m36, + "user__disconnect_from_user" : m38, "user__disconnect_from_user_success" : MessageLookupByLibrary.simpleMessage("Disconnesso con successo"), "user__edit_profile_bio" : MessageLookupByLibrary.simpleMessage("Biografia"), + "user__edit_profile_community_posts" : MessageLookupByLibrary.simpleMessage("Post della comunità"), "user__edit_profile_delete" : MessageLookupByLibrary.simpleMessage("Elimina"), "user__edit_profile_followers_count" : MessageLookupByLibrary.simpleMessage("Numero di followers"), "user__edit_profile_location" : MessageLookupByLibrary.simpleMessage("Luogo"), "user__edit_profile_name" : MessageLookupByLibrary.simpleMessage("Nome"), "user__edit_profile_pick_image" : MessageLookupByLibrary.simpleMessage("Scegli immagine"), - "user__edit_profile_pick_image_error_too_large" : m37, + "user__edit_profile_pick_image_error_too_large" : m39, "user__edit_profile_save_text" : MessageLookupByLibrary.simpleMessage("Salva"), "user__edit_profile_title" : MessageLookupByLibrary.simpleMessage("Modifica profilo"), "user__edit_profile_url" : MessageLookupByLibrary.simpleMessage("Url"), - "user__edit_profile_user_name_taken" : m38, + "user__edit_profile_user_name_taken" : m40, "user__edit_profile_username" : MessageLookupByLibrary.simpleMessage("Nome utente"), "user__email_verification_error" : MessageLookupByLibrary.simpleMessage("Oops! Il tuo token non è valido o scaduto, per favore riprova"), "user__email_verification_successful" : MessageLookupByLibrary.simpleMessage("Fantastico! La tua email è ora verificata"), "user__emoji_field_none_selected" : MessageLookupByLibrary.simpleMessage("Nessun emoji selezionato"), - "user__emoji_search_none_found" : m39, + "user__emoji_search_none_found" : m41, "user__follow_button_follow_text" : MessageLookupByLibrary.simpleMessage("Segui"), "user__follow_button_unfollow_text" : MessageLookupByLibrary.simpleMessage("Smetti di seguire"), "user__follow_lists_no_list_found" : MessageLookupByLibrary.simpleMessage("Nessuna lista trovata."), - "user__follow_lists_no_list_found_for" : m40, + "user__follow_lists_no_list_found_for" : m42, "user__follow_lists_search_for" : MessageLookupByLibrary.simpleMessage("Cerca una lista..."), "user__follow_lists_title" : MessageLookupByLibrary.simpleMessage("Liste"), "user__follower_plural" : MessageLookupByLibrary.simpleMessage("follower"), @@ -739,18 +790,18 @@ class MessageLookup extends MessageLookupByLibrary { "user__followers_title" : MessageLookupByLibrary.simpleMessage("Follower"), "user__following_resource_name" : MessageLookupByLibrary.simpleMessage("utenti seguiti"), "user__following_text" : MessageLookupByLibrary.simpleMessage("Seguiti"), - "user__follows_list_accounts_count" : m41, + "user__follows_list_accounts_count" : m43, "user__follows_list_edit" : MessageLookupByLibrary.simpleMessage("Modifica"), "user__follows_list_header_title" : MessageLookupByLibrary.simpleMessage("Utenti"), "user__follows_lists_account" : MessageLookupByLibrary.simpleMessage("1 Account"), - "user__follows_lists_accounts" : m42, - "user__groups_see_all" : m43, + "user__follows_lists_accounts" : m44, + "user__groups_see_all" : m45, "user__guidelines_accept" : MessageLookupByLibrary.simpleMessage("Accetta"), "user__guidelines_desc" : MessageLookupByLibrary.simpleMessage("Per favore prenditi un momento per leggere e accettare le nostre linee guida."), "user__guidelines_reject" : MessageLookupByLibrary.simpleMessage("Rifiuta"), "user__invite" : MessageLookupByLibrary.simpleMessage("Invita"), "user__invite_member" : MessageLookupByLibrary.simpleMessage("Membro"), - "user__invite_someone_message" : m44, + "user__invite_someone_message" : m46, "user__invites_accepted_group_item_name" : MessageLookupByLibrary.simpleMessage("invito accettato"), "user__invites_accepted_group_name" : MessageLookupByLibrary.simpleMessage("inviti accettati"), "user__invites_accepted_title" : MessageLookupByLibrary.simpleMessage("Accettato"), @@ -769,11 +820,11 @@ class MessageLookup extends MessageLookupByLibrary { "user__invites_email_text" : MessageLookupByLibrary.simpleMessage("Email"), "user__invites_invite_a_friend" : MessageLookupByLibrary.simpleMessage("Invita un amico"), "user__invites_invite_text" : MessageLookupByLibrary.simpleMessage("Invita"), - "user__invites_joined_with" : m45, + "user__invites_joined_with" : m47, "user__invites_none_left" : MessageLookupByLibrary.simpleMessage("Non hai inviti disponibili."), "user__invites_none_used" : MessageLookupByLibrary.simpleMessage("Sembra che tu non abbia usato nessun invito."), "user__invites_pending" : MessageLookupByLibrary.simpleMessage("In attesa"), - "user__invites_pending_email" : m46, + "user__invites_pending_email" : m48, "user__invites_pending_group_item_name" : MessageLookupByLibrary.simpleMessage("invito in attesa"), "user__invites_pending_group_name" : MessageLookupByLibrary.simpleMessage("inviti in attesa"), "user__invites_refresh" : MessageLookupByLibrary.simpleMessage("Aggiorna"), @@ -786,14 +837,14 @@ class MessageLookup extends MessageLookupByLibrary { "user__language_settings_saved_success" : MessageLookupByLibrary.simpleMessage("Lingua modificata con successo"), "user__language_settings_title" : MessageLookupByLibrary.simpleMessage("Impostazioni lingua"), "user__list_name_empty_error" : MessageLookupByLibrary.simpleMessage("Il nome della lista non può essere vuoto."), - "user__list_name_range_error" : m47, + "user__list_name_range_error" : m49, "user__million_postfix" : MessageLookupByLibrary.simpleMessage("milioni"), "user__profile_action_cancel_connection" : MessageLookupByLibrary.simpleMessage("Annulla richiesta di connessione"), "user__profile_action_deny_connection" : MessageLookupByLibrary.simpleMessage("Rifiuta richiesta di connessione"), "user__profile_action_user_blocked" : MessageLookupByLibrary.simpleMessage("Utente bloccato"), "user__profile_action_user_unblocked" : MessageLookupByLibrary.simpleMessage("Utente sbloccato"), - "user__profile_bio_length_error" : m48, - "user__profile_location_length_error" : m49, + "user__profile_bio_length_error" : m50, + "user__profile_location_length_error" : m51, "user__profile_url_invalid_error" : MessageLookupByLibrary.simpleMessage("Per favore inserisci un url valido."), "user__remove_account_from_list" : MessageLookupByLibrary.simpleMessage("Rimuovi account dalle liste"), "user__remove_account_from_list_success" : MessageLookupByLibrary.simpleMessage("Operazione riuscita"), @@ -803,7 +854,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__save_connection_circle_edit" : MessageLookupByLibrary.simpleMessage("Modifica cerchia"), "user__save_connection_circle_hint" : MessageLookupByLibrary.simpleMessage("es. Amici, Famiglia, Lavoro."), "user__save_connection_circle_name" : MessageLookupByLibrary.simpleMessage("Nome"), - "user__save_connection_circle_name_taken" : m50, + "user__save_connection_circle_name_taken" : m52, "user__save_connection_circle_save" : MessageLookupByLibrary.simpleMessage("Salva"), "user__save_connection_circle_users" : MessageLookupByLibrary.simpleMessage("Utenti"), "user__save_follows_list_create" : MessageLookupByLibrary.simpleMessage("Crea lista"), @@ -812,7 +863,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__save_follows_list_emoji_required_error" : MessageLookupByLibrary.simpleMessage("L\'Emoji è richiesto"), "user__save_follows_list_hint_text" : MessageLookupByLibrary.simpleMessage("es. Viaggi, Fotografia"), "user__save_follows_list_name" : MessageLookupByLibrary.simpleMessage("Nome"), - "user__save_follows_list_name_taken" : m51, + "user__save_follows_list_name_taken" : m53, "user__save_follows_list_save" : MessageLookupByLibrary.simpleMessage("Salva"), "user__save_follows_list_users" : MessageLookupByLibrary.simpleMessage("Utenti"), "user__thousand_postfix" : MessageLookupByLibrary.simpleMessage("mila"), @@ -822,7 +873,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__timeline_filters_circles" : MessageLookupByLibrary.simpleMessage("Cerchie"), "user__timeline_filters_clear_all" : MessageLookupByLibrary.simpleMessage("Svuota tutto"), "user__timeline_filters_lists" : MessageLookupByLibrary.simpleMessage("Liste"), - "user__timeline_filters_no_match" : m52, + "user__timeline_filters_no_match" : m54, "user__timeline_filters_search_desc" : MessageLookupByLibrary.simpleMessage("Cerca cerchie e liste..."), "user__timeline_filters_title" : MessageLookupByLibrary.simpleMessage("Filtri timeline"), "user__translate_see_translation" : MessageLookupByLibrary.simpleMessage("Mostra traduzione"), @@ -834,15 +885,17 @@ class MessageLookup extends MessageLookupByLibrary { "user__update_connection_circles_title" : MessageLookupByLibrary.simpleMessage("Aggiorna cerchie connessioni"), "user_search__cancel" : MessageLookupByLibrary.simpleMessage("Annulla"), "user_search__communities" : MessageLookupByLibrary.simpleMessage("Comunità"), - "user_search__list_no_results_found" : m53, + "user_search__list_no_results_found" : m55, "user_search__list_refresh_text" : MessageLookupByLibrary.simpleMessage("Aggiorna"), "user_search__list_retry" : MessageLookupByLibrary.simpleMessage("Tocca per riprovare."), - "user_search__list_search_text" : m54, - "user_search__no_communities_for" : m55, - "user_search__no_results_for" : m56, - "user_search__no_users_for" : m57, + "user_search__list_search_text" : m56, + "user_search__no_communities_for" : m57, + "user_search__no_results_for" : m58, + "user_search__no_users_for" : m59, "user_search__search_text" : MessageLookupByLibrary.simpleMessage("Cerca..."), - "user_search__searching_for" : m58, - "user_search__users" : MessageLookupByLibrary.simpleMessage("Utenti") + "user_search__searching_for" : m60, + "user_search__users" : MessageLookupByLibrary.simpleMessage("Utenti"), + "video_picker__from_camera" : MessageLookupByLibrary.simpleMessage("Dalla fotocamera"), + "video_picker__from_gallery" : MessageLookupByLibrary.simpleMessage("Dalla galleria") }; } diff --git a/lib/locale/messages_nl.dart b/lib/locale/messages_nl.dart index e69de29bb..95e224224 100644 --- a/lib/locale/messages_nl.dart +++ b/lib/locale/messages_nl.dart @@ -0,0 +1,883 @@ +// DO NOT EDIT. This is code generated via package:intl/generate_localized.dart +// This is a library that provides messages for a nl locale. All the +// messages from the main program should be duplicated here with the same +// function name. + +// Ignore issues from commonly used lints in this file. +// ignore_for_file:unnecessary_brace_in_string_interps, unnecessary_new +// ignore_for_file:prefer_single_quotes,comment_references, directives_ordering +// ignore_for_file:annotate_overrides,prefer_generic_function_type_aliases +// ignore_for_file:unused_import, file_names + +import 'package:intl/intl.dart'; +import 'package:intl/message_lookup_by_library.dart'; + +final messages = new MessageLookup(); + +typedef String MessageIfAbsent(String messageStr, List args); + +class MessageLookup extends MessageLookupByLibrary { + String get localeName => 'nl'; + + static m0(minLength, maxLength) => "(${minLength}-${maxLength} tekens)"; + + static m1(minLength, maxLength) => "Omschrijving moet tussen ${minLength} en ${maxLength} tekens bevatten."; + + static m2(minLength, maxLength) => "Naam moet tussen ${minLength} en ${maxLength} tekens bevatten."; + + static m3(minLength, maxLength) => "Wachtwoord moet tussen ${minLength} en ${maxLength} tekens bevatten."; + + static m4(maxLength) => "Een gebruikersnaam mag niet langer zijn dan ${maxLength} tekens."; + + static m5(maxLength) => "Bijnamen van leden mogen niet langer zijn dan ${maxLength} tekens."; + + static m6(username) => "Weet je zeker dat je @${username} wil toevoegen als beheerder van de community?"; + + static m7(username) => "Weet je zeker dat je @${username} wil blokkeren?"; + + static m8(maxLength) => "Omschrijving mag niet langer zijn dan ${maxLength} tekens."; + + static m9(username) => "Weet je zeker dat je @${username} wilt toevoegen als moderator van de community?"; + + static m10(maxLength) => "Een gebruikersnaam mag niet langer zijn dan ${maxLength} tekens."; + + static m11(min) => "Je dient tenminste ${min} categorieën te selecteren."; + + static m12(min) => "Je dient tenminste ${min} categorie te selecteren."; + + static m13(max) => "Kies ${max} categorieën"; + + static m14(maxLength) => "Regels mogen niet langer zijn dan ${maxLength} tekens."; + + static m15(takenName) => "Community naam ‘${takenName}’ is bezet"; + + static m16(maxLength) => "De titel mag niet langer zijn dan ${maxLength} tekens."; + + static m17(categoryName) => "Trending in ${categoryName}"; + + static m18(currentUserLanguage) => "Taal (${currentUserLanguage})"; + + static m20(resourceCount, resourceName) => "Zie alle ${resourceCount} ${resourceName}"; + + static m21(postCommentText) => "[name] [username] heeft ook commentaar gegeven: ${postCommentText}"; + + static m22(postCommentText) => "[name] [username] had commentaar op jouw bericht: ${postCommentText}"; + + static m23(postCommentText) => "[name] [username] heeft ook geantwoord: ${postCommentText}"; + + static m24(postCommentText) => "[name] [username] antwoordde: ${postCommentText}"; + + static m25(postCommentText) => "[name] [username] heeft je in een commentaar genoemd: ${postCommentText}"; + + static m26(communityName) => "[name] [username] heeft je uitgenodigd om deel te nemen aan de community /c/${communityName}."; + + static m27(maxLength) => "Een reactie mag niet langer zijn dan ${maxLength} tekens."; + + static m28(commentsCount) => "Bekijk alle ${commentsCount} commentaren"; + + static m29(circlesSearchQuery) => "Geen cirkels gevonden die overeenkomen met \'${circlesSearchQuery}\'."; + + static m30(name) => "${name} heeft nog niets gedeeld."; + + static m31(postCreatorUsername) => "@${postCreatorUsername}\'s kringen"; + + static m33(maxLength) => "De naam van de cirkel mag niet langer zijn dan ${maxLength} tekens."; + + static m34(prettyUsersCount) => "${prettyUsersCount} mensen"; + + static m35(username) => "Weet je zeker dat je @${username} wil blokkeren?"; + + static m36(userName) => "Bevestig connectie met ${userName}"; + + static m37(userName) => "Verbind met ${userName}"; + + static m38(userName) => "Verbinding verbreken met ${userName}"; + + static m39(limit) => "Afbeelding is te groot (limiet: ${limit} MB)"; + + static m40(username) => "De gebruikersnaam @${username} is al bezet"; + + static m41(searchQuery) => "Geen emoji gevonden die overeenkomen met \'${searchQuery}\'."; + + static m42(searchQuery) => "Geen lijst gevonden voor \'${searchQuery}\'"; + + static m43(prettyUsersCount) => "${prettyUsersCount} accounts"; + + static m44(prettyUsersCount) => "${prettyUsersCount} Accounts"; + + static m45(groupName) => "Zie alle ${groupName}"; + + static m46(iosLink, androidLink, inviteLink) => "Hi, ik wil je graag uitnodigen voor Okuna. Download eerst de app in iTunes (${iosLink}) of de Play store (${androidLink}). Plak vervolgens deze gepersonaliseerde link met de uitnodiginging het formulier \'Aanmelden\' in de Okuna App: ${inviteLink}"; + + static m47(username) => "Doet mee met gebruikersnaam @${username}"; + + static m48(email) => "In afwachting, uitnodigings-mail verzonden naar ${email}"; + + static m49(maxLength) => "De naam van de lijst mag niet langer zijn dan ${maxLength} tekens."; + + static m50(maxLength) => "De biografie kan niet langer zijn dan ${maxLength} tekens."; + + static m51(maxLength) => "De locatie mag niet langer zijn dan ${maxLength} tekens."; + + static m52(takenConnectionsCircleName) => "De naam van de cirkel ‘${takenConnectionsCircleName}’ is al bezet"; + + static m53(listName) => "De naam van de lijst ‘${listName}’ is al bezet"; + + static m54(searchQuery) => "Geen resultaat voor \'${searchQuery}\'."; + + static m55(resourcePluralName) => "${resourcePluralName} niet gevonden."; + + static m56(resourcePluralName) => "Zoek ${resourcePluralName} ..."; + + static m57(searchQuery) => "Geen communities gevonden voor \'${searchQuery}\'."; + + static m58(searchQuery) => "Geen resultaten voor \'${searchQuery}\' gevonden."; + + static m59(searchQuery) => "Geen gebruikers gevonden voor \'${searchQuery}\'."; + + static m60(searchQuery) => "Zoeken naar \'${searchQuery}\'"; + + final messages = _notInlinedMessages(_notInlinedMessages); + static _notInlinedMessages(_) => { + "application_settings__comment_sort_newest_first" : MessageLookupByLibrary.simpleMessage("Nieuwste eerst"), + "application_settings__comment_sort_oldest_first" : MessageLookupByLibrary.simpleMessage("Oudste eerst"), + "application_settings__tap_to_change" : MessageLookupByLibrary.simpleMessage("(Tap to change)"), + "application_settings__videos" : MessageLookupByLibrary.simpleMessage("Videos"), + "application_settings__videos_autoplay" : MessageLookupByLibrary.simpleMessage("Autoplay"), + "application_settings__videos_autoplay_always" : MessageLookupByLibrary.simpleMessage("Altijd"), + "application_settings__videos_autoplay_never" : MessageLookupByLibrary.simpleMessage("Nooit"), + "application_settings__videos_autoplay_wifi_only" : MessageLookupByLibrary.simpleMessage("Alleen via Wifi"), + "application_settings__videos_sound" : MessageLookupByLibrary.simpleMessage("Sound"), + "application_settings__videos_sound_disabled" : MessageLookupByLibrary.simpleMessage("Uitgeschakeld"), + "application_settings__videos_sound_enabled" : MessageLookupByLibrary.simpleMessage("Ingeschakeld"), + "auth__change_password_current_pwd" : MessageLookupByLibrary.simpleMessage("Huidig wachtwoord"), + "auth__change_password_current_pwd_hint" : MessageLookupByLibrary.simpleMessage("Voer je huidige wachtwoord in"), + "auth__change_password_current_pwd_incorrect" : MessageLookupByLibrary.simpleMessage("Het ingevoerde wachtwoord is onjuist"), + "auth__change_password_new_pwd" : MessageLookupByLibrary.simpleMessage("Nieuw wachtwoord"), + "auth__change_password_new_pwd_error" : MessageLookupByLibrary.simpleMessage("Zorg dat het wachtwoord 10 tot 100 tekens lang is"), + "auth__change_password_new_pwd_hint" : MessageLookupByLibrary.simpleMessage("Voer je nieuwe wachtwoord in"), + "auth__change_password_save_success" : MessageLookupByLibrary.simpleMessage("Alles goed! Je wachtwoord is bijgewerkt"), + "auth__change_password_save_text" : MessageLookupByLibrary.simpleMessage("Opslaan"), + "auth__change_password_title" : MessageLookupByLibrary.simpleMessage("Wachtwoord wijzigen"), + "auth__create_acc__almost_there" : MessageLookupByLibrary.simpleMessage("Bijna klaar..."), + "auth__create_acc__are_you_legal_age" : MessageLookupByLibrary.simpleMessage("Ben je ouder dan 16 jaar?"), + "auth__create_acc__avatar_choose_camera" : MessageLookupByLibrary.simpleMessage("Neem een foto"), + "auth__create_acc__avatar_choose_gallery" : MessageLookupByLibrary.simpleMessage("Gebruik een bestaande foto"), + "auth__create_acc__avatar_remove_photo" : MessageLookupByLibrary.simpleMessage("Foto verwijderen"), + "auth__create_acc__avatar_tap_to_change" : MessageLookupByLibrary.simpleMessage("Tik om te wijzigen"), + "auth__create_acc__can_change_username" : MessageLookupByLibrary.simpleMessage("Indien gewenst kun je dit altijd via je profielpagina wijzigen."), + "auth__create_acc__congratulations" : MessageLookupByLibrary.simpleMessage("Gefeliciteerd!"), + "auth__create_acc__create_account" : MessageLookupByLibrary.simpleMessage("Account aanmaken"), + "auth__create_acc__done" : MessageLookupByLibrary.simpleMessage("Account aanmaken"), + "auth__create_acc__done_continue" : MessageLookupByLibrary.simpleMessage("Inloggen"), + "auth__create_acc__done_created" : MessageLookupByLibrary.simpleMessage("Je account is aangemaakt met gebruikersnaam "), + "auth__create_acc__done_description" : MessageLookupByLibrary.simpleMessage("Je account is aangemaakt."), + "auth__create_acc__done_subtext" : MessageLookupByLibrary.simpleMessage("Je kunt dit wijzigen in je profielinstellingen."), + "auth__create_acc__done_title" : MessageLookupByLibrary.simpleMessage("Hoera!"), + "auth__create_acc__email_empty_error" : MessageLookupByLibrary.simpleMessage("😱 Je e-mailadres kan niet leeg zijn"), + "auth__create_acc__email_invalid_error" : MessageLookupByLibrary.simpleMessage("😅 Voer een geldig e-mailadres in."), + "auth__create_acc__email_placeholder" : MessageLookupByLibrary.simpleMessage("v.vangogh@kwasten.nl"), + "auth__create_acc__email_server_error" : MessageLookupByLibrary.simpleMessage("😭 We ervaren problemen met onze servers. Probeer het over een paar minuten alsjeblieft opnieuw."), + "auth__create_acc__email_taken_error" : MessageLookupByLibrary.simpleMessage("🤔 Er bestaat al een account voor dat e-mailadres."), + "auth__create_acc__lets_get_started" : MessageLookupByLibrary.simpleMessage("Laten we beginnen"), + "auth__create_acc__link_empty_error" : MessageLookupByLibrary.simpleMessage("Link mag niet leeg zijn."), + "auth__create_acc__link_invalid_error" : MessageLookupByLibrary.simpleMessage("Deze link lijkt ongeldig."), + "auth__create_acc__name_characters_error" : MessageLookupByLibrary.simpleMessage("😅 Een naam kan alleen alfanumerieke karakters bevatten (voor nu)."), + "auth__create_acc__name_empty_error" : MessageLookupByLibrary.simpleMessage("😱 Je naam kan niet leeg zijn."), + "auth__create_acc__name_length_error" : MessageLookupByLibrary.simpleMessage("😱 Je naam kan niet langer zijn dan 50 karakters. (Als dat zo is, dan spijt dat ons zeer.)"), + "auth__create_acc__name_placeholder" : MessageLookupByLibrary.simpleMessage("James Bond"), + "auth__create_acc__next" : MessageLookupByLibrary.simpleMessage("Volgende"), + "auth__create_acc__one_last_thing" : MessageLookupByLibrary.simpleMessage("Nog één ding..."), + "auth__create_acc__password_empty_error" : MessageLookupByLibrary.simpleMessage("😱 Je wachtwoord kan niet leeg zijn"), + "auth__create_acc__password_length_error" : MessageLookupByLibrary.simpleMessage("😅 Een wachtwoord moet tussen 8 en 64 karakters zijn."), + "auth__create_acc__paste_link" : MessageLookupByLibrary.simpleMessage("Plak uw registratie link hieronder"), + "auth__create_acc__paste_link_help_text" : MessageLookupByLibrary.simpleMessage("Gebruik de link van de Join Okuna knop in uw uitnodigingsmail."), + "auth__create_acc__paste_password_reset_link" : MessageLookupByLibrary.simpleMessage("Plak uw wachtwoord herstel-link hieronder"), + "auth__create_acc__previous" : MessageLookupByLibrary.simpleMessage("Terug"), + "auth__create_acc__register" : MessageLookupByLibrary.simpleMessage("Registreren"), + "auth__create_acc__request_invite" : MessageLookupByLibrary.simpleMessage("Geen uitnodiging? Vraag er hier een aan."), + "auth__create_acc__submit_error_desc_server" : MessageLookupByLibrary.simpleMessage("😭 We ervaren problemen met onze servers. Probeer het over een paar minuten opnieuw, a.u.b."), + "auth__create_acc__submit_error_desc_validation" : MessageLookupByLibrary.simpleMessage("😅 Het lijkt erop dat sommige informatie niet juist is, controleer en probeer het opnieuw a.u.b."), + "auth__create_acc__submit_error_title" : MessageLookupByLibrary.simpleMessage("Oh nee..."), + "auth__create_acc__submit_loading_desc" : MessageLookupByLibrary.simpleMessage("We maken je account aan."), + "auth__create_acc__submit_loading_title" : MessageLookupByLibrary.simpleMessage("Nog even volhouden!"), + "auth__create_acc__subscribe" : MessageLookupByLibrary.simpleMessage("Verzoek"), + "auth__create_acc__subscribe_to_waitlist_text" : MessageLookupByLibrary.simpleMessage("Een uitnodiging aanvragen!"), + "auth__create_acc__username_characters_error" : MessageLookupByLibrary.simpleMessage("😅 Een gebruikersnaam kan alleen alfanumerieke karakters en onderliggend streepje bevatten."), + "auth__create_acc__username_empty_error" : MessageLookupByLibrary.simpleMessage("😱 De gebruikersnaam kan niet leeg zijn."), + "auth__create_acc__username_length_error" : MessageLookupByLibrary.simpleMessage("😅 Een gebruiksnaam kan niet langer zijn dan 30 karakters."), + "auth__create_acc__username_placeholder" : MessageLookupByLibrary.simpleMessage("vincentvangogh"), + "auth__create_acc__username_server_error" : MessageLookupByLibrary.simpleMessage("😭 We ervaren problemen met onze servers. Probeer alsjeblieft het over een paar minuten opnieuw."), + "auth__create_acc__username_taken_error" : MessageLookupByLibrary.simpleMessage("😩 De gebruikersnaam @%s is al bezet."), + "auth__create_acc__welcome_to_beta" : MessageLookupByLibrary.simpleMessage("Welkom bij de Bèta!"), + "auth__create_acc__what_avatar" : MessageLookupByLibrary.simpleMessage("Kies een profielfoto"), + "auth__create_acc__what_email" : MessageLookupByLibrary.simpleMessage("Wat is je e-mail adres?"), + "auth__create_acc__what_name" : MessageLookupByLibrary.simpleMessage("Wat is je naam?"), + "auth__create_acc__what_password" : MessageLookupByLibrary.simpleMessage("Kies een wachtwoord"), + "auth__create_acc__what_password_subtext" : MessageLookupByLibrary.simpleMessage("(min 10 tekens)"), + "auth__create_acc__what_username" : MessageLookupByLibrary.simpleMessage("Kies een gebruikersnaam"), + "auth__create_acc__your_subscribed" : MessageLookupByLibrary.simpleMessage("Je bent {0} op de wachtlijst."), + "auth__create_acc__your_username_is" : MessageLookupByLibrary.simpleMessage("Je gebruikersnaam is "), + "auth__create_acc_password_hint_text" : m0, + "auth__create_account" : MessageLookupByLibrary.simpleMessage("Inschrijven"), + "auth__description_empty_error" : MessageLookupByLibrary.simpleMessage("Omschrijving mag niet leeg zijn."), + "auth__description_range_error" : m1, + "auth__email_empty_error" : MessageLookupByLibrary.simpleMessage("E-mail mag niet leeg zijn."), + "auth__email_invalid_error" : MessageLookupByLibrary.simpleMessage("Vul een geldig e-mailadres in."), + "auth__headline" : MessageLookupByLibrary.simpleMessage("Better social."), + "auth__login" : MessageLookupByLibrary.simpleMessage("Aanmelden"), + "auth__login__connection_error" : MessageLookupByLibrary.simpleMessage("We kunnen onze servers niet bereiken. Ben je verbonden met het internet?"), + "auth__login__credentials_mismatch_error" : MessageLookupByLibrary.simpleMessage("De versterkte inloggegevens komen niet overeen."), + "auth__login__email_label" : MessageLookupByLibrary.simpleMessage("E-mail"), + "auth__login__forgot_password" : MessageLookupByLibrary.simpleMessage("Wachtwoord vergeten"), + "auth__login__forgot_password_subtitle" : MessageLookupByLibrary.simpleMessage("Voer je gebruikersnaam of email adres in"), + "auth__login__login" : MessageLookupByLibrary.simpleMessage("Doorgaan"), + "auth__login__or_text" : MessageLookupByLibrary.simpleMessage("Of"), + "auth__login__password_empty_error" : MessageLookupByLibrary.simpleMessage("Wachtwoord is vereist."), + "auth__login__password_label" : MessageLookupByLibrary.simpleMessage("Wachtwoord"), + "auth__login__password_length_error" : MessageLookupByLibrary.simpleMessage("Wachtwoord moet tussen 8 en 64 karakters zijn."), + "auth__login__previous" : MessageLookupByLibrary.simpleMessage("Vorige"), + "auth__login__server_error" : MessageLookupByLibrary.simpleMessage("Oh oh.. We ervaren problemen met de server. Probeer het over enkele minuten opnieuw."), + "auth__login__subtitle" : MessageLookupByLibrary.simpleMessage("Voer uw inloggegevens in om door te gaan."), + "auth__login__title" : MessageLookupByLibrary.simpleMessage("Welkom terug!"), + "auth__login__username_characters_error" : MessageLookupByLibrary.simpleMessage("Gebruikersnaam kan alleen alfanumerieke karakters en underscores bevatten."), + "auth__login__username_empty_error" : MessageLookupByLibrary.simpleMessage("Gebruikersnaam is vereist."), + "auth__login__username_label" : MessageLookupByLibrary.simpleMessage("Gebruikersnaam"), + "auth__login__username_length_error" : MessageLookupByLibrary.simpleMessage("Gebruikersnaam kan niet langer zijn dan 30 karakters."), + "auth__name_empty_error" : MessageLookupByLibrary.simpleMessage("Naam mag niet leeg zijn."), + "auth__name_range_error" : m2, + "auth__password_empty_error" : MessageLookupByLibrary.simpleMessage("Wachtwoord mag niet leeg zijn."), + "auth__password_range_error" : m3, + "auth__reset_password_success_info" : MessageLookupByLibrary.simpleMessage("Je wachtwoord is met succes bijgewerkt"), + "auth__reset_password_success_title" : MessageLookupByLibrary.simpleMessage("Klaar!"), + "auth__username_characters_error" : MessageLookupByLibrary.simpleMessage("Een gebruikersnaam kan alleen alfanumerieke karakters en onderliggend streepje bevatten."), + "auth__username_empty_error" : MessageLookupByLibrary.simpleMessage("Gebruikersnaam mag niet leeg zijn."), + "auth__username_maxlength_error" : m4, + "community__about" : MessageLookupByLibrary.simpleMessage("Over"), + "community__actions_invite_people_title" : MessageLookupByLibrary.simpleMessage("Nodig mensen uit voor deze community"), + "community__actions_manage_text" : MessageLookupByLibrary.simpleMessage("Beheer"), + "community__add_administrators_title" : MessageLookupByLibrary.simpleMessage("Een beheerder toevoegen."), + "community__add_moderator_title" : MessageLookupByLibrary.simpleMessage("Een moderator toevoegen"), + "community__adjectives_range_error" : m5, + "community__admin_add_confirmation" : m6, + "community__admin_desc" : MessageLookupByLibrary.simpleMessage("Hiermee wordt een lid in staat gesteld om de community gegevens, de beheerders, de moderators en geblokkeerde gebruikers, aan te passen."), + "community__administrated_communities" : MessageLookupByLibrary.simpleMessage("beheerders communities"), + "community__administrated_community" : MessageLookupByLibrary.simpleMessage("beheerders community"), + "community__administrated_title" : MessageLookupByLibrary.simpleMessage("Beheer"), + "community__administrator_plural" : MessageLookupByLibrary.simpleMessage("beheerders"), + "community__administrator_text" : MessageLookupByLibrary.simpleMessage("beheerder"), + "community__administrator_you" : MessageLookupByLibrary.simpleMessage("Jij"), + "community__administrators_title" : MessageLookupByLibrary.simpleMessage("Beheerders"), + "community__ban_confirmation" : m7, + "community__ban_desc" : MessageLookupByLibrary.simpleMessage("Dit zorgt ervoor dat de gebruiker verwijderd wordt uit de community en verbiedt de gebruiker nogmaals toe te treden."), + "community__ban_user_title" : MessageLookupByLibrary.simpleMessage("Blokkeer gebruiker"), + "community__banned_user_text" : MessageLookupByLibrary.simpleMessage("geblokkeerde gebruiker"), + "community__banned_users_text" : MessageLookupByLibrary.simpleMessage("geblokkeerde gebruikers"), + "community__banned_users_title" : MessageLookupByLibrary.simpleMessage("Blokkeer gebruikers"), + "community__button_rules" : MessageLookupByLibrary.simpleMessage("Reglement"), + "community__button_staff" : MessageLookupByLibrary.simpleMessage("Staf"), + "community__categories" : MessageLookupByLibrary.simpleMessage("categorieën."), + "community__category" : MessageLookupByLibrary.simpleMessage("categorie."), + "community__communities" : MessageLookupByLibrary.simpleMessage("communities"), + "community__communities_all_text" : MessageLookupByLibrary.simpleMessage("Allen"), + "community__communities_no_category_found" : MessageLookupByLibrary.simpleMessage("Geen categorieën gevonden. Probeer het over een paar minuten opnieuw."), + "community__communities_refresh_text" : MessageLookupByLibrary.simpleMessage("Ververs"), + "community__communities_title" : MessageLookupByLibrary.simpleMessage("Communities"), + "community__community" : MessageLookupByLibrary.simpleMessage("community"), + "community__community_members" : MessageLookupByLibrary.simpleMessage("Leden van een community"), + "community__community_staff" : MessageLookupByLibrary.simpleMessage("Community staf"), + "community__confirmation_title" : MessageLookupByLibrary.simpleMessage("Bevestiging"), + "community__delete_confirmation" : MessageLookupByLibrary.simpleMessage("Weet je zeker dat je deze community wil verwijderen?"), + "community__delete_desc" : MessageLookupByLibrary.simpleMessage("Je zult de berichten niet meer in je tijdslijn zien, noch in staat zijn om er in te posten."), + "community__description_range_error" : m8, + "community__favorite_action" : MessageLookupByLibrary.simpleMessage("Favoriete community"), + "community__favorite_communities" : MessageLookupByLibrary.simpleMessage("favoriete communities"), + "community__favorite_community" : MessageLookupByLibrary.simpleMessage("favoriete community"), + "community__favorites_title" : MessageLookupByLibrary.simpleMessage("Favorieten"), + "community__invite_to_community_resource_plural" : MessageLookupByLibrary.simpleMessage("connecties en volgers"), + "community__invite_to_community_resource_singular" : MessageLookupByLibrary.simpleMessage("connectie of volger"), + "community__invite_to_community_title" : MessageLookupByLibrary.simpleMessage("Uitnodiging om deel te nemen aan deze community"), + "community__invited_by_member" : MessageLookupByLibrary.simpleMessage("Je dient uitgenodigd te worden door een lid."), + "community__invited_by_moderator" : MessageLookupByLibrary.simpleMessage("Je dient uitgenodigd te worden door een moderator."), + "community__is_private" : MessageLookupByLibrary.simpleMessage("Deze community is besloten."), + "community__join_communities_desc" : MessageLookupByLibrary.simpleMessage("Word lid van communities om deze tab tot leven te zien komen!"), + "community__join_community" : MessageLookupByLibrary.simpleMessage("Word lid"), + "community__joined_communities" : MessageLookupByLibrary.simpleMessage("lid van deze communities"), + "community__joined_community" : MessageLookupByLibrary.simpleMessage("lid van deze community sinds"), + "community__joined_title" : MessageLookupByLibrary.simpleMessage("Lid sinds"), + "community__leave_community" : MessageLookupByLibrary.simpleMessage("Verlaat"), + "community__leave_confirmation" : MessageLookupByLibrary.simpleMessage("Weet je zeker dat je deze community wil verlaten?"), + "community__leave_desc" : MessageLookupByLibrary.simpleMessage("Je zult de berichten niet in je tijdslijn zien, noch bent in staat er nog in te posten."), + "community__manage_add_favourite" : MessageLookupByLibrary.simpleMessage("Voeg de community aan je favorieten toe"), + "community__manage_admins_desc" : MessageLookupByLibrary.simpleMessage("Bekijk, voeg toe en verwijder beheerders."), + "community__manage_admins_title" : MessageLookupByLibrary.simpleMessage("Beheerders"), + "community__manage_banned_desc" : MessageLookupByLibrary.simpleMessage("Bekijk, voeg toe en verwijder geblokkeerde gebruikers."), + "community__manage_banned_title" : MessageLookupByLibrary.simpleMessage("Geblokkeerde gebruikers"), + "community__manage_closed_posts_desc" : MessageLookupByLibrary.simpleMessage("Bekijk en beheer gesloten berichten"), + "community__manage_closed_posts_title" : MessageLookupByLibrary.simpleMessage("Gesloten berichten"), + "community__manage_delete_desc" : MessageLookupByLibrary.simpleMessage("Voorgoed een community verwijderen."), + "community__manage_delete_title" : MessageLookupByLibrary.simpleMessage("Een community verwijderen"), + "community__manage_details_desc" : MessageLookupByLibrary.simpleMessage("Verander de titel, naam, avatar, omslagfoto en meer."), + "community__manage_details_title" : MessageLookupByLibrary.simpleMessage("Details"), + "community__manage_invite_desc" : MessageLookupByLibrary.simpleMessage("Nodig je connecties en volgers uit om deel te nemen aan de community."), + "community__manage_invite_title" : MessageLookupByLibrary.simpleMessage("Mensen uitnodigen"), + "community__manage_leave_desc" : MessageLookupByLibrary.simpleMessage("De community verlaten."), + "community__manage_leave_title" : MessageLookupByLibrary.simpleMessage("Een community verlaten"), + "community__manage_mod_reports_desc" : MessageLookupByLibrary.simpleMessage("Beoordeel de moderatierapporten van de community."), + "community__manage_mod_reports_title" : MessageLookupByLibrary.simpleMessage("Moderatierapporten"), + "community__manage_mods_desc" : MessageLookupByLibrary.simpleMessage("Bekijk, voeg toe en verwijder moderators."), + "community__manage_mods_title" : MessageLookupByLibrary.simpleMessage("Moderators"), + "community__manage_remove_favourite" : MessageLookupByLibrary.simpleMessage("Verwijder de community uit je favorieten"), + "community__manage_title" : MessageLookupByLibrary.simpleMessage("Beheer de community"), + "community__member" : MessageLookupByLibrary.simpleMessage("lid"), + "community__member_capitalized" : MessageLookupByLibrary.simpleMessage("Lid"), + "community__member_plural" : MessageLookupByLibrary.simpleMessage("leden"), + "community__members_capitalized" : MessageLookupByLibrary.simpleMessage("Leden"), + "community__moderated_communities" : MessageLookupByLibrary.simpleMessage("gemodereerde communities"), + "community__moderated_community" : MessageLookupByLibrary.simpleMessage("gemodereerde community"), + "community__moderated_title" : MessageLookupByLibrary.simpleMessage("Gemodereerd"), + "community__moderator_add_confirmation" : m9, + "community__moderator_desc" : MessageLookupByLibrary.simpleMessage("Dit stelt het lid in staat om community gegevens, moderators en verboden gebruikers te wijzigen."), + "community__moderator_resource_name" : MessageLookupByLibrary.simpleMessage("moderator"), + "community__moderators_resource_name" : MessageLookupByLibrary.simpleMessage("moderators"), + "community__moderators_title" : MessageLookupByLibrary.simpleMessage("Moderators"), + "community__moderators_you" : MessageLookupByLibrary.simpleMessage("Jij"), + "community__name_characters_error" : MessageLookupByLibrary.simpleMessage("Een gebruikersnaam kan alleen alfanumerieke tekens en onderliggende streepjes bevatten."), + "community__name_empty_error" : MessageLookupByLibrary.simpleMessage("Naam invullen is verplicht."), + "community__name_range_error" : m10, + "community__no" : MessageLookupByLibrary.simpleMessage("Nee"), + "community__pick_atleast_min_categories" : m11, + "community__pick_atleast_min_category" : m12, + "community__pick_upto_max" : m13, + "community__post_plural" : MessageLookupByLibrary.simpleMessage("berichten"), + "community__post_singular" : MessageLookupByLibrary.simpleMessage("post bericht"), + "community__posts" : MessageLookupByLibrary.simpleMessage("Posts"), + "community__refresh_text" : MessageLookupByLibrary.simpleMessage("Ververs"), + "community__refreshing" : MessageLookupByLibrary.simpleMessage("Verversen community"), + "community__rules_empty_error" : MessageLookupByLibrary.simpleMessage("Regels invullen is verplicht."), + "community__rules_range_error" : m14, + "community__rules_text" : MessageLookupByLibrary.simpleMessage("Regels"), + "community__rules_title" : MessageLookupByLibrary.simpleMessage("Community regels"), + "community__save_community_create_community" : MessageLookupByLibrary.simpleMessage("Maak een community"), + "community__save_community_create_text" : MessageLookupByLibrary.simpleMessage("Creëer"), + "community__save_community_edit_community" : MessageLookupByLibrary.simpleMessage("Bewerk community"), + "community__save_community_label_title" : MessageLookupByLibrary.simpleMessage("Titel"), + "community__save_community_label_title_hint_text" : MessageLookupByLibrary.simpleMessage("bijv. Reizen, Fotografie, Gaming."), + "community__save_community_name_category" : MessageLookupByLibrary.simpleMessage("Categorie"), + "community__save_community_name_label_color" : MessageLookupByLibrary.simpleMessage("Kleur"), + "community__save_community_name_label_color_hint_text" : MessageLookupByLibrary.simpleMessage("(Tik om te wijzigen)"), + "community__save_community_name_label_desc_optional" : MessageLookupByLibrary.simpleMessage("Omschrijving · Optioneel"), + "community__save_community_name_label_desc_optional_hint_text" : MessageLookupByLibrary.simpleMessage("Wat is het onderwerp van je community?"), + "community__save_community_name_label_member_adjective" : MessageLookupByLibrary.simpleMessage("Bijnaam lid (enkelvoud) · Optioneel"), + "community__save_community_name_label_member_adjective_hint_text" : MessageLookupByLibrary.simpleMessage("bijv. reiziger, fotograaf, gamer."), + "community__save_community_name_label_members_adjective" : MessageLookupByLibrary.simpleMessage("Bijnaam leden (meervoud) · Optioneel"), + "community__save_community_name_label_members_adjective_hint_text" : MessageLookupByLibrary.simpleMessage("bijv. reizigers, fotografen, gamers."), + "community__save_community_name_label_rules_optional" : MessageLookupByLibrary.simpleMessage("Regels · Optioneel"), + "community__save_community_name_label_rules_optional_hint_text" : MessageLookupByLibrary.simpleMessage("Is er iets wat je wilt dat je gebruikers weten?"), + "community__save_community_name_label_type" : MessageLookupByLibrary.simpleMessage("Type"), + "community__save_community_name_label_type_hint_text" : MessageLookupByLibrary.simpleMessage("(Tik om te wijzigen)"), + "community__save_community_name_member_invites" : MessageLookupByLibrary.simpleMessage("Lid uitnodigen"), + "community__save_community_name_member_invites_subtitle" : MessageLookupByLibrary.simpleMessage("Leden kunnen mensen voor de community uitnodigen"), + "community__save_community_name_taken" : m15, + "community__save_community_name_title" : MessageLookupByLibrary.simpleMessage("Naam"), + "community__save_community_name_title_hint_text" : MessageLookupByLibrary.simpleMessage(" bijv. reizen, fotografie, gaming."), + "community__save_community_save_text" : MessageLookupByLibrary.simpleMessage("Opslaan"), + "community__title_empty_error" : MessageLookupByLibrary.simpleMessage("Titel invullen is verplicht."), + "community__title_range_error" : m16, + "community__trending_in_all" : MessageLookupByLibrary.simpleMessage("Trending in alle categorieën"), + "community__trending_in_category" : m17, + "community__trending_none_found" : MessageLookupByLibrary.simpleMessage("Geen trending communities gevonden. Probeer het over enkele minuten opnieuw."), + "community__trending_refresh" : MessageLookupByLibrary.simpleMessage("Ververs"), + "community__type_private" : MessageLookupByLibrary.simpleMessage("Privé"), + "community__type_public" : MessageLookupByLibrary.simpleMessage("Openbaar"), + "community__unfavorite_action" : MessageLookupByLibrary.simpleMessage("Niet favoriete community"), + "community__user_you_text" : MessageLookupByLibrary.simpleMessage("Jij"), + "community__yes" : MessageLookupByLibrary.simpleMessage("Ja"), + "contextual_account_search_box__suggestions" : MessageLookupByLibrary.simpleMessage("Suggesties"), + "drawer__account_settings" : MessageLookupByLibrary.simpleMessage("Account instellingen"), + "drawer__account_settings_blocked_users" : MessageLookupByLibrary.simpleMessage("Geblokkeerde gebruikers"), + "drawer__account_settings_change_email" : MessageLookupByLibrary.simpleMessage("E-mailadres wijzigen"), + "drawer__account_settings_change_password" : MessageLookupByLibrary.simpleMessage("Wachtwoord wijzigen"), + "drawer__account_settings_delete_account" : MessageLookupByLibrary.simpleMessage("Verwijder account"), + "drawer__account_settings_language" : m18, + "drawer__account_settings_language_text" : MessageLookupByLibrary.simpleMessage("Taal"), + "drawer__account_settings_notifications" : MessageLookupByLibrary.simpleMessage("Notificaties"), + "drawer__app_account_text" : MessageLookupByLibrary.simpleMessage("App & Account"), + "drawer__application_settings" : MessageLookupByLibrary.simpleMessage("Applicatie instellingen"), + "drawer__connections" : MessageLookupByLibrary.simpleMessage("Mijn connecties"), + "drawer__customize" : MessageLookupByLibrary.simpleMessage("Personaliseren"), + "drawer__developer_settings" : MessageLookupByLibrary.simpleMessage("Ontwikkelaarinstellingen"), + "drawer__global_moderation" : MessageLookupByLibrary.simpleMessage("Algemene moderatie"), + "drawer__help" : MessageLookupByLibrary.simpleMessage("Ondersteuning & Feedback"), + "drawer__lists" : MessageLookupByLibrary.simpleMessage("Mijn lijsten"), + "drawer__logout" : MessageLookupByLibrary.simpleMessage("Afmelden"), + "drawer__main_title" : MessageLookupByLibrary.simpleMessage("Mijn Okuna"), + "drawer__menu_title" : MessageLookupByLibrary.simpleMessage("Menu"), + "drawer__my_circles" : MessageLookupByLibrary.simpleMessage("Mijn cirkels"), + "drawer__my_followers" : MessageLookupByLibrary.simpleMessage("Mijn volgers"), + "drawer__my_following" : MessageLookupByLibrary.simpleMessage("Mijn volgers"), + "drawer__my_invites" : MessageLookupByLibrary.simpleMessage("Mijn uitnodigingen"), + "drawer__my_lists" : MessageLookupByLibrary.simpleMessage("Mijn lijsten"), + "drawer__my_mod_penalties" : MessageLookupByLibrary.simpleMessage("Mijn strafpunten"), + "drawer__my_pending_mod_tasks" : MessageLookupByLibrary.simpleMessage("Mijn wachtende moderatie taken"), + "drawer__profile" : MessageLookupByLibrary.simpleMessage("Profiel"), + "drawer__settings" : MessageLookupByLibrary.simpleMessage("Instellingen"), + "drawer__themes" : MessageLookupByLibrary.simpleMessage("Thema’s"), + "drawer__useful_links_guidelines" : MessageLookupByLibrary.simpleMessage("Okuna richtlijnen"), + "drawer__useful_links_guidelines_bug_tracker" : MessageLookupByLibrary.simpleMessage("Bug Tracker"), + "drawer__useful_links_guidelines_bug_tracker_desc" : MessageLookupByLibrary.simpleMessage("Meld een bug of stem op een bestaande"), + "drawer__useful_links_guidelines_desc" : MessageLookupByLibrary.simpleMessage("De richtlijnen die we allemaal horen te volgen voor een gezond en gezellig samenzijn."), + "drawer__useful_links_guidelines_feature_requests" : MessageLookupByLibrary.simpleMessage("Feature-aanvragen"), + "drawer__useful_links_guidelines_feature_requests_desc" : MessageLookupByLibrary.simpleMessage("Vraag een feature aan of stem op een bestaande"), + "drawer__useful_links_guidelines_github" : MessageLookupByLibrary.simpleMessage("Github projectbord"), + "drawer__useful_links_guidelines_github_desc" : MessageLookupByLibrary.simpleMessage("Kijk eens naar waar we nu aan werken"), + "drawer__useful_links_guidelines_handbook" : MessageLookupByLibrary.simpleMessage("Okuna gebruikershandleiding"), + "drawer__useful_links_guidelines_handbook_desc" : MessageLookupByLibrary.simpleMessage("Een website met alles wat er te weten is over het gebruik van het platform"), + "drawer__useful_links_slack_channel" : MessageLookupByLibrary.simpleMessage("Slack kanaal voor de community"), + "drawer__useful_links_slack_channel_desc" : MessageLookupByLibrary.simpleMessage("Een plek om alles te bespreken over Okuna"), + "drawer__useful_links_support" : MessageLookupByLibrary.simpleMessage("Okuna ondersteunen"), + "drawer__useful_links_support_desc" : MessageLookupByLibrary.simpleMessage("Vind een manier om ons te steunen op onze reis!"), + "drawer__useful_links_title" : MessageLookupByLibrary.simpleMessage("Handige links"), + "error__no_internet_connection" : MessageLookupByLibrary.simpleMessage("Geen internet verbinding"), + "error__unknown_error" : MessageLookupByLibrary.simpleMessage("Onbekende fout"), + "image_picker__from_camera" : MessageLookupByLibrary.simpleMessage("Van camera"), + "image_picker__from_gallery" : MessageLookupByLibrary.simpleMessage("Van galerij"), + "moderation__actions_chat_with_team" : MessageLookupByLibrary.simpleMessage("Met het team chatten"), + "moderation__actions_review" : MessageLookupByLibrary.simpleMessage("Beoordelen"), + "moderation__category_text" : MessageLookupByLibrary.simpleMessage("Categorie"), + "moderation__community_moderated_objects" : MessageLookupByLibrary.simpleMessage("Community gemodereerde objecten"), + "moderation__community_review_approve" : MessageLookupByLibrary.simpleMessage("Goedkeuren"), + "moderation__community_review_item_verified" : MessageLookupByLibrary.simpleMessage("Dit item is geverifieerd"), + "moderation__community_review_object" : MessageLookupByLibrary.simpleMessage("Object"), + "moderation__community_review_reject" : MessageLookupByLibrary.simpleMessage("afwijzen"), + "moderation__community_review_title" : MessageLookupByLibrary.simpleMessage("Beoordeel gemodereerd object"), + "moderation__confirm_report_community_reported" : MessageLookupByLibrary.simpleMessage("Gemelde community"), + "moderation__confirm_report_item_reported" : MessageLookupByLibrary.simpleMessage("Gemelde item"), + "moderation__confirm_report_post_comment_reported" : MessageLookupByLibrary.simpleMessage("Gemelde post commentaar"), + "moderation__confirm_report_post_reported" : MessageLookupByLibrary.simpleMessage("Gemelde post"), + "moderation__confirm_report_provide_details" : MessageLookupByLibrary.simpleMessage("Kun je aanvullende details verstrekken die wellicht relevant zijn voor de melding?"), + "moderation__confirm_report_provide_happen_next" : MessageLookupByLibrary.simpleMessage("Dit is de volgende stap:"), + "moderation__confirm_report_provide_happen_next_desc" : MessageLookupByLibrary.simpleMessage("- Je melding zal anoniem ingediend worden.\n- Als je een post of commentaar meldt, zal de melding aan medewerkers van Okuna en indien van toepassing aan de community moderators gestuurd worden. De post zal niet zichtbaar zijn in je tijdlijn.\n- Als je een account of community aanmeldt, zal deze naar medewerkers van Okuna gestuurd worden.\n- We zullen het bekijken en indien mee eens, zal de content verwijderd worden. Daarnaast zullen sancties uitgedeeld worden aan de mensen die betrokken zijn. Deze sancties variëren van een tijdelijke schorsing tot het verwijderen van het account, afhankelijk van de ernst van de overtreding. \n- Als de melding wordt gedaan in een poging om de reputatie van een ander lid of een andere gemeenschap in het platform te schaden zonder dat er sprake is van een inbreuk op de vermelde grond, zullen er sancties aan u worden opgelegd. \n"), + "moderation__confirm_report_provide_optional_hint_text" : MessageLookupByLibrary.simpleMessage("Typ hier..."), + "moderation__confirm_report_provide_optional_info" : MessageLookupByLibrary.simpleMessage("(Optioneel)"), + "moderation__confirm_report_submit" : MessageLookupByLibrary.simpleMessage("Ik begrijp het en dien in."), + "moderation__confirm_report_title" : MessageLookupByLibrary.simpleMessage("Melding indienen"), + "moderation__confirm_report_user_reported" : MessageLookupByLibrary.simpleMessage("Gebruiker gemeld"), + "moderation__description_text" : MessageLookupByLibrary.simpleMessage("Omschrijving"), + "moderation__filters_apply" : MessageLookupByLibrary.simpleMessage("Pas filters toe"), + "moderation__filters_other" : MessageLookupByLibrary.simpleMessage("Overige"), + "moderation__filters_reset" : MessageLookupByLibrary.simpleMessage("Herstellen"), + "moderation__filters_status" : MessageLookupByLibrary.simpleMessage("Status"), + "moderation__filters_title" : MessageLookupByLibrary.simpleMessage("Moderatiefilters"), + "moderation__filters_type" : MessageLookupByLibrary.simpleMessage("Type"), + "moderation__filters_verified" : MessageLookupByLibrary.simpleMessage("Geverifieerd"), + "moderation__global_review_object_text" : MessageLookupByLibrary.simpleMessage("Object"), + "moderation__global_review_title" : MessageLookupByLibrary.simpleMessage("Beoordeel gemodereerd object"), + "moderation__global_review_unverify_text" : MessageLookupByLibrary.simpleMessage("Bevestiging opheffen"), + "moderation__global_review_verify_text" : MessageLookupByLibrary.simpleMessage("Bevestigen"), + "moderation__globally_moderated_objects" : MessageLookupByLibrary.simpleMessage("Globaal gemodereerde objecten"), + "moderation__moderated_object_false_text" : MessageLookupByLibrary.simpleMessage("Niet waar"), + "moderation__moderated_object_reports_count" : MessageLookupByLibrary.simpleMessage("Aantal meldingen"), + "moderation__moderated_object_status" : MessageLookupByLibrary.simpleMessage("Status"), + "moderation__moderated_object_title" : MessageLookupByLibrary.simpleMessage("Object"), + "moderation__moderated_object_true_text" : MessageLookupByLibrary.simpleMessage("Waar"), + "moderation__moderated_object_verified" : MessageLookupByLibrary.simpleMessage("Geverifieerd"), + "moderation__moderated_object_verified_by_staff" : MessageLookupByLibrary.simpleMessage("Geverifieerd door Okuna staf"), + "moderation__my_moderation_penalties_resouce_singular" : MessageLookupByLibrary.simpleMessage("strafpunt"), + "moderation__my_moderation_penalties_resource_plural" : MessageLookupByLibrary.simpleMessage("strafpunten"), + "moderation__my_moderation_penalties_title" : MessageLookupByLibrary.simpleMessage("Strafpunten"), + "moderation__my_moderation_tasks_title" : MessageLookupByLibrary.simpleMessage("Wachtende moderatie-taken"), + "moderation__no_description_text" : MessageLookupByLibrary.simpleMessage("Geen omschrijving"), + "moderation__object_status_title" : MessageLookupByLibrary.simpleMessage("Status"), + "moderation__pending_moderation_tasks_plural" : MessageLookupByLibrary.simpleMessage("wachtende moderatie-taken"), + "moderation__pending_moderation_tasks_singular" : MessageLookupByLibrary.simpleMessage("wachtende moderatie-taak"), + "moderation__report_account_text" : MessageLookupByLibrary.simpleMessage("Rapporteer account"), + "moderation__report_comment_text" : MessageLookupByLibrary.simpleMessage("Rapporteer commentaar"), + "moderation__report_community_text" : MessageLookupByLibrary.simpleMessage("Rapporteer community"), + "moderation__report_post_text" : MessageLookupByLibrary.simpleMessage("Rapporteer bericht"), + "moderation__reporter_text" : MessageLookupByLibrary.simpleMessage("Rapporteur"), + "moderation__reports_preview_resource_reports" : MessageLookupByLibrary.simpleMessage("rapporten"), + "moderation__reports_preview_title" : MessageLookupByLibrary.simpleMessage("Rapporten"), + "moderation__reports_see_all" : m20, + "moderation__tap_to_retry" : MessageLookupByLibrary.simpleMessage("Tik om te proberen de items opnieuw te laden"), + "moderation__update_category_save" : MessageLookupByLibrary.simpleMessage("Opslaan"), + "moderation__update_category_title" : MessageLookupByLibrary.simpleMessage("Categorie updaten"), + "moderation__update_description_report_desc" : MessageLookupByLibrary.simpleMessage("Omschrijving van de melding"), + "moderation__update_description_report_hint_text" : MessageLookupByLibrary.simpleMessage("bijv. het gemelde item heeft als bevinding..."), + "moderation__update_description_save" : MessageLookupByLibrary.simpleMessage("Opslaan"), + "moderation__update_description_title" : MessageLookupByLibrary.simpleMessage("Beschrijving bewerken"), + "moderation__update_status_save" : MessageLookupByLibrary.simpleMessage("Opslaan"), + "moderation__update_status_title" : MessageLookupByLibrary.simpleMessage("Status bijwerken"), + "moderation__you_have_reported_account_text" : MessageLookupByLibrary.simpleMessage("Je hebt dit account gerapporteerd"), + "moderation__you_have_reported_comment_text" : MessageLookupByLibrary.simpleMessage("Je hebt dit commentaar gerapporteerd"), + "moderation__you_have_reported_community_text" : MessageLookupByLibrary.simpleMessage("Je hebt deze community gerapporteerd"), + "moderation__you_have_reported_post_text" : MessageLookupByLibrary.simpleMessage("Je hebt dit bericht gerapporteerd"), + "notifications__accepted_connection_request_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] heeft jouw verbindingsverzoek geaccepteerd."), + "notifications__comment_comment_notification_tile_user_also_commented" : m21, + "notifications__comment_comment_notification_tile_user_commented" : m22, + "notifications__comment_desc" : MessageLookupByLibrary.simpleMessage("Melden wanneer iemand commentaar geeft op een van je berichten of een bericht waarop je commentaar gegeven hebt"), + "notifications__comment_reaction_desc" : MessageLookupByLibrary.simpleMessage("Melden wanneer iemand reageert op één van jouw bericht commentaren"), + "notifications__comment_reaction_title" : MessageLookupByLibrary.simpleMessage("Plaats commentaar reactie"), + "notifications__comment_reply_desc" : MessageLookupByLibrary.simpleMessage("Melden wanneer iemand antwoord geeft op een van jouw commentaren of een commentaar waarop je geantwoord hebt"), + "notifications__comment_reply_notification_tile_user_also_replied" : m23, + "notifications__comment_reply_notification_tile_user_replied" : m24, + "notifications__comment_reply_title" : MessageLookupByLibrary.simpleMessage("Plaats antwoord op commentaar"), + "notifications__comment_title" : MessageLookupByLibrary.simpleMessage("Plaats commentaar"), + "notifications__comment_user_mention_desc" : MessageLookupByLibrary.simpleMessage("Krijg een melding als iemand je noemt in een commentaar"), + "notifications__comment_user_mention_title" : MessageLookupByLibrary.simpleMessage("Bericht commentaar vermelding"), + "notifications__community_invite_desc" : MessageLookupByLibrary.simpleMessage("Melden wanneer iemand je uitnodigt om lid te worden van een community"), + "notifications__community_invite_title" : MessageLookupByLibrary.simpleMessage("Community uitnodiging"), + "notifications__connection_desc" : MessageLookupByLibrary.simpleMessage("Melden wanneer iemand met je wil verbinden"), + "notifications__connection_request_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] wil met je verbinden."), + "notifications__connection_title" : MessageLookupByLibrary.simpleMessage("Verbindingsverzoek"), + "notifications__follow_desc" : MessageLookupByLibrary.simpleMessage("Melden wanneer iemand je begint te volgen"), + "notifications__follow_title" : MessageLookupByLibrary.simpleMessage("Volg"), + "notifications__following_you_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] volgt je nu."), + "notifications__general_desc" : MessageLookupByLibrary.simpleMessage("Krijg een melding als iets gebeurt"), + "notifications__general_title" : MessageLookupByLibrary.simpleMessage("Meldingen"), + "notifications__mentioned_in_post_comment_tile" : m25, + "notifications__mentioned_in_post_tile" : MessageLookupByLibrary.simpleMessage("[name] @[username] heeft je in een bericht genoemd."), + "notifications__mute_post_turn_off_post_comment_notifications" : MessageLookupByLibrary.simpleMessage("Meldingen voor commentaren uitzetten"), + "notifications__mute_post_turn_off_post_notifications" : MessageLookupByLibrary.simpleMessage("Meldingen voor berichten uitzetten"), + "notifications__mute_post_turn_on_post_comment_notifications" : MessageLookupByLibrary.simpleMessage("Meldingen voor commentaren aanzetten"), + "notifications__mute_post_turn_on_post_notifications" : MessageLookupByLibrary.simpleMessage("Meldingen voor berichten aanzetten"), + "notifications__post_reaction_desc" : MessageLookupByLibrary.simpleMessage("Melden wanneer iemand reageert op één van jouw berichten"), + "notifications__post_reaction_title" : MessageLookupByLibrary.simpleMessage("Plaats reactie"), + "notifications__post_user_mention_desc" : MessageLookupByLibrary.simpleMessage("Wordt op de hoogte gesteld wanneer iemand je op een van hun berichten vermeldt"), + "notifications__post_user_mention_title" : MessageLookupByLibrary.simpleMessage("Berichtvermelding"), + "notifications__reacted_to_post_comment_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] reageerde op jouw bericht commentaar."), + "notifications__reacted_to_post_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] reageerde op jouw bericht."), + "notifications__settings_title" : MessageLookupByLibrary.simpleMessage("Instellingen voor meldingen"), + "notifications__tab_general" : MessageLookupByLibrary.simpleMessage("Algemeen"), + "notifications__tab_requests" : MessageLookupByLibrary.simpleMessage("Verzoeken"), + "notifications__user_community_invite_tile" : m26, + "post__action_comment" : MessageLookupByLibrary.simpleMessage("Reactie"), + "post__action_react" : MessageLookupByLibrary.simpleMessage("Reageren"), + "post__action_reply" : MessageLookupByLibrary.simpleMessage("Antwoorden"), + "post__actions_comment_deleted" : MessageLookupByLibrary.simpleMessage("Commentaar verwijderd"), + "post__actions_delete" : MessageLookupByLibrary.simpleMessage("Bericht verwijderen"), + "post__actions_delete_comment" : MessageLookupByLibrary.simpleMessage("Commentaar verwijderen"), + "post__actions_deleted" : MessageLookupByLibrary.simpleMessage("Bericht verwijderd"), + "post__actions_edit_comment" : MessageLookupByLibrary.simpleMessage("Wijzig commentaar"), + "post__actions_report_text" : MessageLookupByLibrary.simpleMessage("Rapporteer"), + "post__actions_reported_text" : MessageLookupByLibrary.simpleMessage("Gerapporteerd"), + "post__actions_show_more_text" : MessageLookupByLibrary.simpleMessage("Meer tonen"), + "post__close_post" : MessageLookupByLibrary.simpleMessage("Sluit bericht"), + "post__comment_maxlength_error" : m27, + "post__comment_reply_expanded_post" : MessageLookupByLibrary.simpleMessage("Beantwoord"), + "post__comment_reply_expanded_reply_comment" : MessageLookupByLibrary.simpleMessage("Reageer op commentaar"), + "post__comment_reply_expanded_reply_hint_text" : MessageLookupByLibrary.simpleMessage("Jouw antwoord..."), + "post__comment_required_error" : MessageLookupByLibrary.simpleMessage("Reactie kan niet leeg zijn."), + "post__commenter_expanded_edit_comment" : MessageLookupByLibrary.simpleMessage("Wijzig commentaar"), + "post__commenter_expanded_join_conversation" : MessageLookupByLibrary.simpleMessage("Deelnemen aan het gesprek..."), + "post__commenter_expanded_save" : MessageLookupByLibrary.simpleMessage("Bewaren"), + "post__commenter_expanded_start_conversation" : MessageLookupByLibrary.simpleMessage("Begin het gesprek..."), + "post__commenter_post_text" : MessageLookupByLibrary.simpleMessage("Plaats commentaar"), + "post__commenter_write_something" : MessageLookupByLibrary.simpleMessage("Schrijf iets..."), + "post__comments_closed_post" : MessageLookupByLibrary.simpleMessage("Gesloten bericht"), + "post__comments_disabled" : MessageLookupByLibrary.simpleMessage("Commentaren uitgeschakeld"), + "post__comments_disabled_message" : MessageLookupByLibrary.simpleMessage("Commentaren uitgeschakeld voor bericht"), + "post__comments_enabled_message" : MessageLookupByLibrary.simpleMessage("Commentaren ingeschakeld voor bericht"), + "post__comments_header_be_the_first_comments" : MessageLookupByLibrary.simpleMessage("Geef als eerste commentaar"), + "post__comments_header_be_the_first_replies" : MessageLookupByLibrary.simpleMessage("Antwoord als eerste"), + "post__comments_header_newer" : MessageLookupByLibrary.simpleMessage("Nieuwer"), + "post__comments_header_newest_comments" : MessageLookupByLibrary.simpleMessage("Nieuwste commentaren"), + "post__comments_header_newest_replies" : MessageLookupByLibrary.simpleMessage("Nieuwste antwoorden"), + "post__comments_header_older" : MessageLookupByLibrary.simpleMessage("Ouder"), + "post__comments_header_oldest_comments" : MessageLookupByLibrary.simpleMessage("Oudste commentaren"), + "post__comments_header_oldest_replies" : MessageLookupByLibrary.simpleMessage("Oudste antwoorden"), + "post__comments_header_see_newest_comments" : MessageLookupByLibrary.simpleMessage("Bekijk nieuwste commentaren"), + "post__comments_header_see_newest_replies" : MessageLookupByLibrary.simpleMessage("Bekijk nieuwste antwoorden"), + "post__comments_header_see_oldest_comments" : MessageLookupByLibrary.simpleMessage("Bekijk oudste commentaren"), + "post__comments_header_see_oldest_replies" : MessageLookupByLibrary.simpleMessage("Bekijk oudste antwoorden"), + "post__comments_header_view_newest_comments" : MessageLookupByLibrary.simpleMessage("Bekijk nieuwste commentaren"), + "post__comments_header_view_newest_replies" : MessageLookupByLibrary.simpleMessage("Bekijk nieuwste antwoorden"), + "post__comments_header_view_oldest_comments" : MessageLookupByLibrary.simpleMessage("Bekijk oudste commentaren"), + "post__comments_header_view_oldest_replies" : MessageLookupByLibrary.simpleMessage("Bekijk oudste antwoorden"), + "post__comments_page_no_more_replies_to_load" : MessageLookupByLibrary.simpleMessage("Geen antwoorden meer om te laden"), + "post__comments_page_no_more_to_load" : MessageLookupByLibrary.simpleMessage("Geen commentaren meer om te laden"), + "post__comments_page_replies_title" : MessageLookupByLibrary.simpleMessage("Antwoorden"), + "post__comments_page_tap_to_retry" : MessageLookupByLibrary.simpleMessage("Tik om commentaren opnieuw te laden."), + "post__comments_page_tap_to_retry_replies" : MessageLookupByLibrary.simpleMessage("Tik om antwoorden opnieuw te laden."), + "post__comments_page_title" : MessageLookupByLibrary.simpleMessage("Commentaren"), + "post__comments_view_all_comments" : m28, + "post__create_new" : MessageLookupByLibrary.simpleMessage("Nieuw bericht"), + "post__create_next" : MessageLookupByLibrary.simpleMessage("Volgende"), + "post__create_photo" : MessageLookupByLibrary.simpleMessage("Foto"), + "post__create_video" : MessageLookupByLibrary.simpleMessage("Video"), + "post__disable_post_comments" : MessageLookupByLibrary.simpleMessage("Commentaren uitschakelen"), + "post__edit_save" : MessageLookupByLibrary.simpleMessage("Bewaren"), + "post__edit_title" : MessageLookupByLibrary.simpleMessage("Wijzig bericht"), + "post__enable_post_comments" : MessageLookupByLibrary.simpleMessage("Commentaren inschakelen"), + "post__have_not_shared_anything" : MessageLookupByLibrary.simpleMessage("Je hebt nog niets gedeeld."), + "post__is_closed" : MessageLookupByLibrary.simpleMessage("Gesloten bericht"), + "post__my_circles" : MessageLookupByLibrary.simpleMessage("Mijn cirkels"), + "post__my_circles_desc" : MessageLookupByLibrary.simpleMessage("Deel het bericht met één of meer van je cirkels."), + "post__no_circles_for" : m29, + "post__open_post" : MessageLookupByLibrary.simpleMessage("Open bericht"), + "post__post_closed" : MessageLookupByLibrary.simpleMessage("Bericht gesloten "), + "post__post_opened" : MessageLookupByLibrary.simpleMessage("Bericht geopend"), + "post__post_reactions_title" : MessageLookupByLibrary.simpleMessage("Reageer"), + "post__profile_counts_follower" : MessageLookupByLibrary.simpleMessage(" Volger"), + "post__profile_counts_followers" : MessageLookupByLibrary.simpleMessage(" Volgers"), + "post__profile_counts_following" : MessageLookupByLibrary.simpleMessage(" Aan het volgen"), + "post__profile_counts_post" : MessageLookupByLibrary.simpleMessage(" Bericht"), + "post__profile_counts_posts" : MessageLookupByLibrary.simpleMessage(" Berichten"), + "post__reaction_list_tap_retry" : MessageLookupByLibrary.simpleMessage("Tik om opnieuw reacties te laden."), + "post__search_circles" : MessageLookupByLibrary.simpleMessage("Doorzoek cirkels..."), + "post__share" : MessageLookupByLibrary.simpleMessage("Deel"), + "post__share_community" : MessageLookupByLibrary.simpleMessage("Deel"), + "post__share_community_desc" : MessageLookupByLibrary.simpleMessage("Deel het bericht met een community waar je lid van bent."), + "post__share_community_title" : MessageLookupByLibrary.simpleMessage("Een community"), + "post__share_to" : MessageLookupByLibrary.simpleMessage("Delen met"), + "post__share_to_circles" : MessageLookupByLibrary.simpleMessage("Deel naar kringen"), + "post__share_to_community" : MessageLookupByLibrary.simpleMessage("Deel met community"), + "post__shared_privately_on" : MessageLookupByLibrary.simpleMessage("Privé gedeeld op"), + "post__sharing_post_to" : MessageLookupByLibrary.simpleMessage("Deel bericht met"), + "post__text_copied" : MessageLookupByLibrary.simpleMessage("Tekst gekopieerd!"), + "post__time_short_days" : MessageLookupByLibrary.simpleMessage("d"), + "post__time_short_hours" : MessageLookupByLibrary.simpleMessage("u"), + "post__time_short_minutes" : MessageLookupByLibrary.simpleMessage("m"), + "post__time_short_now_text" : MessageLookupByLibrary.simpleMessage("nu"), + "post__time_short_one_day" : MessageLookupByLibrary.simpleMessage("1d"), + "post__time_short_one_hour" : MessageLookupByLibrary.simpleMessage("1u"), + "post__time_short_one_minute" : MessageLookupByLibrary.simpleMessage("1m"), + "post__time_short_one_week" : MessageLookupByLibrary.simpleMessage("1w"), + "post__time_short_one_year" : MessageLookupByLibrary.simpleMessage("1jr"), + "post__time_short_seconds" : MessageLookupByLibrary.simpleMessage("s"), + "post__time_short_weeks" : MessageLookupByLibrary.simpleMessage("w"), + "post__time_short_years" : MessageLookupByLibrary.simpleMessage("j"), + "post__timeline_posts_all_loaded" : MessageLookupByLibrary.simpleMessage("🎉 Alle berichten geladen"), + "post__timeline_posts_default_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Probeer de tijdlijn te vernieuwen."), + "post__timeline_posts_default_drhoo_title" : MessageLookupByLibrary.simpleMessage("Er klopt iets niet."), + "post__timeline_posts_failed_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Probeer het over enkele seconden opnieuw"), + "post__timeline_posts_failed_drhoo_title" : MessageLookupByLibrary.simpleMessage("Kan je tijdlijn niet laden."), + "post__timeline_posts_no_more_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Volg gebruikers of word lid van een community om aan de slag te gaan!"), + "post__timeline_posts_refresh_posts" : MessageLookupByLibrary.simpleMessage("Berichten vernieuwen"), + "post__timeline_posts_refreshing_drhoo_title" : MessageLookupByLibrary.simpleMessage("Nog even volhouden!"), + "post__trending_posts_no_trending_posts" : MessageLookupByLibrary.simpleMessage("Er zijn geen populaire berichten. Probeer opnieuw over een paar seconden."), + "post__trending_posts_refresh" : MessageLookupByLibrary.simpleMessage("Verversen"), + "post__trending_posts_title" : MessageLookupByLibrary.simpleMessage("Populaire berichten"), + "post__user_has_not_shared_anything" : m30, + "post__usernames_circles" : m31, + "post__world_circle_name" : MessageLookupByLibrary.simpleMessage("Wereld"), + "post__you_shared_with" : MessageLookupByLibrary.simpleMessage("Je hebt gedeeld met"), + "post_body_media__unsupported" : MessageLookupByLibrary.simpleMessage("Niet-ondersteund mediatype"), + "post_uploader__cancelled" : MessageLookupByLibrary.simpleMessage("Geannuleerd!"), + "post_uploader__cancelling" : MessageLookupByLibrary.simpleMessage("Bezig met annuleren"), + "post_uploader__compressing_media" : MessageLookupByLibrary.simpleMessage("Media comprimeren..."), + "post_uploader__creating_post" : MessageLookupByLibrary.simpleMessage("Bericht maken..."), + "post_uploader__generic_upload_failed" : MessageLookupByLibrary.simpleMessage("Upload mislukt"), + "post_uploader__processing" : MessageLookupByLibrary.simpleMessage("Bericht verwerken..."), + "post_uploader__publishing" : MessageLookupByLibrary.simpleMessage("Bericht publiceren..."), + "post_uploader__success" : MessageLookupByLibrary.simpleMessage("Success!"), + "post_uploader__uploading_media" : MessageLookupByLibrary.simpleMessage("Media uploaden..."), + "posts_stream__all_loaded" : MessageLookupByLibrary.simpleMessage("🎉 Alle berichten geladen"), + "posts_stream__empty_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Probeer over een paar seconden te verversen."), + "posts_stream__failed_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Probeer het over enkele seconden opnieuw"), + "posts_stream__failed_drhoo_title" : MessageLookupByLibrary.simpleMessage("Kan de stream niet laden."), + "posts_stream__refreshing_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Je tijdlijn wordt geladen."), + "posts_stream__refreshing_drhoo_title" : MessageLookupByLibrary.simpleMessage("Nog even volhouden!"), + "posts_stream__status_tile_empty" : MessageLookupByLibrary.simpleMessage("Geen berichten gevonden"), + "posts_stream__status_tile_no_more_to_load" : MessageLookupByLibrary.simpleMessage("🎉 Alle berichten geladen"), + "user__add_account_done" : MessageLookupByLibrary.simpleMessage("Voltooid"), + "user__add_account_save" : MessageLookupByLibrary.simpleMessage("Opslaan"), + "user__add_account_success" : MessageLookupByLibrary.simpleMessage("Geslaagd"), + "user__add_account_to_lists" : MessageLookupByLibrary.simpleMessage("Account toevoegen aan lijst"), + "user__add_account_update_account_lists" : MessageLookupByLibrary.simpleMessage("Accountlijsten bijwerken"), + "user__add_account_update_lists" : MessageLookupByLibrary.simpleMessage("Lijsten bijwerken"), + "user__billion_postfix" : MessageLookupByLibrary.simpleMessage("b"), + "user__block_user" : MessageLookupByLibrary.simpleMessage("Blokkeer Gebruiker"), + "user__change_email_email_text" : MessageLookupByLibrary.simpleMessage("E-mail"), + "user__change_email_error" : MessageLookupByLibrary.simpleMessage("E-mail is al geregistreerd"), + "user__change_email_hint_text" : MessageLookupByLibrary.simpleMessage("Voer je nieuwe e-mail in"), + "user__change_email_save" : MessageLookupByLibrary.simpleMessage("Bewaren"), + "user__change_email_success_info" : MessageLookupByLibrary.simpleMessage("We hebben een bevestigingslink naar je nieuwe e-mailadres gestuurd, klik erop om je nieuwe e-mailadres te verifiëren"), + "user__change_email_title" : MessageLookupByLibrary.simpleMessage("Verander e-mail"), + "user__circle_name_empty_error" : MessageLookupByLibrary.simpleMessage("Het veld met de naam van de cirkel mag niet leeg zijn."), + "user__circle_name_range_error" : m33, + "user__circle_peoples_count" : m34, + "user__clear_app_preferences_cleared_successfully" : MessageLookupByLibrary.simpleMessage("Voorkeuren succesvol gewist"), + "user__clear_app_preferences_desc" : MessageLookupByLibrary.simpleMessage("Verwijder de applicatie voorkeuren. Momenteel is dit alleen de voorkeursvolgorde van commentaren."), + "user__clear_app_preferences_error" : MessageLookupByLibrary.simpleMessage("Kan voorkeuren niet wissen"), + "user__clear_app_preferences_title" : MessageLookupByLibrary.simpleMessage("Verwijder voorkeuren"), + "user__clear_application_cache_desc" : MessageLookupByLibrary.simpleMessage("Verwijder ge-cache-te berichten, accounts, afbeeldingen en meer."), + "user__clear_application_cache_failure" : MessageLookupByLibrary.simpleMessage("Kon cache niet wissen"), + "user__clear_application_cache_success" : MessageLookupByLibrary.simpleMessage("Cache succesvol gewist"), + "user__clear_application_cache_text" : MessageLookupByLibrary.simpleMessage("Cache wissen"), + "user__confirm_block_user_blocked" : MessageLookupByLibrary.simpleMessage("Gebruiker geblokkeerd."), + "user__confirm_block_user_info" : MessageLookupByLibrary.simpleMessage("Je ziet elkaars posts niet, noch ben je instaat om op welke wijze dan ook interactie met elkaar te hebben."), + "user__confirm_block_user_no" : MessageLookupByLibrary.simpleMessage("Nee"), + "user__confirm_block_user_question" : m35, + "user__confirm_block_user_title" : MessageLookupByLibrary.simpleMessage("Bevestiging"), + "user__confirm_block_user_yes" : MessageLookupByLibrary.simpleMessage("Ja"), + "user__confirm_connection_add_connection" : MessageLookupByLibrary.simpleMessage("Voeg connectie toe aan de cirkel"), + "user__confirm_connection_confirm_text" : MessageLookupByLibrary.simpleMessage("Bevestig"), + "user__confirm_connection_connection_confirmed" : MessageLookupByLibrary.simpleMessage("Connectie bevestigd"), + "user__confirm_connection_with" : m36, + "user__confirm_guidelines_reject_chat_community" : MessageLookupByLibrary.simpleMessage("Chat met de community."), + "user__confirm_guidelines_reject_chat_immediately" : MessageLookupByLibrary.simpleMessage("Start nu een chat."), + "user__confirm_guidelines_reject_chat_with_team" : MessageLookupByLibrary.simpleMessage("Met het team chatten."), + "user__confirm_guidelines_reject_delete_account" : MessageLookupByLibrary.simpleMessage("Verwijder account"), + "user__confirm_guidelines_reject_go_back" : MessageLookupByLibrary.simpleMessage("Terug"), + "user__confirm_guidelines_reject_info" : MessageLookupByLibrary.simpleMessage("Je kunt Okuna niet gebruiken totdat je de richtlijnen accepteert."), + "user__confirm_guidelines_reject_join_slack" : MessageLookupByLibrary.simpleMessage("Neem deel aan het Slack-kanaal."), + "user__confirm_guidelines_reject_title" : MessageLookupByLibrary.simpleMessage("Afwijzing van richtlijnen"), + "user__connect_to_user_add_connection" : MessageLookupByLibrary.simpleMessage("Voeg connectie toe aan de cirkel"), + "user__connect_to_user_connect_with_username" : m37, + "user__connect_to_user_done" : MessageLookupByLibrary.simpleMessage("Voltooid"), + "user__connect_to_user_request_sent" : MessageLookupByLibrary.simpleMessage("Uitnodiging verzonden"), + "user__connection_circle_edit" : MessageLookupByLibrary.simpleMessage("Wijzig"), + "user__connection_pending" : MessageLookupByLibrary.simpleMessage("In behandeling"), + "user__connections_circle_delete" : MessageLookupByLibrary.simpleMessage("Verwijderen"), + "user__connections_header_circle_desc" : MessageLookupByLibrary.simpleMessage("De cirkel waar je all je connecties aan toegevoegd worden."), + "user__connections_header_users" : MessageLookupByLibrary.simpleMessage("Gebruikers"), + "user__delete_account_confirmation_desc" : MessageLookupByLibrary.simpleMessage("Weet je zeker dat je je account wilt verwijderen?"), + "user__delete_account_confirmation_desc_info" : MessageLookupByLibrary.simpleMessage("Dit is een permanente actie en kan niet ongedaan worden gemaakt."), + "user__delete_account_confirmation_goodbye" : MessageLookupByLibrary.simpleMessage("Tot ziens 😢"), + "user__delete_account_confirmation_no" : MessageLookupByLibrary.simpleMessage("Nee"), + "user__delete_account_confirmation_title" : MessageLookupByLibrary.simpleMessage("Bevestiging"), + "user__delete_account_confirmation_yes" : MessageLookupByLibrary.simpleMessage("Ja"), + "user__delete_account_current_pwd" : MessageLookupByLibrary.simpleMessage("Huidige wachtwoord"), + "user__delete_account_current_pwd_hint" : MessageLookupByLibrary.simpleMessage("Voer je huidige wachtwoord in"), + "user__delete_account_next" : MessageLookupByLibrary.simpleMessage("Volgende"), + "user__delete_account_title" : MessageLookupByLibrary.simpleMessage("Verwijder account"), + "user__disconnect_from_user" : m38, + "user__disconnect_from_user_success" : MessageLookupByLibrary.simpleMessage("Verbinding met succes verbroken"), + "user__edit_profile_bio" : MessageLookupByLibrary.simpleMessage("Bio"), + "user__edit_profile_community_posts" : MessageLookupByLibrary.simpleMessage("Community berichten"), + "user__edit_profile_delete" : MessageLookupByLibrary.simpleMessage("Verwijderen"), + "user__edit_profile_followers_count" : MessageLookupByLibrary.simpleMessage("Aantal volgers"), + "user__edit_profile_location" : MessageLookupByLibrary.simpleMessage("Locatie"), + "user__edit_profile_name" : MessageLookupByLibrary.simpleMessage("Naam"), + "user__edit_profile_pick_image" : MessageLookupByLibrary.simpleMessage("Kies afbeelding"), + "user__edit_profile_pick_image_error_too_large" : m39, + "user__edit_profile_save_text" : MessageLookupByLibrary.simpleMessage("Opslaan"), + "user__edit_profile_title" : MessageLookupByLibrary.simpleMessage("Wijzig profiel"), + "user__edit_profile_url" : MessageLookupByLibrary.simpleMessage("URL"), + "user__edit_profile_user_name_taken" : m40, + "user__edit_profile_username" : MessageLookupByLibrary.simpleMessage("Gebruikersnaam"), + "user__email_verification_error" : MessageLookupByLibrary.simpleMessage("Oeps! Je token was niet geldig of verlopen, probeer het opnieuw"), + "user__email_verification_successful" : MessageLookupByLibrary.simpleMessage("Hoera! Je e-mailadres is nu geverifieerd"), + "user__emoji_field_none_selected" : MessageLookupByLibrary.simpleMessage("Geen emoji geselecteerd"), + "user__emoji_search_none_found" : m41, + "user__follow_button_follow_text" : MessageLookupByLibrary.simpleMessage("Volg"), + "user__follow_button_unfollow_text" : MessageLookupByLibrary.simpleMessage("Ontvolgen"), + "user__follow_lists_no_list_found" : MessageLookupByLibrary.simpleMessage("Geen lijst gevonden."), + "user__follow_lists_no_list_found_for" : m42, + "user__follow_lists_search_for" : MessageLookupByLibrary.simpleMessage("Naar een lijst zoeken..."), + "user__follow_lists_title" : MessageLookupByLibrary.simpleMessage("Mijn lijsten"), + "user__follower_plural" : MessageLookupByLibrary.simpleMessage("volgers"), + "user__follower_singular" : MessageLookupByLibrary.simpleMessage("volger"), + "user__followers_title" : MessageLookupByLibrary.simpleMessage("Volgers"), + "user__following_resource_name" : MessageLookupByLibrary.simpleMessage("gebruikers die ik volg"), + "user__following_text" : MessageLookupByLibrary.simpleMessage("Aan het volgen"), + "user__follows_list_accounts_count" : m43, + "user__follows_list_edit" : MessageLookupByLibrary.simpleMessage("Wijzig"), + "user__follows_list_header_title" : MessageLookupByLibrary.simpleMessage("Gebruikers"), + "user__follows_lists_account" : MessageLookupByLibrary.simpleMessage("1 Account"), + "user__follows_lists_accounts" : m44, + "user__groups_see_all" : m45, + "user__guidelines_accept" : MessageLookupByLibrary.simpleMessage("Accepteren"), + "user__guidelines_desc" : MessageLookupByLibrary.simpleMessage("Neem alstublieft een moment om onze richtlijnen te lezen en te aanvaarden."), + "user__guidelines_reject" : MessageLookupByLibrary.simpleMessage("Afwijzen"), + "user__invite" : MessageLookupByLibrary.simpleMessage("Uitnodigen"), + "user__invite_member" : MessageLookupByLibrary.simpleMessage("Lid"), + "user__invite_someone_message" : m46, + "user__invites_accepted_group_item_name" : MessageLookupByLibrary.simpleMessage("geaccepteerde uitnodiging"), + "user__invites_accepted_group_name" : MessageLookupByLibrary.simpleMessage("geaccepteerde uitnodigingen"), + "user__invites_accepted_title" : MessageLookupByLibrary.simpleMessage("Geaccepteerd"), + "user__invites_create_create" : MessageLookupByLibrary.simpleMessage("Aanmaken"), + "user__invites_create_create_title" : MessageLookupByLibrary.simpleMessage("Een uitnodiging aanmaken"), + "user__invites_create_edit_title" : MessageLookupByLibrary.simpleMessage("Wijzig een uitnodiging"), + "user__invites_create_name_hint" : MessageLookupByLibrary.simpleMessage("bijv. Pietje Puk"), + "user__invites_create_name_title" : MessageLookupByLibrary.simpleMessage("Bijnaam"), + "user__invites_create_save" : MessageLookupByLibrary.simpleMessage("Opslaan"), + "user__invites_delete" : MessageLookupByLibrary.simpleMessage("Verwijderen"), + "user__invites_edit_text" : MessageLookupByLibrary.simpleMessage("Bewerken"), + "user__invites_email_hint" : MessageLookupByLibrary.simpleMessage("bijvoorbeeld v.vangogh@kwasten.nl"), + "user__invites_email_invite_text" : MessageLookupByLibrary.simpleMessage("E-Mail uitnodiging"), + "user__invites_email_send_text" : MessageLookupByLibrary.simpleMessage("Verzenden"), + "user__invites_email_sent_text" : MessageLookupByLibrary.simpleMessage("Uitnodigings-mail verzonden"), + "user__invites_email_text" : MessageLookupByLibrary.simpleMessage("E-mail"), + "user__invites_invite_a_friend" : MessageLookupByLibrary.simpleMessage("Nodig een vriend uit"), + "user__invites_invite_text" : MessageLookupByLibrary.simpleMessage("Uitnodigen"), + "user__invites_joined_with" : m47, + "user__invites_none_left" : MessageLookupByLibrary.simpleMessage("Je hebt geen uitnodigingen meer."), + "user__invites_none_used" : MessageLookupByLibrary.simpleMessage("Het lijkt erop dat je geen uitnodiging hebt gebruikt."), + "user__invites_pending" : MessageLookupByLibrary.simpleMessage("In behandeling"), + "user__invites_pending_email" : m48, + "user__invites_pending_group_item_name" : MessageLookupByLibrary.simpleMessage("openstaande uitnodiging"), + "user__invites_pending_group_name" : MessageLookupByLibrary.simpleMessage("openstaande uitnodigingen"), + "user__invites_refresh" : MessageLookupByLibrary.simpleMessage("Verversen"), + "user__invites_share_email" : MessageLookupByLibrary.simpleMessage("Deel je uitnodiging via email"), + "user__invites_share_email_desc" : MessageLookupByLibrary.simpleMessage("Uit jouw naam sturen we een uitnodigings-mail met instructies"), + "user__invites_share_yourself" : MessageLookupByLibrary.simpleMessage("Deel zelf je uitnodiging"), + "user__invites_share_yourself_desc" : MessageLookupByLibrary.simpleMessage("Kies uit berichten apps, etc."), + "user__invites_title" : MessageLookupByLibrary.simpleMessage("Mijn uitnodigingen"), + "user__language_settings_save" : MessageLookupByLibrary.simpleMessage("Opslaan"), + "user__language_settings_saved_success" : MessageLookupByLibrary.simpleMessage("Taal is succesvol gewijzigd"), + "user__language_settings_title" : MessageLookupByLibrary.simpleMessage("Taalinstellingen"), + "user__list_name_empty_error" : MessageLookupByLibrary.simpleMessage("Het veld met de naam van de lijst mag niet leeg zijn."), + "user__list_name_range_error" : m49, + "user__million_postfix" : MessageLookupByLibrary.simpleMessage("M"), + "user__profile_action_cancel_connection" : MessageLookupByLibrary.simpleMessage("Annuleer verzoek tot connectie"), + "user__profile_action_deny_connection" : MessageLookupByLibrary.simpleMessage("Negeer het verzoek tot connectie"), + "user__profile_action_user_blocked" : MessageLookupByLibrary.simpleMessage("Gebruiker geblokkeerd"), + "user__profile_action_user_unblocked" : MessageLookupByLibrary.simpleMessage("Gebruiker gedeblokkeerd"), + "user__profile_bio_length_error" : m50, + "user__profile_location_length_error" : m51, + "user__profile_url_invalid_error" : MessageLookupByLibrary.simpleMessage("Geef een geldige URL op."), + "user__remove_account_from_list" : MessageLookupByLibrary.simpleMessage("Account uit de lijst verwijderen"), + "user__remove_account_from_list_success" : MessageLookupByLibrary.simpleMessage("Geslaagd"), + "user__save_connection_circle_color_hint" : MessageLookupByLibrary.simpleMessage("(Klik om te wijzigen)"), + "user__save_connection_circle_color_name" : MessageLookupByLibrary.simpleMessage("Kleur"), + "user__save_connection_circle_create" : MessageLookupByLibrary.simpleMessage("Maak een cirkel"), + "user__save_connection_circle_edit" : MessageLookupByLibrary.simpleMessage("Wijzig de cirkel"), + "user__save_connection_circle_hint" : MessageLookupByLibrary.simpleMessage("bijv. vrienden, familie, werk."), + "user__save_connection_circle_name" : MessageLookupByLibrary.simpleMessage("Naam"), + "user__save_connection_circle_name_taken" : m52, + "user__save_connection_circle_save" : MessageLookupByLibrary.simpleMessage("Opslaan"), + "user__save_connection_circle_users" : MessageLookupByLibrary.simpleMessage("Gebruikers"), + "user__save_follows_list_create" : MessageLookupByLibrary.simpleMessage("Maak een lijst aan"), + "user__save_follows_list_edit" : MessageLookupByLibrary.simpleMessage("Bewerk lijst"), + "user__save_follows_list_emoji" : MessageLookupByLibrary.simpleMessage("Emoji"), + "user__save_follows_list_emoji_required_error" : MessageLookupByLibrary.simpleMessage("Een emoji is vereist"), + "user__save_follows_list_hint_text" : MessageLookupByLibrary.simpleMessage("bijv. Reizen, Fotografie"), + "user__save_follows_list_name" : MessageLookupByLibrary.simpleMessage("Naam"), + "user__save_follows_list_name_taken" : m53, + "user__save_follows_list_save" : MessageLookupByLibrary.simpleMessage("Opslaan"), + "user__save_follows_list_users" : MessageLookupByLibrary.simpleMessage("Gebruikers"), + "user__thousand_postfix" : MessageLookupByLibrary.simpleMessage("k"), + "user__tile_delete" : MessageLookupByLibrary.simpleMessage("Verwijderen"), + "user__tile_following" : MessageLookupByLibrary.simpleMessage(" · Mijn volgers"), + "user__timeline_filters_apply_all" : MessageLookupByLibrary.simpleMessage("Filters toepassen"), + "user__timeline_filters_circles" : MessageLookupByLibrary.simpleMessage("Kringen"), + "user__timeline_filters_clear_all" : MessageLookupByLibrary.simpleMessage("Wis alles"), + "user__timeline_filters_lists" : MessageLookupByLibrary.simpleMessage("Lijsten"), + "user__timeline_filters_no_match" : m54, + "user__timeline_filters_search_desc" : MessageLookupByLibrary.simpleMessage("Zoek naar cirkels en lijsten..."), + "user__timeline_filters_title" : MessageLookupByLibrary.simpleMessage("Tijdlijn filters"), + "user__translate_see_translation" : MessageLookupByLibrary.simpleMessage("Bekijk vertaling"), + "user__translate_show_original" : MessageLookupByLibrary.simpleMessage("Toon het origineel"), + "user__unblock_user" : MessageLookupByLibrary.simpleMessage("Gebruiker deblokkeren"), + "user__uninvite" : MessageLookupByLibrary.simpleMessage("Uitnodiging annuleren"), + "user__update_connection_circle_save" : MessageLookupByLibrary.simpleMessage("Opslaan"), + "user__update_connection_circle_updated" : MessageLookupByLibrary.simpleMessage("Contact bijgewerkt"), + "user__update_connection_circles_title" : MessageLookupByLibrary.simpleMessage("Connectie cirkels bijwerken"), + "user_search__cancel" : MessageLookupByLibrary.simpleMessage("Annuleren"), + "user_search__communities" : MessageLookupByLibrary.simpleMessage("Communities"), + "user_search__list_no_results_found" : m55, + "user_search__list_refresh_text" : MessageLookupByLibrary.simpleMessage("Ververs"), + "user_search__list_retry" : MessageLookupByLibrary.simpleMessage("Tik om opnieuw te proberen."), + "user_search__list_search_text" : m56, + "user_search__no_communities_for" : m57, + "user_search__no_results_for" : m58, + "user_search__no_users_for" : m59, + "user_search__search_text" : MessageLookupByLibrary.simpleMessage("Zoeken..."), + "user_search__searching_for" : m60, + "user_search__users" : MessageLookupByLibrary.simpleMessage("Gebruikers"), + "video_picker__from_camera" : MessageLookupByLibrary.simpleMessage("Van camera"), + "video_picker__from_gallery" : MessageLookupByLibrary.simpleMessage("Uit Galerij") + }; +} diff --git a/lib/locale/messages_pt-BR.dart b/lib/locale/messages_pt-BR.dart index ae0ef0f01..995e7cc0a 100644 --- a/lib/locale/messages_pt-BR.dart +++ b/lib/locale/messages_pt-BR.dart @@ -3,22 +3,21 @@ // messages from the main program should be duplicated here with the same // function name. -// ignore_for_file: unnecessary_brace_in_string_interps +// Ignore issues from commonly used lints in this file. +// ignore_for_file:unnecessary_brace_in_string_interps, unnecessary_new +// ignore_for_file:prefer_single_quotes,comment_references, directives_ordering +// ignore_for_file:annotate_overrides,prefer_generic_function_type_aliases +// ignore_for_file:unused_import, file_names import 'package:intl/intl.dart'; import 'package:intl/message_lookup_by_library.dart'; -// ignore: unnecessary_new final messages = new MessageLookup(); -// ignore: unused_element -final _keepAnalysisHappy = Intl.defaultLocale; - -// ignore: non_constant_identifier_names -typedef MessageIfAbsent(String message_str, List args); +typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { - get localeName => 'pt_BR'; + String get localeName => 'pt_BR'; static m0(minLength, maxLength) => "(${minLength}-${maxLength} caracteres)"; @@ -50,7 +49,7 @@ class MessageLookup extends MessageLookupByLibrary { static m14(maxLength) => "As regras não podem ser maiores que ${maxLength} caracteres."; - static m15(takenName) => "O nome de comunidade \'${takenName}\' já está em uso"; + static m15(takenName) => "O nome \'${takenName}\' já está sendo usado por outra comunidade"; static m16(maxLength) => "O título não pode ser maior que ${maxLength} caracteres."; @@ -58,94 +57,114 @@ class MessageLookup extends MessageLookupByLibrary { static m18(currentUserLanguage) => "Idioma (${currentUserLanguage})"; - static m19(resourceCount, resourceName) => "Ver todas as ${resourceCount} ${resourceName}"; + static m19(limit) => "Arquivo muito grande (limite: ${limit} MB)"; + + static m20(resourceCount, resourceName) => "Ver todas as ${resourceCount} ${resourceName}"; + + static m21(postCommentText) => "[name] [username] também comentou: ${postCommentText}"; - static m20(postCommentText) => "[name] [username] também comentou: ${postCommentText}"; + static m22(postCommentText) => "[name] [username] comentou no seu post: ${postCommentText}"; - static m21(postCommentText) => "[name] [username] comentou no seu post: ${postCommentText}"; + static m23(postCommentText) => "[name] [username] também respondeu: ${postCommentText}"; - static m22(postCommentText) => "[name] [username] também respondeu: ${postCommentText}"; + static m24(postCommentText) => "[name] [username] respondeu: ${postCommentText}"; - static m23(postCommentText) => "[name] [username] respondeu: ${postCommentText}"; + static m25(postCommentText) => "[name] [username] mencionou você em um comentário: ${postCommentText}"; - static m24(postCommentText) => "[name] [username] mencionou você em um comentário: ${postCommentText}"; + static m26(communityName) => "[name] [username] convidou você para se juntar à comunidade /c/${communityName}."; - static m25(communityName) => "[name] [username] convidou você para se juntar à comunidade /c/${communityName}."; + static m27(maxLength) => "Um comentário não pode ter mais de ${maxLength} caracteres."; - static m26(maxLength) => "Um comentário não pode ter mais de ${maxLength} caracteres."; + static m28(commentsCount) => "Ver todos os comentários (${commentsCount})"; - static m27(commentsCount) => "Ver todos os ${commentsCount} comentários"; + static m29(circlesSearchQuery) => "Nenhum círculo encontrado para \'${circlesSearchQuery}\'."; - static m28(circlesSearchQuery) => "\'Nenhum círculo encontrado para \'${circlesSearchQuery}\'."; + static m30(name) => "${name} ainda não compartilhou nada."; - static m29(name) => "${name} ainda não compartilhou nada."; + static m31(postCreatorUsername) => "círculos de @${postCreatorUsername}"; - static m30(postCreatorUsername) => "círculos de @${postCreatorUsername}"; + static m32(description) => "Failed to preview link with website error: ${description}"; - static m31(maxLength) => "O nome do círculo não deve ter mais de ${maxLength} caracteres."; + static m33(maxLength) => "O nome do círculo não deve ter mais de ${maxLength} caracteres."; - static m32(prettyUsersCount) => "${prettyUsersCount} pessoas"; + static m34(prettyUsersCount) => "${prettyUsersCount} pessoas"; - static m33(username) => "Tem certeza de que deseja bloquear @${username}?"; + static m35(username) => "Tem certeza de que deseja bloquear @${username}?"; - static m34(userName) => "Confirmar a conexão com ${userName}"; + static m36(userName) => "Confirmar a conexão com ${userName}"; - static m35(userName) => "Conectar-se com ${userName}"; + static m37(userName) => "Conectar-se com ${userName}"; - static m36(userName) => "Desconectar-se de ${userName}"; + static m38(userName) => "Desconectar-se de ${userName}"; - static m37(limit) => "Imagem muito grande (limite: ${limit} MB)"; + static m39(limit) => "Imagem muito grande (limite: ${limit} MB)"; - static m38(username) => "O nome de usuário @${username} já está em uso"; + static m40(username) => "O nome de usuário @${username} já está em uso"; - static m39(searchQuery) => "Nenhum emoji encontrado para \'${searchQuery}\'."; + static m41(searchQuery) => "Nenhum emoji encontrado para \'${searchQuery}\'."; - static m40(searchQuery) => "Nenhuma lista encontrada para \'${searchQuery}\'"; + static m42(searchQuery) => "Nenhuma lista encontrada para \'${searchQuery}\'"; - static m41(prettyUsersCount) => "${prettyUsersCount} contas"; + static m43(prettyUsersCount) => "${prettyUsersCount} contas"; - static m42(prettyUsersCount) => "${prettyUsersCount} Contas"; + static m44(prettyUsersCount) => "${prettyUsersCount} Contas"; - static m43(groupName) => "Ver ${groupName}"; + static m45(groupName) => "Ver ${groupName}"; - static m44(iosLink, androidLink, inviteLink) => "Ei! Eu gostaria de convidar você para a Okuna. Primeiro, baixe o app no iTunes (${iosLink}) ou na Play Store (${androidLink}). Depois, copie e cole o seguinte link de convite no formulário de criação de conta no app da Okuna: ${inviteLink}"; + static m46(iosLink, androidLink, inviteLink) => "Ei! Eu gostaria de convidar você para a Okuna. Primeiro, baixe o app no iTunes (${iosLink}) ou na Play Store (${androidLink}). Depois, copie e cole o seguinte link de convite no formulário de criação de conta no app da Okuna: ${inviteLink}"; - static m45(username) => "Entrou com o nome de usuário @${username}"; + static m47(username) => "Entrou com o nome de usuário @${username}"; - static m46(email) => "Pendente, convite enviado para o email ${email}"; + static m48(email) => "Pendente, convite enviado para o email ${email}"; - static m47(maxLength) => "O nome da lista não deve ter mais de ${maxLength} caracteres."; + static m49(maxLength) => "O nome da lista não deve ter mais de ${maxLength} caracteres."; - static m48(maxLength) => "A bio não pode ser maior que ${maxLength} caracteres."; + static m50(maxLength) => "A bio não pode ser maior que ${maxLength} caracteres."; - static m49(maxLength) => "O local não pode ser maior que ${maxLength} caracteres."; + static m51(maxLength) => "O local não pode ser maior que ${maxLength} caracteres."; - static m50(takenConnectionsCircleName) => "O nome de círculo \'${takenConnectionsCircleName}\' já está em uso"; + static m52(takenConnectionsCircleName) => "O nome de círculo \'${takenConnectionsCircleName}\' já está em uso"; - static m51(listName) => "O nome de lista \'${listName}\' já está sendo usado"; + static m53(listName) => "O nome de lista \'${listName}\' já está sendo usado"; - static m52(searchQuery) => "Nada encontrado para \'${searchQuery}\'."; + static m54(searchQuery) => "Nada encontrado para \'${searchQuery}\'."; - static m53(resourcePluralName) => "Sem ${resourcePluralName}."; + static m55(resourcePluralName) => "Sem ${resourcePluralName}."; - static m54(resourcePluralName) => "Pesquisar ${resourcePluralName} ..."; + static m56(resourcePluralName) => "Pesquisar ${resourcePluralName} ..."; - static m55(searchQuery) => "Nenhuma comunidade encontrada para \'${searchQuery}\'."; + static m57(searchQuery) => "Nenhuma comunidade encontrada para \'${searchQuery}\'."; - static m56(searchQuery) => "Nenhum resultado para \'${searchQuery}\'."; + static m58(searchQuery) => "Nenhum resultado para \'${searchQuery}\'."; - static m57(searchQuery) => "Nenhum usuário encontrado para \'${searchQuery}\'."; + static m59(searchQuery) => "Nenhum usuário encontrado para \'${searchQuery}\'."; - static m58(searchQuery) => "Procurando por \'${searchQuery}\'"; + static m60(searchQuery) => "Procurando por \'${searchQuery}\'"; final messages = _notInlinedMessages(_notInlinedMessages); static _notInlinedMessages(_) => { + "application_settings__comment_sort_newest_first" : MessageLookupByLibrary.simpleMessage("Mais recentes"), + "application_settings__comment_sort_oldest_first" : MessageLookupByLibrary.simpleMessage("Mais antigos"), + "application_settings__link_previews" : MessageLookupByLibrary.simpleMessage("Link previews"), + "application_settings__link_previews_autoplay_always" : MessageLookupByLibrary.simpleMessage("Always"), + "application_settings__link_previews_autoplay_never" : MessageLookupByLibrary.simpleMessage("Never"), + "application_settings__link_previews_autoplay_wifi_only" : MessageLookupByLibrary.simpleMessage("Wifi only"), + "application_settings__link_previews_show" : MessageLookupByLibrary.simpleMessage("Show"), + "application_settings__tap_to_change" : MessageLookupByLibrary.simpleMessage("(Toque para alterar)"), + "application_settings__videos" : MessageLookupByLibrary.simpleMessage("Vídeos"), + "application_settings__videos_autoplay" : MessageLookupByLibrary.simpleMessage("Reprodução automática"), + "application_settings__videos_autoplay_always" : MessageLookupByLibrary.simpleMessage("Sempre"), + "application_settings__videos_autoplay_never" : MessageLookupByLibrary.simpleMessage("Nunca"), + "application_settings__videos_autoplay_wifi_only" : MessageLookupByLibrary.simpleMessage("Somente Wi-Fi"), + "application_settings__videos_sound" : MessageLookupByLibrary.simpleMessage("Som"), + "application_settings__videos_sound_disabled" : MessageLookupByLibrary.simpleMessage("Desabilitado"), + "application_settings__videos_sound_enabled" : MessageLookupByLibrary.simpleMessage("Habilitado"), "auth__change_password_current_pwd" : MessageLookupByLibrary.simpleMessage("Senha atual"), - "auth__change_password_current_pwd_hint" : MessageLookupByLibrary.simpleMessage("Digite a sua senha atual"), + "auth__change_password_current_pwd_hint" : MessageLookupByLibrary.simpleMessage("Digite sua senha atual"), "auth__change_password_current_pwd_incorrect" : MessageLookupByLibrary.simpleMessage("A senha inserida está incorreta"), "auth__change_password_new_pwd" : MessageLookupByLibrary.simpleMessage("Nova senha"), "auth__change_password_new_pwd_error" : MessageLookupByLibrary.simpleMessage("Por favor, certifique-se de que a senha tenha entre 10 e 100 caracteres"), - "auth__change_password_new_pwd_hint" : MessageLookupByLibrary.simpleMessage("Digite a sua nova senha"), + "auth__change_password_new_pwd_hint" : MessageLookupByLibrary.simpleMessage("Digite sua nova senha"), "auth__change_password_save_success" : MessageLookupByLibrary.simpleMessage("Tudo certo! Sua senha foi atualizada"), "auth__change_password_save_text" : MessageLookupByLibrary.simpleMessage("Salvar"), "auth__change_password_title" : MessageLookupByLibrary.simpleMessage("Alterar senha"), @@ -179,18 +198,18 @@ class MessageLookup extends MessageLookupByLibrary { "auth__create_acc__next" : MessageLookupByLibrary.simpleMessage("Avançar"), "auth__create_acc__one_last_thing" : MessageLookupByLibrary.simpleMessage("Uma última coisa..."), "auth__create_acc__password_empty_error" : MessageLookupByLibrary.simpleMessage("😱 Sua senha não pode ficar vazia"), - "auth__create_acc__password_length_error" : MessageLookupByLibrary.simpleMessage("😅 Uma senha precisa ter entre 8 e 64 caracteres."), + "auth__create_acc__password_length_error" : MessageLookupByLibrary.simpleMessage("😅 Sua senha precisa ter entre 10 e 100 caracteres."), "auth__create_acc__paste_link" : MessageLookupByLibrary.simpleMessage("Cole seu link de registro abaixo"), "auth__create_acc__paste_link_help_text" : MessageLookupByLibrary.simpleMessage("Use o link do seu convite recebido por email."), "auth__create_acc__paste_password_reset_link" : MessageLookupByLibrary.simpleMessage("Cole o link de redefinição de senha abaixo"), "auth__create_acc__previous" : MessageLookupByLibrary.simpleMessage("Voltar"), - "auth__create_acc__register" : MessageLookupByLibrary.simpleMessage("Criar uma conta"), + "auth__create_acc__register" : MessageLookupByLibrary.simpleMessage("Criar minha conta"), "auth__create_acc__request_invite" : MessageLookupByLibrary.simpleMessage("Sem convite? Solicite um aqui."), "auth__create_acc__submit_error_desc_server" : MessageLookupByLibrary.simpleMessage("😭 Estamos com problemas em nossos servidores, por favor tente novamente em alguns minutos."), "auth__create_acc__submit_error_desc_validation" : MessageLookupByLibrary.simpleMessage("😅 Parece que algumas das informações não estavam corretas, por favor, verifique e tente novamente."), "auth__create_acc__submit_error_title" : MessageLookupByLibrary.simpleMessage("Ah não..."), "auth__create_acc__submit_loading_desc" : MessageLookupByLibrary.simpleMessage("Estamos criando sua conta."), - "auth__create_acc__submit_loading_title" : MessageLookupByLibrary.simpleMessage("Segura aí!"), + "auth__create_acc__submit_loading_title" : MessageLookupByLibrary.simpleMessage("Aguenta aí!"), "auth__create_acc__subscribe" : MessageLookupByLibrary.simpleMessage("Solicitar"), "auth__create_acc__subscribe_to_waitlist_text" : MessageLookupByLibrary.simpleMessage("Solicitar um convite!"), "auth__create_acc__username_characters_error" : MessageLookupByLibrary.simpleMessage("😅 Um nome de usuário deve conter apenas caracteres alfanuméricos e underlines (_)."), @@ -225,7 +244,7 @@ class MessageLookup extends MessageLookupByLibrary { "auth__login__or_text" : MessageLookupByLibrary.simpleMessage("Ou"), "auth__login__password_empty_error" : MessageLookupByLibrary.simpleMessage("A senha é necessária."), "auth__login__password_label" : MessageLookupByLibrary.simpleMessage("Senha"), - "auth__login__password_length_error" : MessageLookupByLibrary.simpleMessage("Sua senha deve ter entre 8 e 64 caracteres."), + "auth__login__password_length_error" : MessageLookupByLibrary.simpleMessage("Sua senha deve ter entre 10 e 100 caracteres."), "auth__login__previous" : MessageLookupByLibrary.simpleMessage("Voltar"), "auth__login__server_error" : MessageLookupByLibrary.simpleMessage("Ops... Estamos passando por problemas em nossos servidores. Por favor, tente novamente em alguns minutos."), "auth__login__subtitle" : MessageLookupByLibrary.simpleMessage("Insira suas credenciais para continuar."), @@ -244,7 +263,7 @@ class MessageLookup extends MessageLookupByLibrary { "auth__username_empty_error" : MessageLookupByLibrary.simpleMessage("O nome de usuário não pode ficar vazio."), "auth__username_maxlength_error" : m4, "community__about" : MessageLookupByLibrary.simpleMessage("Sobre"), - "community__actions_invite_people_title" : MessageLookupByLibrary.simpleMessage("Convide pessoas para a comunidade"), + "community__actions_invite_people_title" : MessageLookupByLibrary.simpleMessage("Convidar pessoas para a comunidade"), "community__actions_manage_text" : MessageLookupByLibrary.simpleMessage("Gerenciar"), "community__add_administrators_title" : MessageLookupByLibrary.simpleMessage("Adicionar administrador."), "community__add_moderator_title" : MessageLookupByLibrary.simpleMessage("Adicionar moderador"), @@ -303,18 +322,18 @@ class MessageLookup extends MessageLookupByLibrary { "community__manage_admins_title" : MessageLookupByLibrary.simpleMessage("Administradores"), "community__manage_banned_desc" : MessageLookupByLibrary.simpleMessage("Ver, adicionar e remover usuários banidos."), "community__manage_banned_title" : MessageLookupByLibrary.simpleMessage("Usuários banidos"), - "community__manage_closed_posts_desc" : MessageLookupByLibrary.simpleMessage("Ver e gerenciar os posts fechados"), - "community__manage_closed_posts_title" : MessageLookupByLibrary.simpleMessage("Posts fechados"), + "community__manage_closed_posts_desc" : MessageLookupByLibrary.simpleMessage("Ver e gerenciar as publicações fechadas"), + "community__manage_closed_posts_title" : MessageLookupByLibrary.simpleMessage("Publicações fechadas"), "community__manage_delete_desc" : MessageLookupByLibrary.simpleMessage("Excluir a comunidade, para sempre."), "community__manage_delete_title" : MessageLookupByLibrary.simpleMessage("Excluir comunidade"), "community__manage_details_desc" : MessageLookupByLibrary.simpleMessage("Alterar título, nome, avatar, foto de capa e mais."), "community__manage_details_title" : MessageLookupByLibrary.simpleMessage("Detalhes"), - "community__manage_invite_desc" : MessageLookupByLibrary.simpleMessage("Convide suas conexões e seguidores para se juntar à comunidade."), + "community__manage_invite_desc" : MessageLookupByLibrary.simpleMessage("Convidar suas conexões e seus seguidores para a comunidade."), "community__manage_invite_title" : MessageLookupByLibrary.simpleMessage("Convidar pessoas"), "community__manage_leave_desc" : MessageLookupByLibrary.simpleMessage("Sair da comunidade."), "community__manage_leave_title" : MessageLookupByLibrary.simpleMessage("Sair da comunidade"), - "community__manage_mod_reports_desc" : MessageLookupByLibrary.simpleMessage("Revise as denúncias à moderação da comunidade."), - "community__manage_mod_reports_title" : MessageLookupByLibrary.simpleMessage("Reportado à moderação"), + "community__manage_mod_reports_desc" : MessageLookupByLibrary.simpleMessage("Revisar as denúncias para moderação da comunidade."), + "community__manage_mod_reports_title" : MessageLookupByLibrary.simpleMessage("Reportado para moderação"), "community__manage_mods_desc" : MessageLookupByLibrary.simpleMessage("Ver, adicionar e remover moderadores."), "community__manage_mods_title" : MessageLookupByLibrary.simpleMessage("Moderadores"), "community__manage_remove_favourite" : MessageLookupByLibrary.simpleMessage("Remover a comunidade de suas favoritas"), @@ -344,6 +363,7 @@ class MessageLookup extends MessageLookupByLibrary { "community__posts" : MessageLookupByLibrary.simpleMessage("Posts"), "community__refresh_text" : MessageLookupByLibrary.simpleMessage("Atualizar"), "community__refreshing" : MessageLookupByLibrary.simpleMessage("Atualizando a comunidade"), + "community__retry_loading_posts" : MessageLookupByLibrary.simpleMessage("Tentar novamente"), "community__rules_empty_error" : MessageLookupByLibrary.simpleMessage("As regras não podem ficar vazias."), "community__rules_range_error" : m14, "community__rules_text" : MessageLookupByLibrary.simpleMessage("Regras"), @@ -396,11 +416,12 @@ class MessageLookup extends MessageLookupByLibrary { "drawer__application_settings" : MessageLookupByLibrary.simpleMessage("Configurações do aplicativo"), "drawer__connections" : MessageLookupByLibrary.simpleMessage("Minhas conexões"), "drawer__customize" : MessageLookupByLibrary.simpleMessage("Personalizar"), + "drawer__developer_settings" : MessageLookupByLibrary.simpleMessage("Opções de desenvolvedor"), "drawer__global_moderation" : MessageLookupByLibrary.simpleMessage("Moderação global"), "drawer__help" : MessageLookupByLibrary.simpleMessage("Suporte e Feedback"), "drawer__lists" : MessageLookupByLibrary.simpleMessage("Minhas listas"), "drawer__logout" : MessageLookupByLibrary.simpleMessage("Sair"), - "drawer__main_title" : MessageLookupByLibrary.simpleMessage("Minha Okuna"), + "drawer__main_title" : MessageLookupByLibrary.simpleMessage("Okuna"), "drawer__menu_title" : MessageLookupByLibrary.simpleMessage("Menu"), "drawer__my_circles" : MessageLookupByLibrary.simpleMessage("Meus círculos"), "drawer__my_followers" : MessageLookupByLibrary.simpleMessage("Meus seguidores"), @@ -421,7 +442,7 @@ class MessageLookup extends MessageLookupByLibrary { "drawer__useful_links_guidelines_github" : MessageLookupByLibrary.simpleMessage("Projeto no Github"), "drawer__useful_links_guidelines_github_desc" : MessageLookupByLibrary.simpleMessage("Dê uma olhada no que estamos trabalhando atualmente"), "drawer__useful_links_guidelines_handbook" : MessageLookupByLibrary.simpleMessage("Manual da Okuna"), - "drawer__useful_links_guidelines_handbook_desc" : MessageLookupByLibrary.simpleMessage("Um livro com tudo o que há para saber sobre usar a plataforma"), + "drawer__useful_links_guidelines_handbook_desc" : MessageLookupByLibrary.simpleMessage("Um manual para aprender tudo sobre o uso da plataforma"), "drawer__useful_links_slack_channel" : MessageLookupByLibrary.simpleMessage("Canal da comunidade no Slack"), "drawer__useful_links_slack_channel_desc" : MessageLookupByLibrary.simpleMessage("Um lugar para discutir tudo sobre a Okuna"), "drawer__useful_links_support" : MessageLookupByLibrary.simpleMessage("Apoie a Okuna"), @@ -429,6 +450,9 @@ class MessageLookup extends MessageLookupByLibrary { "drawer__useful_links_title" : MessageLookupByLibrary.simpleMessage("Links úteis"), "error__no_internet_connection" : MessageLookupByLibrary.simpleMessage("Sem conexão com a internet"), "error__unknown_error" : MessageLookupByLibrary.simpleMessage("Erro desconhecido"), + "image_picker__error_too_large" : m19, + "image_picker__from_camera" : MessageLookupByLibrary.simpleMessage("Câmera"), + "image_picker__from_gallery" : MessageLookupByLibrary.simpleMessage("Galeria"), "moderation__actions_chat_with_team" : MessageLookupByLibrary.simpleMessage("Converse com a equipe"), "moderation__actions_review" : MessageLookupByLibrary.simpleMessage("Revisar"), "moderation__category_text" : MessageLookupByLibrary.simpleMessage("Categoria"), @@ -481,11 +505,11 @@ class MessageLookup extends MessageLookupByLibrary { "moderation__report_account_text" : MessageLookupByLibrary.simpleMessage("Denunciar conta"), "moderation__report_comment_text" : MessageLookupByLibrary.simpleMessage("Denunciar comentário"), "moderation__report_community_text" : MessageLookupByLibrary.simpleMessage("Denunciar comunidade"), - "moderation__report_post_text" : MessageLookupByLibrary.simpleMessage("Denunciar publicação"), + "moderation__report_post_text" : MessageLookupByLibrary.simpleMessage("Denunciar post"), "moderation__reporter_text" : MessageLookupByLibrary.simpleMessage("Denunciante"), "moderation__reports_preview_resource_reports" : MessageLookupByLibrary.simpleMessage("denúncias"), "moderation__reports_preview_title" : MessageLookupByLibrary.simpleMessage("Denúncias"), - "moderation__reports_see_all" : m19, + "moderation__reports_see_all" : m20, "moderation__tap_to_retry" : MessageLookupByLibrary.simpleMessage("Toque para tentar carregar os itens novamente"), "moderation__update_category_save" : MessageLookupByLibrary.simpleMessage("Salvar"), "moderation__update_category_title" : MessageLookupByLibrary.simpleMessage("Atualizar categoria"), @@ -500,42 +524,44 @@ class MessageLookup extends MessageLookupByLibrary { "moderation__you_have_reported_community_text" : MessageLookupByLibrary.simpleMessage("Você denunciou esta comunidade"), "moderation__you_have_reported_post_text" : MessageLookupByLibrary.simpleMessage("Você denunciou esta publicação"), "notifications__accepted_connection_request_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] aceitou seu pedido de conexão."), - "notifications__comment_comment_notification_tile_user_also_commented" : m20, - "notifications__comment_comment_notification_tile_user_commented" : m21, - "notifications__comment_desc" : MessageLookupByLibrary.simpleMessage("Seja notificado(a) quando alguém comentar uma das suas publicações ou uma que você também comentou."), - "notifications__comment_reaction_desc" : MessageLookupByLibrary.simpleMessage("Seja notificado(a) quando alguém reage a um dos seus comentários."), - "notifications__comment_reaction_title" : MessageLookupByLibrary.simpleMessage("Reações a comentários"), - "notifications__comment_reply_desc" : MessageLookupByLibrary.simpleMessage("Seja notificado(a) quando alguém responder a um dos seus comentários ou a um que você também respondeu."), - "notifications__comment_reply_notification_tile_user_also_replied" : m22, - "notifications__comment_reply_notification_tile_user_replied" : m23, + "notifications__comment_comment_notification_tile_user_also_commented" : m21, + "notifications__comment_comment_notification_tile_user_commented" : m22, + "notifications__comment_desc" : MessageLookupByLibrary.simpleMessage("Seja notificado(a) quando alguém comentar uma das suas publicações ou uma que você também comentou"), + "notifications__comment_reaction_desc" : MessageLookupByLibrary.simpleMessage("Seja notificado(a) quando alguém reagir a um dos seus comentários"), + "notifications__comment_reaction_title" : MessageLookupByLibrary.simpleMessage("Reações aos comentários"), + "notifications__comment_reply_desc" : MessageLookupByLibrary.simpleMessage("Seja notificado(a) quando alguém responder a um dos seus comentários ou a um que você também respondeu"), + "notifications__comment_reply_notification_tile_user_also_replied" : m23, + "notifications__comment_reply_notification_tile_user_replied" : m24, "notifications__comment_reply_title" : MessageLookupByLibrary.simpleMessage("Respostas aos comentários"), "notifications__comment_title" : MessageLookupByLibrary.simpleMessage("Comentários"), "notifications__comment_user_mention_desc" : MessageLookupByLibrary.simpleMessage("Seja notificado(a) quando alguém mencionar você em um comentário"), "notifications__comment_user_mention_title" : MessageLookupByLibrary.simpleMessage("Menções em comentários"), - "notifications__community_invite_desc" : MessageLookupByLibrary.simpleMessage("Seja notificado(a) quando alguém convida você para entrar em uma comunidade."), + "notifications__community_invite_desc" : MessageLookupByLibrary.simpleMessage("Seja notificado(a) quando alguém convidar você para uma comunidade"), "notifications__community_invite_title" : MessageLookupByLibrary.simpleMessage("Convites para comunidades"), "notifications__connection_desc" : MessageLookupByLibrary.simpleMessage("Seja notificado(a) quando alguém quiser se conectar com você"), "notifications__connection_request_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] quer se conectar com você."), "notifications__connection_title" : MessageLookupByLibrary.simpleMessage("Pedidos de conexão"), - "notifications__follow_desc" : MessageLookupByLibrary.simpleMessage("Seja notificado(a) quando alguém começar a segui-lo(a)"), + "notifications__follow_desc" : MessageLookupByLibrary.simpleMessage("Seja notificado(a) quando alguém começar a seguir você"), "notifications__follow_title" : MessageLookupByLibrary.simpleMessage("Seguidores"), "notifications__following_you_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] está te seguindo agora."), "notifications__general_desc" : MessageLookupByLibrary.simpleMessage("Seja notificado(a) quando algo acontecer"), "notifications__general_title" : MessageLookupByLibrary.simpleMessage("Notificações"), - "notifications__mentioned_in_post_comment_tile" : m24, - "notifications__mentioned_in_post_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] mencionou você em uma publicação."), + "notifications__mentioned_in_post_comment_tile" : m25, + "notifications__mentioned_in_post_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] mencionou você em um post."), "notifications__mute_post_turn_off_post_comment_notifications" : MessageLookupByLibrary.simpleMessage("Desativar notificações do comentário"), "notifications__mute_post_turn_off_post_notifications" : MessageLookupByLibrary.simpleMessage("Desativar notificações do post"), "notifications__mute_post_turn_on_post_comment_notifications" : MessageLookupByLibrary.simpleMessage("Ativar notificações do comentário"), "notifications__mute_post_turn_on_post_notifications" : MessageLookupByLibrary.simpleMessage("Ativar notificações do post"), - "notifications__post_reaction_desc" : MessageLookupByLibrary.simpleMessage("Seja notificado(a) quando alguém reage a uma das suas publicações."), + "notifications__post_reaction_desc" : MessageLookupByLibrary.simpleMessage("Seja notificado(a) quando alguém reagir a uma das suas publicações"), "notifications__post_reaction_title" : MessageLookupByLibrary.simpleMessage("Reações aos posts"), "notifications__post_user_mention_desc" : MessageLookupByLibrary.simpleMessage("Seja notificado(a) quando alguém mencionar você em uma publicação"), - "notifications__post_user_mention_title" : MessageLookupByLibrary.simpleMessage("Menções em publicações"), + "notifications__post_user_mention_title" : MessageLookupByLibrary.simpleMessage("Menções em posts"), "notifications__reacted_to_post_comment_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] reagiu ao seu comentário."), - "notifications__reacted_to_post_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] reagiu à sua publicação."), - "notifications__settings_title" : MessageLookupByLibrary.simpleMessage("Configurações de notificação"), - "notifications__user_community_invite_tile" : m25, + "notifications__reacted_to_post_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] reagiu ao seu post."), + "notifications__settings_title" : MessageLookupByLibrary.simpleMessage("Configurações de notificações"), + "notifications__tab_general" : MessageLookupByLibrary.simpleMessage("Gerais"), + "notifications__tab_requests" : MessageLookupByLibrary.simpleMessage("Pedidos"), + "notifications__user_community_invite_tile" : m26, "post__action_comment" : MessageLookupByLibrary.simpleMessage("Comentar"), "post__action_react" : MessageLookupByLibrary.simpleMessage("Reagir"), "post__action_reply" : MessageLookupByLibrary.simpleMessage("Responder"), @@ -547,8 +573,9 @@ class MessageLookup extends MessageLookupByLibrary { "post__actions_report_text" : MessageLookupByLibrary.simpleMessage("Denunciar"), "post__actions_reported_text" : MessageLookupByLibrary.simpleMessage("Denunciado"), "post__actions_show_more_text" : MessageLookupByLibrary.simpleMessage("Ver mais"), + "post__close_create_post_label" : MessageLookupByLibrary.simpleMessage("Close create new post"), "post__close_post" : MessageLookupByLibrary.simpleMessage("Fechar post"), - "post__comment_maxlength_error" : m26, + "post__comment_maxlength_error" : m27, "post__comment_reply_expanded_post" : MessageLookupByLibrary.simpleMessage("Enviar"), "post__comment_reply_expanded_reply_comment" : MessageLookupByLibrary.simpleMessage("Responder comentário"), "post__comment_reply_expanded_reply_hint_text" : MessageLookupByLibrary.simpleMessage("Sua resposta..."), @@ -567,37 +594,40 @@ class MessageLookup extends MessageLookupByLibrary { "post__comments_header_be_the_first_replies" : MessageLookupByLibrary.simpleMessage("Mande a primeira resposta"), "post__comments_header_newer" : MessageLookupByLibrary.simpleMessage("Mais recentes"), "post__comments_header_newest_comments" : MessageLookupByLibrary.simpleMessage("Comentários mais recentes"), - "post__comments_header_newest_replies" : MessageLookupByLibrary.simpleMessage("Novas respostas"), + "post__comments_header_newest_replies" : MessageLookupByLibrary.simpleMessage("Respostas mais recentes"), "post__comments_header_older" : MessageLookupByLibrary.simpleMessage("Mais antigos"), "post__comments_header_oldest_comments" : MessageLookupByLibrary.simpleMessage("Comentários mais antigos"), "post__comments_header_oldest_replies" : MessageLookupByLibrary.simpleMessage("Respostas mais antigas"), - "post__comments_header_see_newest_comments" : MessageLookupByLibrary.simpleMessage("Ver comentários mais recentes"), - "post__comments_header_see_newest_replies" : MessageLookupByLibrary.simpleMessage("Ver respostas mais recentes"), - "post__comments_header_see_oldest_comments" : MessageLookupByLibrary.simpleMessage("Ver comentários mais antigos"), - "post__comments_header_see_oldest_replies" : MessageLookupByLibrary.simpleMessage("Ver respostas mais antigas"), - "post__comments_header_view_newest_comments" : MessageLookupByLibrary.simpleMessage("Ver comentários mais recentes"), - "post__comments_header_view_newest_replies" : MessageLookupByLibrary.simpleMessage("Ver respostas mais recentes"), - "post__comments_header_view_oldest_comments" : MessageLookupByLibrary.simpleMessage("Ver comentários mais antigos"), - "post__comments_header_view_oldest_replies" : MessageLookupByLibrary.simpleMessage("Ver respostas mais antigas"), + "post__comments_header_see_newest_comments" : MessageLookupByLibrary.simpleMessage("Mais recentes"), + "post__comments_header_see_newest_replies" : MessageLookupByLibrary.simpleMessage("Mais recentes"), + "post__comments_header_see_oldest_comments" : MessageLookupByLibrary.simpleMessage("Mais antigos"), + "post__comments_header_see_oldest_replies" : MessageLookupByLibrary.simpleMessage("Mais antigas"), + "post__comments_header_view_newest_comments" : MessageLookupByLibrary.simpleMessage("Mais recentes"), + "post__comments_header_view_newest_replies" : MessageLookupByLibrary.simpleMessage("Mais recentes"), + "post__comments_header_view_oldest_comments" : MessageLookupByLibrary.simpleMessage("Mais antigos"), + "post__comments_header_view_oldest_replies" : MessageLookupByLibrary.simpleMessage("Mais antigas"), "post__comments_page_no_more_replies_to_load" : MessageLookupByLibrary.simpleMessage("Sem mais respostas para carregar"), "post__comments_page_no_more_to_load" : MessageLookupByLibrary.simpleMessage("Sem mais comentários para carregar"), "post__comments_page_replies_title" : MessageLookupByLibrary.simpleMessage("Respostas"), "post__comments_page_tap_to_retry" : MessageLookupByLibrary.simpleMessage("Toque para tentar atualizar os comentários novamente."), "post__comments_page_tap_to_retry_replies" : MessageLookupByLibrary.simpleMessage("Toque para tentar atualizar as respostas novamente."), "post__comments_page_title" : MessageLookupByLibrary.simpleMessage("Comentários"), - "post__comments_view_all_comments" : m27, + "post__comments_view_all_comments" : m28, "post__create_new" : MessageLookupByLibrary.simpleMessage("Novo post"), + "post__create_new_community_post_label" : MessageLookupByLibrary.simpleMessage("Create new communtiy post"), + "post__create_new_post_label" : MessageLookupByLibrary.simpleMessage("Create new post"), "post__create_next" : MessageLookupByLibrary.simpleMessage("Avançar"), "post__create_photo" : MessageLookupByLibrary.simpleMessage("Imagem"), + "post__create_video" : MessageLookupByLibrary.simpleMessage("Vídeo"), "post__disable_post_comments" : MessageLookupByLibrary.simpleMessage("Desativar comentários do post"), "post__edit_save" : MessageLookupByLibrary.simpleMessage("Salvar"), - "post__edit_title" : MessageLookupByLibrary.simpleMessage("Editar publicação"), + "post__edit_title" : MessageLookupByLibrary.simpleMessage("Editar post"), "post__enable_post_comments" : MessageLookupByLibrary.simpleMessage("Ativar comentários do post"), "post__have_not_shared_anything" : MessageLookupByLibrary.simpleMessage("Você ainda não compartilhou nada."), "post__is_closed" : MessageLookupByLibrary.simpleMessage("Post fechado"), "post__my_circles" : MessageLookupByLibrary.simpleMessage("Meus círculos"), "post__my_circles_desc" : MessageLookupByLibrary.simpleMessage("Compartilhe a publicação para um ou vários dos seus círculos."), - "post__no_circles_for" : m28, + "post__no_circles_for" : m29, "post__open_post" : MessageLookupByLibrary.simpleMessage("Abrir post"), "post__post_closed" : MessageLookupByLibrary.simpleMessage("Post fechado "), "post__post_opened" : MessageLookupByLibrary.simpleMessage("Post aberto"), @@ -607,6 +637,7 @@ class MessageLookup extends MessageLookupByLibrary { "post__profile_counts_following" : MessageLookupByLibrary.simpleMessage(" Seguindo"), "post__profile_counts_post" : MessageLookupByLibrary.simpleMessage(" Post"), "post__profile_counts_posts" : MessageLookupByLibrary.simpleMessage(" Posts"), + "post__profile_retry_loading_posts" : MessageLookupByLibrary.simpleMessage("Tentar novamente"), "post__reaction_list_tap_retry" : MessageLookupByLibrary.simpleMessage("Toque para tentar carregar as reações novamente."), "post__search_circles" : MessageLookupByLibrary.simpleMessage("Procurar círculos..."), "post__share" : MessageLookupByLibrary.simpleMessage("Compartilhar"), @@ -616,7 +647,7 @@ class MessageLookup extends MessageLookupByLibrary { "post__share_to" : MessageLookupByLibrary.simpleMessage("Compartilhar em"), "post__share_to_circles" : MessageLookupByLibrary.simpleMessage("Compartilhar nos círculos"), "post__share_to_community" : MessageLookupByLibrary.simpleMessage("Compartilhar na comunidade"), - "post__shared_privately_on" : MessageLookupByLibrary.simpleMessage("Compartilhado nos"), + "post__shared_privately_on" : MessageLookupByLibrary.simpleMessage("Compartilhado em particular nos"), "post__sharing_post_to" : MessageLookupByLibrary.simpleMessage("Compartilhando post em"), "post__text_copied" : MessageLookupByLibrary.simpleMessage("Texto copiado!"), "post__time_short_days" : MessageLookupByLibrary.simpleMessage("d"), @@ -637,17 +668,36 @@ class MessageLookup extends MessageLookupByLibrary { "post__timeline_posts_failed_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Tente novamente em alguns segundos"), "post__timeline_posts_failed_drhoo_title" : MessageLookupByLibrary.simpleMessage("Não foi possível carregar sua linha do tempo."), "post__timeline_posts_no_more_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Siga usuários ou junte-se a uma comunidade para começar!"), - "post__timeline_posts_no_more_drhoo_title" : MessageLookupByLibrary.simpleMessage("Sua linha do tempo está vazia."), "post__timeline_posts_refresh_posts" : MessageLookupByLibrary.simpleMessage("Atualizar publicações"), - "post__timeline_posts_refreshing_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Carregando sua linha do tempo."), "post__timeline_posts_refreshing_drhoo_title" : MessageLookupByLibrary.simpleMessage("Aguenta aí!"), "post__trending_posts_no_trending_posts" : MessageLookupByLibrary.simpleMessage("Não há publicações em alta. Tente atualizar em alguns segundos."), "post__trending_posts_refresh" : MessageLookupByLibrary.simpleMessage("Atualizar"), - "post__trending_posts_title" : MessageLookupByLibrary.simpleMessage("Posts em alta"), - "post__user_has_not_shared_anything" : m29, - "post__usernames_circles" : m30, + "post__trending_posts_title" : MessageLookupByLibrary.simpleMessage("Publicações em alta"), + "post__user_has_not_shared_anything" : m30, + "post__usernames_circles" : m31, "post__world_circle_name" : MessageLookupByLibrary.simpleMessage("Mundo"), "post__you_shared_with" : MessageLookupByLibrary.simpleMessage("Você compartilhou com"), + "post_body_link_preview__empty" : MessageLookupByLibrary.simpleMessage("This link could not be previewed"), + "post_body_link_preview__error_with_description" : m32, + "post_body_media__unsupported" : MessageLookupByLibrary.simpleMessage("Tipo de mídia não suportado"), + "post_uploader__cancelled" : MessageLookupByLibrary.simpleMessage("Cancelado!"), + "post_uploader__cancelling" : MessageLookupByLibrary.simpleMessage("Cancelando"), + "post_uploader__compressing_media" : MessageLookupByLibrary.simpleMessage("Comprimindo mídia..."), + "post_uploader__creating_post" : MessageLookupByLibrary.simpleMessage("Criando post..."), + "post_uploader__generic_upload_failed" : MessageLookupByLibrary.simpleMessage("Falha ao enviar"), + "post_uploader__processing" : MessageLookupByLibrary.simpleMessage("Processando..."), + "post_uploader__publishing" : MessageLookupByLibrary.simpleMessage("Publicando..."), + "post_uploader__success" : MessageLookupByLibrary.simpleMessage("Pronto!"), + "post_uploader__uploading_media" : MessageLookupByLibrary.simpleMessage("Enviando mídia..."), + "posts_stream__all_loaded" : MessageLookupByLibrary.simpleMessage("🎉 Todas as publicações foram carregadas"), + "posts_stream__empty_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Tente novamente em alguns segundos."), + "posts_stream__empty_drhoo_title" : MessageLookupByLibrary.simpleMessage("A linha do tempo está vazia."), + "posts_stream__failed_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Tente novamente em alguns segundos"), + "posts_stream__failed_drhoo_title" : MessageLookupByLibrary.simpleMessage("Não foi possível carregar as publicações."), + "posts_stream__refreshing_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Atualizando as publicações."), + "posts_stream__refreshing_drhoo_title" : MessageLookupByLibrary.simpleMessage("Aguenta aí!"), + "posts_stream__status_tile_empty" : MessageLookupByLibrary.simpleMessage("Nenhuma publicação encontrada"), + "posts_stream__status_tile_no_more_to_load" : MessageLookupByLibrary.simpleMessage("🎉 Todas as publicações foram carregadas"), "user__add_account_done" : MessageLookupByLibrary.simpleMessage("Concluído"), "user__add_account_save" : MessageLookupByLibrary.simpleMessage("Salvar"), "user__add_account_success" : MessageLookupByLibrary.simpleMessage("Sucesso"), @@ -663,8 +713,8 @@ class MessageLookup extends MessageLookupByLibrary { "user__change_email_success_info" : MessageLookupByLibrary.simpleMessage("Enviamos um link de confirmação para seu novo endereço de email, clique nele para verificar seu novo email"), "user__change_email_title" : MessageLookupByLibrary.simpleMessage("Alterar Email"), "user__circle_name_empty_error" : MessageLookupByLibrary.simpleMessage("O nome do círculo não pode ficar vazio."), - "user__circle_name_range_error" : m31, - "user__circle_peoples_count" : m32, + "user__circle_name_range_error" : m33, + "user__circle_peoples_count" : m34, "user__clear_app_preferences_cleared_successfully" : MessageLookupByLibrary.simpleMessage("Preferências limpas com sucesso"), "user__clear_app_preferences_desc" : MessageLookupByLibrary.simpleMessage("Limpe as preferências do aplicativo. Atualmente, isso influencia apenas a ordem preferida dos comentários."), "user__clear_app_preferences_error" : MessageLookupByLibrary.simpleMessage("Não foi possível limpar as preferências"), @@ -676,13 +726,13 @@ class MessageLookup extends MessageLookupByLibrary { "user__confirm_block_user_blocked" : MessageLookupByLibrary.simpleMessage("Usuário bloqueado."), "user__confirm_block_user_info" : MessageLookupByLibrary.simpleMessage("Vocês não verão os posts um do outro nem serão capazes de interagir de qualquer forma."), "user__confirm_block_user_no" : MessageLookupByLibrary.simpleMessage("Não"), - "user__confirm_block_user_question" : m33, + "user__confirm_block_user_question" : m35, "user__confirm_block_user_title" : MessageLookupByLibrary.simpleMessage("Confirmação"), "user__confirm_block_user_yes" : MessageLookupByLibrary.simpleMessage("Sim"), "user__confirm_connection_add_connection" : MessageLookupByLibrary.simpleMessage("Adicionar conexão ao círculo"), "user__confirm_connection_confirm_text" : MessageLookupByLibrary.simpleMessage("Confirmar"), "user__confirm_connection_connection_confirmed" : MessageLookupByLibrary.simpleMessage("Conexão confirmada"), - "user__confirm_connection_with" : m34, + "user__confirm_connection_with" : m36, "user__confirm_guidelines_reject_chat_community" : MessageLookupByLibrary.simpleMessage("Converse com a comunidade."), "user__confirm_guidelines_reject_chat_immediately" : MessageLookupByLibrary.simpleMessage("Inicie o chat agora."), "user__confirm_guidelines_reject_chat_with_team" : MessageLookupByLibrary.simpleMessage("Converse com a equipe."), @@ -692,7 +742,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__confirm_guidelines_reject_join_slack" : MessageLookupByLibrary.simpleMessage("Junte-se ao canal no Slack."), "user__confirm_guidelines_reject_title" : MessageLookupByLibrary.simpleMessage("Rejeição das diretrizes"), "user__connect_to_user_add_connection" : MessageLookupByLibrary.simpleMessage("Adicionar conexão ao círculo"), - "user__connect_to_user_connect_with_username" : m35, + "user__connect_to_user_connect_with_username" : m37, "user__connect_to_user_done" : MessageLookupByLibrary.simpleMessage("Pronto"), "user__connect_to_user_request_sent" : MessageLookupByLibrary.simpleMessage("Pedido de conexão enviado"), "user__connection_circle_edit" : MessageLookupByLibrary.simpleMessage("Editar"), @@ -710,28 +760,29 @@ class MessageLookup extends MessageLookupByLibrary { "user__delete_account_current_pwd_hint" : MessageLookupByLibrary.simpleMessage("Digite a sua senha atual"), "user__delete_account_next" : MessageLookupByLibrary.simpleMessage("Avançar"), "user__delete_account_title" : MessageLookupByLibrary.simpleMessage("Excluir a minha conta"), - "user__disconnect_from_user" : m36, + "user__disconnect_from_user" : m38, "user__disconnect_from_user_success" : MessageLookupByLibrary.simpleMessage("Desconectado com sucesso"), "user__edit_profile_bio" : MessageLookupByLibrary.simpleMessage("Bio"), + "user__edit_profile_community_posts" : MessageLookupByLibrary.simpleMessage("Publicações em comunidades"), "user__edit_profile_delete" : MessageLookupByLibrary.simpleMessage("Excluir"), "user__edit_profile_followers_count" : MessageLookupByLibrary.simpleMessage("Número de seguidores"), "user__edit_profile_location" : MessageLookupByLibrary.simpleMessage("Localização"), "user__edit_profile_name" : MessageLookupByLibrary.simpleMessage("Nome"), "user__edit_profile_pick_image" : MessageLookupByLibrary.simpleMessage("Escolher imagem"), - "user__edit_profile_pick_image_error_too_large" : m37, + "user__edit_profile_pick_image_error_too_large" : m39, "user__edit_profile_save_text" : MessageLookupByLibrary.simpleMessage("Salvar"), "user__edit_profile_title" : MessageLookupByLibrary.simpleMessage("Editar perfil"), "user__edit_profile_url" : MessageLookupByLibrary.simpleMessage("Url"), - "user__edit_profile_user_name_taken" : m38, + "user__edit_profile_user_name_taken" : m40, "user__edit_profile_username" : MessageLookupByLibrary.simpleMessage("Nome de usuário"), "user__email_verification_error" : MessageLookupByLibrary.simpleMessage("Opa! Seu token não era válido ou expirou, por favor tente novamente"), "user__email_verification_successful" : MessageLookupByLibrary.simpleMessage("Incrível! Seu email foi verificado"), "user__emoji_field_none_selected" : MessageLookupByLibrary.simpleMessage("Nenhum emoji selecionado"), - "user__emoji_search_none_found" : m39, + "user__emoji_search_none_found" : m41, "user__follow_button_follow_text" : MessageLookupByLibrary.simpleMessage("Seguir"), - "user__follow_button_unfollow_text" : MessageLookupByLibrary.simpleMessage("Parar de seguir"), + "user__follow_button_unfollow_text" : MessageLookupByLibrary.simpleMessage("Deixar de seguir"), "user__follow_lists_no_list_found" : MessageLookupByLibrary.simpleMessage("Nenhuma lista encontrada."), - "user__follow_lists_no_list_found_for" : m40, + "user__follow_lists_no_list_found_for" : m42, "user__follow_lists_search_for" : MessageLookupByLibrary.simpleMessage("Procurar por uma lista..."), "user__follow_lists_title" : MessageLookupByLibrary.simpleMessage("Minhas listas"), "user__follower_plural" : MessageLookupByLibrary.simpleMessage("seguidores"), @@ -739,18 +790,18 @@ class MessageLookup extends MessageLookupByLibrary { "user__followers_title" : MessageLookupByLibrary.simpleMessage("Seguidores"), "user__following_resource_name" : MessageLookupByLibrary.simpleMessage("usuários seguidos"), "user__following_text" : MessageLookupByLibrary.simpleMessage("Seguindo"), - "user__follows_list_accounts_count" : m41, + "user__follows_list_accounts_count" : m43, "user__follows_list_edit" : MessageLookupByLibrary.simpleMessage("Editar"), "user__follows_list_header_title" : MessageLookupByLibrary.simpleMessage("Usuários"), "user__follows_lists_account" : MessageLookupByLibrary.simpleMessage("1 Conta"), - "user__follows_lists_accounts" : m42, - "user__groups_see_all" : m43, + "user__follows_lists_accounts" : m44, + "user__groups_see_all" : m45, "user__guidelines_accept" : MessageLookupByLibrary.simpleMessage("Aceitar"), "user__guidelines_desc" : MessageLookupByLibrary.simpleMessage("Por favor, dedique este momento para ler e aceitar as nossas diretrizes."), "user__guidelines_reject" : MessageLookupByLibrary.simpleMessage("Rejeitar"), "user__invite" : MessageLookupByLibrary.simpleMessage("Convidar"), "user__invite_member" : MessageLookupByLibrary.simpleMessage("Membro"), - "user__invite_someone_message" : m44, + "user__invite_someone_message" : m46, "user__invites_accepted_group_item_name" : MessageLookupByLibrary.simpleMessage("convite aceito"), "user__invites_accepted_group_name" : MessageLookupByLibrary.simpleMessage("convites aceitos"), "user__invites_accepted_title" : MessageLookupByLibrary.simpleMessage("Aceitos"), @@ -769,11 +820,11 @@ class MessageLookup extends MessageLookupByLibrary { "user__invites_email_text" : MessageLookupByLibrary.simpleMessage("Email"), "user__invites_invite_a_friend" : MessageLookupByLibrary.simpleMessage("Convidar um amigo"), "user__invites_invite_text" : MessageLookupByLibrary.simpleMessage("Convidar"), - "user__invites_joined_with" : m45, + "user__invites_joined_with" : m47, "user__invites_none_left" : MessageLookupByLibrary.simpleMessage("Você não tem convites disponíveis."), "user__invites_none_used" : MessageLookupByLibrary.simpleMessage("Parece que você não usou nenhum convite."), "user__invites_pending" : MessageLookupByLibrary.simpleMessage("Pendente"), - "user__invites_pending_email" : m46, + "user__invites_pending_email" : m48, "user__invites_pending_group_item_name" : MessageLookupByLibrary.simpleMessage("convite pendente"), "user__invites_pending_group_name" : MessageLookupByLibrary.simpleMessage("convites pendentes"), "user__invites_refresh" : MessageLookupByLibrary.simpleMessage("Atualizar"), @@ -786,14 +837,14 @@ class MessageLookup extends MessageLookupByLibrary { "user__language_settings_saved_success" : MessageLookupByLibrary.simpleMessage("Idioma alterado com sucesso"), "user__language_settings_title" : MessageLookupByLibrary.simpleMessage("Configurações de idioma"), "user__list_name_empty_error" : MessageLookupByLibrary.simpleMessage("O nome da lista não pode ficar vazio."), - "user__list_name_range_error" : m47, + "user__list_name_range_error" : m49, "user__million_postfix" : MessageLookupByLibrary.simpleMessage("M"), "user__profile_action_cancel_connection" : MessageLookupByLibrary.simpleMessage("Cancelar pedido de conexão"), "user__profile_action_deny_connection" : MessageLookupByLibrary.simpleMessage("Recusar pedido de conexão"), "user__profile_action_user_blocked" : MessageLookupByLibrary.simpleMessage("Usuário bloqueado"), "user__profile_action_user_unblocked" : MessageLookupByLibrary.simpleMessage("Usuário desbloqueado"), - "user__profile_bio_length_error" : m48, - "user__profile_location_length_error" : m49, + "user__profile_bio_length_error" : m50, + "user__profile_location_length_error" : m51, "user__profile_url_invalid_error" : MessageLookupByLibrary.simpleMessage("Por favor, forneça uma url válida."), "user__remove_account_from_list" : MessageLookupByLibrary.simpleMessage("Remover conta das listas"), "user__remove_account_from_list_success" : MessageLookupByLibrary.simpleMessage("Sucesso"), @@ -803,7 +854,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__save_connection_circle_edit" : MessageLookupByLibrary.simpleMessage("Editar círculo"), "user__save_connection_circle_hint" : MessageLookupByLibrary.simpleMessage("ex: Amigos, Família, Trabalho."), "user__save_connection_circle_name" : MessageLookupByLibrary.simpleMessage("Nome"), - "user__save_connection_circle_name_taken" : m50, + "user__save_connection_circle_name_taken" : m52, "user__save_connection_circle_save" : MessageLookupByLibrary.simpleMessage("Salvar"), "user__save_connection_circle_users" : MessageLookupByLibrary.simpleMessage("Usuários"), "user__save_follows_list_create" : MessageLookupByLibrary.simpleMessage("Criar lista"), @@ -812,7 +863,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__save_follows_list_emoji_required_error" : MessageLookupByLibrary.simpleMessage("Emoji necessário"), "user__save_follows_list_hint_text" : MessageLookupByLibrary.simpleMessage("ex: Viagem, Fotografia"), "user__save_follows_list_name" : MessageLookupByLibrary.simpleMessage("Nome"), - "user__save_follows_list_name_taken" : m51, + "user__save_follows_list_name_taken" : m53, "user__save_follows_list_save" : MessageLookupByLibrary.simpleMessage("Salvar"), "user__save_follows_list_users" : MessageLookupByLibrary.simpleMessage("Usuários"), "user__thousand_postfix" : MessageLookupByLibrary.simpleMessage("k"), @@ -822,7 +873,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__timeline_filters_circles" : MessageLookupByLibrary.simpleMessage("Círculos"), "user__timeline_filters_clear_all" : MessageLookupByLibrary.simpleMessage("Limpar tudo"), "user__timeline_filters_lists" : MessageLookupByLibrary.simpleMessage("Listas"), - "user__timeline_filters_no_match" : m52, + "user__timeline_filters_no_match" : m54, "user__timeline_filters_search_desc" : MessageLookupByLibrary.simpleMessage("Procurar por círculos e listas..."), "user__timeline_filters_title" : MessageLookupByLibrary.simpleMessage("Filtros da linha do tempo"), "user__translate_see_translation" : MessageLookupByLibrary.simpleMessage("Mostrar tradução"), @@ -834,15 +885,17 @@ class MessageLookup extends MessageLookupByLibrary { "user__update_connection_circles_title" : MessageLookupByLibrary.simpleMessage("Atualizar círculos de conexão"), "user_search__cancel" : MessageLookupByLibrary.simpleMessage("Cancelar"), "user_search__communities" : MessageLookupByLibrary.simpleMessage("Comunidades"), - "user_search__list_no_results_found" : m53, + "user_search__list_no_results_found" : m55, "user_search__list_refresh_text" : MessageLookupByLibrary.simpleMessage("Atualizar"), "user_search__list_retry" : MessageLookupByLibrary.simpleMessage("Toque para tentar novamente."), - "user_search__list_search_text" : m54, - "user_search__no_communities_for" : m55, - "user_search__no_results_for" : m56, - "user_search__no_users_for" : m57, + "user_search__list_search_text" : m56, + "user_search__no_communities_for" : m57, + "user_search__no_results_for" : m58, + "user_search__no_users_for" : m59, "user_search__search_text" : MessageLookupByLibrary.simpleMessage("Pesquisar..."), - "user_search__searching_for" : m58, - "user_search__users" : MessageLookupByLibrary.simpleMessage("Usuários") + "user_search__searching_for" : m60, + "user_search__users" : MessageLookupByLibrary.simpleMessage("Usuários"), + "video_picker__from_camera" : MessageLookupByLibrary.simpleMessage("Câmera"), + "video_picker__from_gallery" : MessageLookupByLibrary.simpleMessage("Galeria") }; } diff --git a/lib/locale/messages_sv-SE.dart b/lib/locale/messages_sv-SE.dart index b349ca4d8..f714ed732 100644 --- a/lib/locale/messages_sv-SE.dart +++ b/lib/locale/messages_sv-SE.dart @@ -3,22 +3,21 @@ // messages from the main program should be duplicated here with the same // function name. -// ignore_for_file: unnecessary_brace_in_string_interps +// Ignore issues from commonly used lints in this file. +// ignore_for_file:unnecessary_brace_in_string_interps, unnecessary_new +// ignore_for_file:prefer_single_quotes,comment_references, directives_ordering +// ignore_for_file:annotate_overrides,prefer_generic_function_type_aliases +// ignore_for_file:unused_import, file_names import 'package:intl/intl.dart'; import 'package:intl/message_lookup_by_library.dart'; -// ignore: unnecessary_new final messages = new MessageLookup(); -// ignore: unused_element -final _keepAnalysisHappy = Intl.defaultLocale; - -// ignore: non_constant_identifier_names -typedef MessageIfAbsent(String message_str, List args); +typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { - get localeName => 'sv_SE'; + String get localeName => 'sv_SE'; static m0(minLength, maxLength) => "(${minLength}-${maxLength} tecken)"; @@ -58,88 +57,108 @@ class MessageLookup extends MessageLookupByLibrary { static m18(currentUserLanguage) => "Språk (${currentUserLanguage})"; - static m19(resourceCount, resourceName) => "Visa alla ${resourceCount} ${resourceName}"; + static m19(limit) => "Filen är för stor (gräns: ${limit} MB)"; + + static m20(resourceCount, resourceName) => "Visa alla ${resourceCount} ${resourceName}"; + + static m21(postCommentText) => "[name] [username] kommenterade också: ${postCommentText}"; - static m20(postCommentText) => "[name] [username] kommenterade också: ${postCommentText}"; + static m22(postCommentText) => "[name] [username] kommenterade på ditt inlägg: ${postCommentText}"; - static m21(postCommentText) => "[name] [username] kommenterade på ditt inlägg: ${postCommentText}"; + static m23(postCommentText) => "[name] [username] svarade också: ${postCommentText}"; - static m22(postCommentText) => "[name] [username] svarade också: ${postCommentText}"; + static m24(postCommentText) => "[name] [username] svarade: ${postCommentText}"; - static m23(postCommentText) => "[name] [username] svarade: ${postCommentText}"; + static m25(postCommentText) => "[name] [username] nämnde dig i en kommentar: ${postCommentText}"; - static m24(postCommentText) => "[name] [username] nämnde dig i en kommentar: ${postCommentText}"; + static m26(communityName) => "[name] [username] har bjudit in dig till gemenskapen /c/${communityName}."; - static m25(communityName) => "[name] [username] har bjudit in dig till gemenskapen /c/${communityName}."; + static m27(maxLength) => "En kommentar kan inte vara längre än ${maxLength} tecken."; - static m26(maxLength) => "En kommentar kan inte vara längre än ${maxLength} tecken."; + static m28(commentsCount) => "Visa alla ${commentsCount} kommentarer"; - static m27(commentsCount) => "Visa alla ${commentsCount} kommentarer"; + static m29(circlesSearchQuery) => "Inga kretsar hittades som matchar \'${circlesSearchQuery}\'."; - static m28(circlesSearchQuery) => "Inga kretsar hittades som matchar \'${circlesSearchQuery}\'."; + static m30(name) => "${name} har inte delat något ännu."; - static m29(name) => "${name} har inte delat något ännu."; + static m31(postCreatorUsername) => "@${postCreatorUsername}s kretsar"; - static m30(postCreatorUsername) => "@${postCreatorUsername}s kretsar"; + static m32(description) => "Webbsidan svarade med ett fel vid förhandsgranskning av länken: ${description}"; - static m31(maxLength) => "Kretsens namn får inte vara längre än ${maxLength} tecken."; + static m33(maxLength) => "Kretsens namn får inte vara längre än ${maxLength} tecken."; - static m32(prettyUsersCount) => "${prettyUsersCount} personer"; + static m34(prettyUsersCount) => "${prettyUsersCount} personer"; - static m33(username) => "Är du säker på att du vill blockera @${username}?"; + static m35(username) => "Är du säker på att du vill blockera @${username}?"; - static m34(userName) => "Bekräfta ${userName}s kontaktförfrågan"; + static m36(userName) => "Bekräfta ${userName}s kontaktförfrågan"; - static m35(userName) => "Lägg till ${userName} som kontakt"; + static m37(userName) => "Lägg till ${userName} som kontakt"; - static m36(userName) => "Ta bort ${userName} som kontakt"; + static m38(userName) => "Ta bort ${userName} som kontakt"; - static m37(limit) => "Bilden är för stor (gräns: ${limit} MB)"; + static m39(limit) => "Bilden är för stor (gräns: ${limit} MB)"; - static m38(username) => "Användarnamnet @${username} är upptaget"; + static m40(username) => "Användarnamnet @${username} är upptaget"; - static m39(searchQuery) => "Ingen emoji hittades som matchar \'${searchQuery}\'."; + static m41(searchQuery) => "Ingen emoji hittades som matchar \'${searchQuery}\'."; - static m40(searchQuery) => "Inga listor hittades för \'${searchQuery}\'"; + static m42(searchQuery) => "Inga listor hittades för \'${searchQuery}\'"; - static m41(prettyUsersCount) => "${prettyUsersCount} konton"; + static m43(prettyUsersCount) => "${prettyUsersCount} konton"; - static m42(prettyUsersCount) => "${prettyUsersCount} Konton"; + static m44(prettyUsersCount) => "${prettyUsersCount} Konton"; - static m43(groupName) => "Visa alla ${groupName}"; + static m45(groupName) => "Visa alla ${groupName}"; - static m44(iosLink, androidLink, inviteLink) => "Hej, jag vill bjuda in dig till Okuna. Först, ladda ner appen från iTunes (${iosLink}) eller Play Store (${androidLink}). Sedan klistrar du in din personliga inbjudningslänk i \'Registrera dig\'-formuläret i Okuna-appen: ${inviteLink}"; + static m46(iosLink, androidLink, inviteLink) => "Hej, jag vill bjuda in dig till Okuna. Först, ladda ner appen från iTunes (${iosLink}) eller Play Store (${androidLink}). Sedan klistrar du in din personliga inbjudningslänk i \'Registrera dig\'-formuläret i Okuna-appen: ${inviteLink}"; - static m45(username) => "Gick med under användarnamnet @${username}"; + static m47(username) => "Gick med under användarnamnet @${username}"; - static m46(email) => "Väntande, inbjudan skickad till ${email}"; + static m48(email) => "Väntande, inbjudan skickad till ${email}"; - static m47(maxLength) => "Listans namn får inte vara längre än ${maxLength} tecken."; + static m49(maxLength) => "Listans namn får inte vara längre än ${maxLength} tecken."; - static m48(maxLength) => "Bion kan inte vara längre än ${maxLength} tecken."; + static m50(maxLength) => "Bion kan inte vara längre än ${maxLength} tecken."; - static m49(maxLength) => "En plats kan inte vara längre än ${maxLength} tecken."; + static m51(maxLength) => "En plats kan inte vara längre än ${maxLength} tecken."; - static m50(takenConnectionsCircleName) => "Kretsnamnet \'${takenConnectionsCircleName}\' är upptaget"; + static m52(takenConnectionsCircleName) => "Kretsnamnet \'${takenConnectionsCircleName}\' är upptaget"; - static m51(listName) => "Listnamnet \'${listName}\' är upptaget"; + static m53(listName) => "Listnamnet \'${listName}\' är upptaget"; - static m52(searchQuery) => "Inga resultat hittades för \'${searchQuery}\'."; + static m54(searchQuery) => "Inga resultat hittades för \'${searchQuery}\'."; - static m53(resourcePluralName) => "Inga ${resourcePluralName} hittades."; + static m55(resourcePluralName) => "Inga ${resourcePluralName} hittades."; - static m54(resourcePluralName) => "Sök ${resourcePluralName} ..."; + static m56(resourcePluralName) => "Sök ${resourcePluralName} ..."; - static m55(searchQuery) => "Inga gemenskaper hittades för \'${searchQuery}\'."; + static m57(searchQuery) => "Inga gemenskaper hittades för \'${searchQuery}\'."; - static m56(searchQuery) => "Inga resultat hittades för \'${searchQuery}\'."; + static m58(searchQuery) => "Inga resultat hittades för \'${searchQuery}\'."; - static m57(searchQuery) => "Inga användare hittades för \'${searchQuery}\'."; + static m59(searchQuery) => "Inga användare hittades för \'${searchQuery}\'."; - static m58(searchQuery) => "Söker efter \'${searchQuery}\'"; + static m60(searchQuery) => "Söker efter \'${searchQuery}\'"; final messages = _notInlinedMessages(_notInlinedMessages); static _notInlinedMessages(_) => { + "application_settings__comment_sort_newest_first" : MessageLookupByLibrary.simpleMessage("Nyast först"), + "application_settings__comment_sort_oldest_first" : MessageLookupByLibrary.simpleMessage("Äldst först"), + "application_settings__link_previews" : MessageLookupByLibrary.simpleMessage("Förhandsgranskning av länkar"), + "application_settings__link_previews_autoplay_always" : MessageLookupByLibrary.simpleMessage("Alltid"), + "application_settings__link_previews_autoplay_never" : MessageLookupByLibrary.simpleMessage("Aldrig"), + "application_settings__link_previews_autoplay_wifi_only" : MessageLookupByLibrary.simpleMessage("Endast Wifi"), + "application_settings__link_previews_show" : MessageLookupByLibrary.simpleMessage("Visa"), + "application_settings__tap_to_change" : MessageLookupByLibrary.simpleMessage("(Tryck för att ändra)"), + "application_settings__videos" : MessageLookupByLibrary.simpleMessage("Videor"), + "application_settings__videos_autoplay" : MessageLookupByLibrary.simpleMessage("Automatisk uppspelning"), + "application_settings__videos_autoplay_always" : MessageLookupByLibrary.simpleMessage("Alltid"), + "application_settings__videos_autoplay_never" : MessageLookupByLibrary.simpleMessage("Aldrig"), + "application_settings__videos_autoplay_wifi_only" : MessageLookupByLibrary.simpleMessage("Endast Wifi"), + "application_settings__videos_sound" : MessageLookupByLibrary.simpleMessage("Ljud"), + "application_settings__videos_sound_disabled" : MessageLookupByLibrary.simpleMessage("Inaktiverat"), + "application_settings__videos_sound_enabled" : MessageLookupByLibrary.simpleMessage("Aktiverat"), "auth__change_password_current_pwd" : MessageLookupByLibrary.simpleMessage("Nuvarande lösenord"), "auth__change_password_current_pwd_hint" : MessageLookupByLibrary.simpleMessage("Ange ditt nuvarande lösenord"), "auth__change_password_current_pwd_incorrect" : MessageLookupByLibrary.simpleMessage("Det angivna lösenordet var felaktigt"), @@ -214,7 +233,7 @@ class MessageLookup extends MessageLookupByLibrary { "auth__description_range_error" : m1, "auth__email_empty_error" : MessageLookupByLibrary.simpleMessage("Du måste ange en e-postadress."), "auth__email_invalid_error" : MessageLookupByLibrary.simpleMessage("Vänligen ange en giltig e-postadress."), - "auth__headline" : MessageLookupByLibrary.simpleMessage("Bättre socialt."), + "auth__headline" : MessageLookupByLibrary.simpleMessage("Better social."), "auth__login" : MessageLookupByLibrary.simpleMessage("Logga in"), "auth__login__connection_error" : MessageLookupByLibrary.simpleMessage("Vi kan inte nå våra servrar. Är du uppkopplad mot internet?"), "auth__login__credentials_mismatch_error" : MessageLookupByLibrary.simpleMessage("De angivna uppgifterna matchar inte."), @@ -344,6 +363,7 @@ class MessageLookup extends MessageLookupByLibrary { "community__posts" : MessageLookupByLibrary.simpleMessage("Inlägg"), "community__refresh_text" : MessageLookupByLibrary.simpleMessage("Uppdatera"), "community__refreshing" : MessageLookupByLibrary.simpleMessage("Uppdaterar gemenskap"), + "community__retry_loading_posts" : MessageLookupByLibrary.simpleMessage("Tryck för att försöka igen"), "community__rules_empty_error" : MessageLookupByLibrary.simpleMessage("Regelfältet kan inte vara tomt."), "community__rules_range_error" : m14, "community__rules_text" : MessageLookupByLibrary.simpleMessage("Regler"), @@ -383,6 +403,7 @@ class MessageLookup extends MessageLookupByLibrary { "community__unfavorite_action" : MessageLookupByLibrary.simpleMessage("Ta bort gemenskap från favoriter"), "community__user_you_text" : MessageLookupByLibrary.simpleMessage("Du"), "community__yes" : MessageLookupByLibrary.simpleMessage("Ja"), + "contextual_account_search_box__suggestions" : MessageLookupByLibrary.simpleMessage("Förslag"), "drawer__account_settings" : MessageLookupByLibrary.simpleMessage("Kontoinställningar"), "drawer__account_settings_blocked_users" : MessageLookupByLibrary.simpleMessage("Blockerade användare"), "drawer__account_settings_change_email" : MessageLookupByLibrary.simpleMessage("Ändra e-post"), @@ -395,6 +416,7 @@ class MessageLookup extends MessageLookupByLibrary { "drawer__application_settings" : MessageLookupByLibrary.simpleMessage("Programinställningar"), "drawer__connections" : MessageLookupByLibrary.simpleMessage("Mina kontakter"), "drawer__customize" : MessageLookupByLibrary.simpleMessage("Anpassa"), + "drawer__developer_settings" : MessageLookupByLibrary.simpleMessage("Utvecklarinställningar"), "drawer__global_moderation" : MessageLookupByLibrary.simpleMessage("Global moderering"), "drawer__help" : MessageLookupByLibrary.simpleMessage("Hjälp och feedback"), "drawer__lists" : MessageLookupByLibrary.simpleMessage("Mina listor"), @@ -428,6 +450,9 @@ class MessageLookup extends MessageLookupByLibrary { "drawer__useful_links_title" : MessageLookupByLibrary.simpleMessage("Användbara länkar"), "error__no_internet_connection" : MessageLookupByLibrary.simpleMessage("Ingen internetuppkoppling"), "error__unknown_error" : MessageLookupByLibrary.simpleMessage("Okänt fel"), + "image_picker__error_too_large" : m19, + "image_picker__from_camera" : MessageLookupByLibrary.simpleMessage("Från kameran"), + "image_picker__from_gallery" : MessageLookupByLibrary.simpleMessage("Från galleriet"), "moderation__actions_chat_with_team" : MessageLookupByLibrary.simpleMessage("Chatta med teamet"), "moderation__actions_review" : MessageLookupByLibrary.simpleMessage("Granska"), "moderation__category_text" : MessageLookupByLibrary.simpleMessage("Kategori"), @@ -484,7 +509,7 @@ class MessageLookup extends MessageLookupByLibrary { "moderation__reporter_text" : MessageLookupByLibrary.simpleMessage("Anmälare"), "moderation__reports_preview_resource_reports" : MessageLookupByLibrary.simpleMessage("anmälningar"), "moderation__reports_preview_title" : MessageLookupByLibrary.simpleMessage("Anmälningar"), - "moderation__reports_see_all" : m19, + "moderation__reports_see_all" : m20, "moderation__tap_to_retry" : MessageLookupByLibrary.simpleMessage("Tryck för att försöka läsa in poster igen"), "moderation__update_category_save" : MessageLookupByLibrary.simpleMessage("Spara"), "moderation__update_category_title" : MessageLookupByLibrary.simpleMessage("Uppdatera kategori"), @@ -499,14 +524,14 @@ class MessageLookup extends MessageLookupByLibrary { "moderation__you_have_reported_community_text" : MessageLookupByLibrary.simpleMessage("Du har anmält den här gemenskapen"), "moderation__you_have_reported_post_text" : MessageLookupByLibrary.simpleMessage("Du har anmält det här inlägget"), "notifications__accepted_connection_request_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] accepterade din kontaktförfrågan."), - "notifications__comment_comment_notification_tile_user_also_commented" : m20, - "notifications__comment_comment_notification_tile_user_commented" : m21, + "notifications__comment_comment_notification_tile_user_also_commented" : m21, + "notifications__comment_comment_notification_tile_user_commented" : m22, "notifications__comment_desc" : MessageLookupByLibrary.simpleMessage("Bli meddelad när någon kommenterar på ett av dina inlägg eller ett inlägg du också kommenterat på."), "notifications__comment_reaction_desc" : MessageLookupByLibrary.simpleMessage("Bli meddelad när någon reagerar på en av dina inläggskommentarer."), "notifications__comment_reaction_title" : MessageLookupByLibrary.simpleMessage("Reaktion på kommentar"), "notifications__comment_reply_desc" : MessageLookupByLibrary.simpleMessage("Bli meddelad när någon svarar på en av dina kommentarer eller en kommentar du också svarat på."), - "notifications__comment_reply_notification_tile_user_also_replied" : m22, - "notifications__comment_reply_notification_tile_user_replied" : m23, + "notifications__comment_reply_notification_tile_user_also_replied" : m23, + "notifications__comment_reply_notification_tile_user_replied" : m24, "notifications__comment_reply_title" : MessageLookupByLibrary.simpleMessage("Svar på kommentar"), "notifications__comment_title" : MessageLookupByLibrary.simpleMessage("Kommentar på inlägg"), "notifications__comment_user_mention_desc" : MessageLookupByLibrary.simpleMessage("Bli meddelad när någon nämner dig i en av sina kommentarer"), @@ -521,7 +546,7 @@ class MessageLookup extends MessageLookupByLibrary { "notifications__following_you_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] har börjat följa dig."), "notifications__general_desc" : MessageLookupByLibrary.simpleMessage("Bli meddelad när något händer"), "notifications__general_title" : MessageLookupByLibrary.simpleMessage("Aviseringar"), - "notifications__mentioned_in_post_comment_tile" : m24, + "notifications__mentioned_in_post_comment_tile" : m25, "notifications__mentioned_in_post_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] nämnde dig i ett inlägg."), "notifications__mute_post_turn_off_post_comment_notifications" : MessageLookupByLibrary.simpleMessage("Inaktivera aviseringar för inläggskommentarer"), "notifications__mute_post_turn_off_post_notifications" : MessageLookupByLibrary.simpleMessage("Inaktivera aviseringar för inlägg"), @@ -534,7 +559,9 @@ class MessageLookup extends MessageLookupByLibrary { "notifications__reacted_to_post_comment_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] reagerade på din inläggskommentar."), "notifications__reacted_to_post_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] reagerade på ditt inlägg."), "notifications__settings_title" : MessageLookupByLibrary.simpleMessage("Aviseringsinställningar"), - "notifications__user_community_invite_tile" : m25, + "notifications__tab_general" : MessageLookupByLibrary.simpleMessage("Allmänna"), + "notifications__tab_requests" : MessageLookupByLibrary.simpleMessage("Förfrågningar"), + "notifications__user_community_invite_tile" : m26, "post__action_comment" : MessageLookupByLibrary.simpleMessage("Kommentera"), "post__action_react" : MessageLookupByLibrary.simpleMessage("Reagera"), "post__action_reply" : MessageLookupByLibrary.simpleMessage("Svara"), @@ -546,8 +573,9 @@ class MessageLookup extends MessageLookupByLibrary { "post__actions_report_text" : MessageLookupByLibrary.simpleMessage("Anmäl"), "post__actions_reported_text" : MessageLookupByLibrary.simpleMessage("Anmäld"), "post__actions_show_more_text" : MessageLookupByLibrary.simpleMessage("Visa mer"), + "post__close_create_post_label" : MessageLookupByLibrary.simpleMessage("Stäng nytt inlägg-rutan"), "post__close_post" : MessageLookupByLibrary.simpleMessage("Stäng inlägg"), - "post__comment_maxlength_error" : m26, + "post__comment_maxlength_error" : m27, "post__comment_reply_expanded_post" : MessageLookupByLibrary.simpleMessage("Skicka"), "post__comment_reply_expanded_reply_comment" : MessageLookupByLibrary.simpleMessage("Svar på kommentar"), "post__comment_reply_expanded_reply_hint_text" : MessageLookupByLibrary.simpleMessage("Ditt svar..."), @@ -584,10 +612,13 @@ class MessageLookup extends MessageLookupByLibrary { "post__comments_page_tap_to_retry" : MessageLookupByLibrary.simpleMessage("Tryck för att försöka läsa in kommentarerna igen."), "post__comments_page_tap_to_retry_replies" : MessageLookupByLibrary.simpleMessage("Tryck för att försöka läsa in svaren igen."), "post__comments_page_title" : MessageLookupByLibrary.simpleMessage("Inläggskommentarer"), - "post__comments_view_all_comments" : m27, + "post__comments_view_all_comments" : m28, "post__create_new" : MessageLookupByLibrary.simpleMessage("Nytt inlägg"), + "post__create_new_community_post_label" : MessageLookupByLibrary.simpleMessage("Skapa ett nytt gemenskapsinlägg"), + "post__create_new_post_label" : MessageLookupByLibrary.simpleMessage("Skapa ett nytt inlägg"), "post__create_next" : MessageLookupByLibrary.simpleMessage("Nästa"), "post__create_photo" : MessageLookupByLibrary.simpleMessage("Foto"), + "post__create_video" : MessageLookupByLibrary.simpleMessage("Video"), "post__disable_post_comments" : MessageLookupByLibrary.simpleMessage("Stäng kommentarsfältet"), "post__edit_save" : MessageLookupByLibrary.simpleMessage("Spara"), "post__edit_title" : MessageLookupByLibrary.simpleMessage("Redigera inlägg"), @@ -596,7 +627,7 @@ class MessageLookup extends MessageLookupByLibrary { "post__is_closed" : MessageLookupByLibrary.simpleMessage("Stängt inlägg"), "post__my_circles" : MessageLookupByLibrary.simpleMessage("Mina kretsar"), "post__my_circles_desc" : MessageLookupByLibrary.simpleMessage("Dela inlägget med en eller flera av dina kretsar."), - "post__no_circles_for" : m28, + "post__no_circles_for" : m29, "post__open_post" : MessageLookupByLibrary.simpleMessage("Öppna inlägg"), "post__post_closed" : MessageLookupByLibrary.simpleMessage("Inlägg stängt "), "post__post_opened" : MessageLookupByLibrary.simpleMessage("Inlägg öppnat"), @@ -606,6 +637,7 @@ class MessageLookup extends MessageLookupByLibrary { "post__profile_counts_following" : MessageLookupByLibrary.simpleMessage(" Följer"), "post__profile_counts_post" : MessageLookupByLibrary.simpleMessage(" Inlägg"), "post__profile_counts_posts" : MessageLookupByLibrary.simpleMessage(" Inlägg"), + "post__profile_retry_loading_posts" : MessageLookupByLibrary.simpleMessage("Tryck för att försöka igen"), "post__reaction_list_tap_retry" : MessageLookupByLibrary.simpleMessage("Tryck för att försöka läsa in reaktionerna igen."), "post__search_circles" : MessageLookupByLibrary.simpleMessage("Sök kretsar..."), "post__share" : MessageLookupByLibrary.simpleMessage("Dela"), @@ -636,17 +668,36 @@ class MessageLookup extends MessageLookupByLibrary { "post__timeline_posts_failed_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Försök igen om några sekunder"), "post__timeline_posts_failed_drhoo_title" : MessageLookupByLibrary.simpleMessage("Din tidslinje kunde inte läsas in."), "post__timeline_posts_no_more_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Följ användare eller gå med i en gemenskap för att komma igång!"), - "post__timeline_posts_no_more_drhoo_title" : MessageLookupByLibrary.simpleMessage("Din tidslinje är tom."), "post__timeline_posts_refresh_posts" : MessageLookupByLibrary.simpleMessage("Läs in inlägg"), - "post__timeline_posts_refreshing_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Läser in din tidslinje."), "post__timeline_posts_refreshing_drhoo_title" : MessageLookupByLibrary.simpleMessage("Håll ut!"), "post__trending_posts_no_trending_posts" : MessageLookupByLibrary.simpleMessage("Det finns inga trendiga inlägg. Försök uppdatera om några sekunder."), "post__trending_posts_refresh" : MessageLookupByLibrary.simpleMessage("Uppdatera"), "post__trending_posts_title" : MessageLookupByLibrary.simpleMessage("Trendiga inlägg"), - "post__user_has_not_shared_anything" : m29, - "post__usernames_circles" : m30, + "post__user_has_not_shared_anything" : m30, + "post__usernames_circles" : m31, "post__world_circle_name" : MessageLookupByLibrary.simpleMessage("Världen"), "post__you_shared_with" : MessageLookupByLibrary.simpleMessage("Du delade med"), + "post_body_link_preview__empty" : MessageLookupByLibrary.simpleMessage("Länken kunde inte förhandsvisas"), + "post_body_link_preview__error_with_description" : m32, + "post_body_media__unsupported" : MessageLookupByLibrary.simpleMessage("Mediatypen stöds inte"), + "post_uploader__cancelled" : MessageLookupByLibrary.simpleMessage("Avbrutet!"), + "post_uploader__cancelling" : MessageLookupByLibrary.simpleMessage("Avbryter"), + "post_uploader__compressing_media" : MessageLookupByLibrary.simpleMessage("Komprimerar media..."), + "post_uploader__creating_post" : MessageLookupByLibrary.simpleMessage("Skapar inlägget..."), + "post_uploader__generic_upload_failed" : MessageLookupByLibrary.simpleMessage("Uppladdningen misslyckades"), + "post_uploader__processing" : MessageLookupByLibrary.simpleMessage("Bearbetar inlägget..."), + "post_uploader__publishing" : MessageLookupByLibrary.simpleMessage("Publicerar inlägget..."), + "post_uploader__success" : MessageLookupByLibrary.simpleMessage("Klart!"), + "post_uploader__uploading_media" : MessageLookupByLibrary.simpleMessage("Laddar upp media..."), + "posts_stream__all_loaded" : MessageLookupByLibrary.simpleMessage("🎉 Alla inlägg inlästa"), + "posts_stream__empty_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Försök igen om några sekunder."), + "posts_stream__empty_drhoo_title" : MessageLookupByLibrary.simpleMessage("Det här flödet är tomt."), + "posts_stream__failed_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Försök igen om några sekunder"), + "posts_stream__failed_drhoo_title" : MessageLookupByLibrary.simpleMessage("Kunde inte läsa in flödet."), + "posts_stream__refreshing_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Uppdaterar flödet."), + "posts_stream__refreshing_drhoo_title" : MessageLookupByLibrary.simpleMessage("Håll ut!"), + "posts_stream__status_tile_empty" : MessageLookupByLibrary.simpleMessage("Inga inlägg hittades"), + "posts_stream__status_tile_no_more_to_load" : MessageLookupByLibrary.simpleMessage("🎉 Alla inlägg inlästa"), "user__add_account_done" : MessageLookupByLibrary.simpleMessage("Klar"), "user__add_account_save" : MessageLookupByLibrary.simpleMessage("Spara"), "user__add_account_success" : MessageLookupByLibrary.simpleMessage("Kontot lades till"), @@ -662,8 +713,8 @@ class MessageLookup extends MessageLookupByLibrary { "user__change_email_success_info" : MessageLookupByLibrary.simpleMessage("Vi har skickat en bekräftelselänk till din nya e-postadress, klicka på den för att verifiera din nya e-post"), "user__change_email_title" : MessageLookupByLibrary.simpleMessage("Ändra e-postadress"), "user__circle_name_empty_error" : MessageLookupByLibrary.simpleMessage("Du måste ge kretsen ett namn."), - "user__circle_name_range_error" : m31, - "user__circle_peoples_count" : m32, + "user__circle_name_range_error" : m33, + "user__circle_peoples_count" : m34, "user__clear_app_preferences_cleared_successfully" : MessageLookupByLibrary.simpleMessage("Inställningarna har rensats"), "user__clear_app_preferences_desc" : MessageLookupByLibrary.simpleMessage("Rensa applikationsinställningarna. Just nu är detta enbart den föredragna kommentarsordningen."), "user__clear_app_preferences_error" : MessageLookupByLibrary.simpleMessage("Inställningarna kunde inte rensas"), @@ -675,13 +726,13 @@ class MessageLookup extends MessageLookupByLibrary { "user__confirm_block_user_blocked" : MessageLookupByLibrary.simpleMessage("Användare blockerad."), "user__confirm_block_user_info" : MessageLookupByLibrary.simpleMessage("Ni kommer inte kunna se varandras inlägg eller kunna interagera med varandra."), "user__confirm_block_user_no" : MessageLookupByLibrary.simpleMessage("Nej"), - "user__confirm_block_user_question" : m33, + "user__confirm_block_user_question" : m35, "user__confirm_block_user_title" : MessageLookupByLibrary.simpleMessage("Bekräftelse"), "user__confirm_block_user_yes" : MessageLookupByLibrary.simpleMessage("Ja"), "user__confirm_connection_add_connection" : MessageLookupByLibrary.simpleMessage("Lägg till kontakt i krets"), "user__confirm_connection_confirm_text" : MessageLookupByLibrary.simpleMessage("Bekräfta"), "user__confirm_connection_connection_confirmed" : MessageLookupByLibrary.simpleMessage("Kontaktförfrågan bekräftad"), - "user__confirm_connection_with" : m34, + "user__confirm_connection_with" : m36, "user__confirm_guidelines_reject_chat_community" : MessageLookupByLibrary.simpleMessage("Chatta med gemenskapen."), "user__confirm_guidelines_reject_chat_immediately" : MessageLookupByLibrary.simpleMessage("Starta en chat direkt."), "user__confirm_guidelines_reject_chat_with_team" : MessageLookupByLibrary.simpleMessage("Chatta med teamet."), @@ -691,7 +742,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__confirm_guidelines_reject_join_slack" : MessageLookupByLibrary.simpleMessage("Gå med i Slack-kanalen."), "user__confirm_guidelines_reject_title" : MessageLookupByLibrary.simpleMessage("Avvisande av riktlinjer"), "user__connect_to_user_add_connection" : MessageLookupByLibrary.simpleMessage("Lägg till kontakt i krets"), - "user__connect_to_user_connect_with_username" : m35, + "user__connect_to_user_connect_with_username" : m37, "user__connect_to_user_done" : MessageLookupByLibrary.simpleMessage("Klar"), "user__connect_to_user_request_sent" : MessageLookupByLibrary.simpleMessage("Kontaktförfrågan skickad"), "user__connection_circle_edit" : MessageLookupByLibrary.simpleMessage("Redigera"), @@ -709,28 +760,29 @@ class MessageLookup extends MessageLookupByLibrary { "user__delete_account_current_pwd_hint" : MessageLookupByLibrary.simpleMessage("Ange ditt nuvarande lösenord"), "user__delete_account_next" : MessageLookupByLibrary.simpleMessage("Nästa"), "user__delete_account_title" : MessageLookupByLibrary.simpleMessage("Ta bort konto"), - "user__disconnect_from_user" : m36, + "user__disconnect_from_user" : m38, "user__disconnect_from_user_success" : MessageLookupByLibrary.simpleMessage("Er kontakt har brutits"), "user__edit_profile_bio" : MessageLookupByLibrary.simpleMessage("Bio"), + "user__edit_profile_community_posts" : MessageLookupByLibrary.simpleMessage("Gemenskapsinlägg"), "user__edit_profile_delete" : MessageLookupByLibrary.simpleMessage("Ta bort"), "user__edit_profile_followers_count" : MessageLookupByLibrary.simpleMessage("Följarantal"), "user__edit_profile_location" : MessageLookupByLibrary.simpleMessage("Plats"), "user__edit_profile_name" : MessageLookupByLibrary.simpleMessage("Namn"), "user__edit_profile_pick_image" : MessageLookupByLibrary.simpleMessage("Välj bild"), - "user__edit_profile_pick_image_error_too_large" : m37, + "user__edit_profile_pick_image_error_too_large" : m39, "user__edit_profile_save_text" : MessageLookupByLibrary.simpleMessage("Spara"), "user__edit_profile_title" : MessageLookupByLibrary.simpleMessage("Redigera profil"), "user__edit_profile_url" : MessageLookupByLibrary.simpleMessage("Url"), - "user__edit_profile_user_name_taken" : m38, + "user__edit_profile_user_name_taken" : m40, "user__edit_profile_username" : MessageLookupByLibrary.simpleMessage("Användarnamn"), "user__email_verification_error" : MessageLookupByLibrary.simpleMessage("Hoppsan! Din kod är ogiltigt eller har gått ut, vänligen försök igen"), "user__email_verification_successful" : MessageLookupByLibrary.simpleMessage("Häftigt! Din e-post har verifierats"), "user__emoji_field_none_selected" : MessageLookupByLibrary.simpleMessage("Ingen emoji vald"), - "user__emoji_search_none_found" : m39, + "user__emoji_search_none_found" : m41, "user__follow_button_follow_text" : MessageLookupByLibrary.simpleMessage("Följ"), "user__follow_button_unfollow_text" : MessageLookupByLibrary.simpleMessage("Sluta följa"), "user__follow_lists_no_list_found" : MessageLookupByLibrary.simpleMessage("Inga listor hittades."), - "user__follow_lists_no_list_found_for" : m40, + "user__follow_lists_no_list_found_for" : m42, "user__follow_lists_search_for" : MessageLookupByLibrary.simpleMessage("Sök efter en lista..."), "user__follow_lists_title" : MessageLookupByLibrary.simpleMessage("Mina listor"), "user__follower_plural" : MessageLookupByLibrary.simpleMessage("följare"), @@ -738,21 +790,21 @@ class MessageLookup extends MessageLookupByLibrary { "user__followers_title" : MessageLookupByLibrary.simpleMessage("Följare"), "user__following_resource_name" : MessageLookupByLibrary.simpleMessage("följda användare"), "user__following_text" : MessageLookupByLibrary.simpleMessage("Följer"), - "user__follows_list_accounts_count" : m41, + "user__follows_list_accounts_count" : m43, "user__follows_list_edit" : MessageLookupByLibrary.simpleMessage("Redigera"), "user__follows_list_header_title" : MessageLookupByLibrary.simpleMessage("Användare"), "user__follows_lists_account" : MessageLookupByLibrary.simpleMessage("1 Konto"), - "user__follows_lists_accounts" : m42, - "user__groups_see_all" : m43, + "user__follows_lists_accounts" : m44, + "user__groups_see_all" : m45, "user__guidelines_accept" : MessageLookupByLibrary.simpleMessage("Godkänn"), "user__guidelines_desc" : MessageLookupByLibrary.simpleMessage("Vänligen lägg en stund på att läsa igenom och godkänna våra riktlinjer."), "user__guidelines_reject" : MessageLookupByLibrary.simpleMessage("Avvisa"), "user__invite" : MessageLookupByLibrary.simpleMessage("Bjud in"), "user__invite_member" : MessageLookupByLibrary.simpleMessage("Medlem"), - "user__invite_someone_message" : m44, + "user__invite_someone_message" : m46, "user__invites_accepted_group_item_name" : MessageLookupByLibrary.simpleMessage("accepterad inbjudan"), "user__invites_accepted_group_name" : MessageLookupByLibrary.simpleMessage("accepterade inbjudningar"), - "user__invites_accepted_title" : MessageLookupByLibrary.simpleMessage("Accepterad"), + "user__invites_accepted_title" : MessageLookupByLibrary.simpleMessage("Accepterade"), "user__invites_create_create" : MessageLookupByLibrary.simpleMessage("Skapa"), "user__invites_create_create_title" : MessageLookupByLibrary.simpleMessage("Skapa inbjudan"), "user__invites_create_edit_title" : MessageLookupByLibrary.simpleMessage("Redigera inbjudan"), @@ -768,11 +820,11 @@ class MessageLookup extends MessageLookupByLibrary { "user__invites_email_text" : MessageLookupByLibrary.simpleMessage("E-post"), "user__invites_invite_a_friend" : MessageLookupByLibrary.simpleMessage("Bjud in en vän"), "user__invites_invite_text" : MessageLookupByLibrary.simpleMessage("Bjud in"), - "user__invites_joined_with" : m45, + "user__invites_joined_with" : m47, "user__invites_none_left" : MessageLookupByLibrary.simpleMessage("Du har inga inbjudningar tillgängliga."), "user__invites_none_used" : MessageLookupByLibrary.simpleMessage("Det ser ut som att du inte använt några inbjudningar."), "user__invites_pending" : MessageLookupByLibrary.simpleMessage("Väntande"), - "user__invites_pending_email" : m46, + "user__invites_pending_email" : m48, "user__invites_pending_group_item_name" : MessageLookupByLibrary.simpleMessage("väntande inbjudan"), "user__invites_pending_group_name" : MessageLookupByLibrary.simpleMessage("väntande inbjudningar"), "user__invites_refresh" : MessageLookupByLibrary.simpleMessage("Uppdatera"), @@ -785,14 +837,14 @@ class MessageLookup extends MessageLookupByLibrary { "user__language_settings_saved_success" : MessageLookupByLibrary.simpleMessage("Språket har uppdaterats"), "user__language_settings_title" : MessageLookupByLibrary.simpleMessage("Språkinställningar"), "user__list_name_empty_error" : MessageLookupByLibrary.simpleMessage("Du måste ge listan ett namn."), - "user__list_name_range_error" : m47, + "user__list_name_range_error" : m49, "user__million_postfix" : MessageLookupByLibrary.simpleMessage("mn"), "user__profile_action_cancel_connection" : MessageLookupByLibrary.simpleMessage("Avbryt kontaktförfrågan"), "user__profile_action_deny_connection" : MessageLookupByLibrary.simpleMessage("Neka kontaktförfrågan"), "user__profile_action_user_blocked" : MessageLookupByLibrary.simpleMessage("Användare blockerad"), "user__profile_action_user_unblocked" : MessageLookupByLibrary.simpleMessage("Användare avblockerad"), - "user__profile_bio_length_error" : m48, - "user__profile_location_length_error" : m49, + "user__profile_bio_length_error" : m50, + "user__profile_location_length_error" : m51, "user__profile_url_invalid_error" : MessageLookupByLibrary.simpleMessage("Vänligen ange en giltig URL."), "user__remove_account_from_list" : MessageLookupByLibrary.simpleMessage("Ta bort konto från listor"), "user__remove_account_from_list_success" : MessageLookupByLibrary.simpleMessage("Konto borttaget från listor"), @@ -802,7 +854,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__save_connection_circle_edit" : MessageLookupByLibrary.simpleMessage("Redigera krets"), "user__save_connection_circle_hint" : MessageLookupByLibrary.simpleMessage("t. ex. Vänner, Familj, Jobb."), "user__save_connection_circle_name" : MessageLookupByLibrary.simpleMessage("Namn"), - "user__save_connection_circle_name_taken" : m50, + "user__save_connection_circle_name_taken" : m52, "user__save_connection_circle_save" : MessageLookupByLibrary.simpleMessage("Spara"), "user__save_connection_circle_users" : MessageLookupByLibrary.simpleMessage("Användare"), "user__save_follows_list_create" : MessageLookupByLibrary.simpleMessage("Skapa lista"), @@ -811,7 +863,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__save_follows_list_emoji_required_error" : MessageLookupByLibrary.simpleMessage("En emoji krävs"), "user__save_follows_list_hint_text" : MessageLookupByLibrary.simpleMessage("t. ex. Resor, Fotografering"), "user__save_follows_list_name" : MessageLookupByLibrary.simpleMessage("Namn"), - "user__save_follows_list_name_taken" : m51, + "user__save_follows_list_name_taken" : m53, "user__save_follows_list_save" : MessageLookupByLibrary.simpleMessage("Spara"), "user__save_follows_list_users" : MessageLookupByLibrary.simpleMessage("Användare"), "user__thousand_postfix" : MessageLookupByLibrary.simpleMessage("t"), @@ -821,7 +873,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__timeline_filters_circles" : MessageLookupByLibrary.simpleMessage("Kretsar"), "user__timeline_filters_clear_all" : MessageLookupByLibrary.simpleMessage("Återställ"), "user__timeline_filters_lists" : MessageLookupByLibrary.simpleMessage("Listor"), - "user__timeline_filters_no_match" : m52, + "user__timeline_filters_no_match" : m54, "user__timeline_filters_search_desc" : MessageLookupByLibrary.simpleMessage("Sök efter kretsar och listor..."), "user__timeline_filters_title" : MessageLookupByLibrary.simpleMessage("Tidslinjefilter"), "user__translate_see_translation" : MessageLookupByLibrary.simpleMessage("Visa översättning"), @@ -833,15 +885,17 @@ class MessageLookup extends MessageLookupByLibrary { "user__update_connection_circles_title" : MessageLookupByLibrary.simpleMessage("Uppdatera kontaktkretsar"), "user_search__cancel" : MessageLookupByLibrary.simpleMessage("Avbryt"), "user_search__communities" : MessageLookupByLibrary.simpleMessage("Gemenskaper"), - "user_search__list_no_results_found" : m53, + "user_search__list_no_results_found" : m55, "user_search__list_refresh_text" : MessageLookupByLibrary.simpleMessage("Uppdatera"), "user_search__list_retry" : MessageLookupByLibrary.simpleMessage("Tryck för att försöka igen."), - "user_search__list_search_text" : m54, - "user_search__no_communities_for" : m55, - "user_search__no_results_for" : m56, - "user_search__no_users_for" : m57, + "user_search__list_search_text" : m56, + "user_search__no_communities_for" : m57, + "user_search__no_results_for" : m58, + "user_search__no_users_for" : m59, "user_search__search_text" : MessageLookupByLibrary.simpleMessage("Sök..."), - "user_search__searching_for" : m58, - "user_search__users" : MessageLookupByLibrary.simpleMessage("Användare") + "user_search__searching_for" : m60, + "user_search__users" : MessageLookupByLibrary.simpleMessage("Användare"), + "video_picker__from_camera" : MessageLookupByLibrary.simpleMessage("Från kameran"), + "video_picker__from_gallery" : MessageLookupByLibrary.simpleMessage("Från galleriet") }; } diff --git a/lib/locale/messages_tr.dart b/lib/locale/messages_tr.dart index dc976fe53..e5edc8392 100644 --- a/lib/locale/messages_tr.dart +++ b/lib/locale/messages_tr.dart @@ -3,22 +3,21 @@ // messages from the main program should be duplicated here with the same // function name. -// ignore_for_file: unnecessary_brace_in_string_interps +// Ignore issues from commonly used lints in this file. +// ignore_for_file:unnecessary_brace_in_string_interps, unnecessary_new +// ignore_for_file:prefer_single_quotes,comment_references, directives_ordering +// ignore_for_file:annotate_overrides,prefer_generic_function_type_aliases +// ignore_for_file:unused_import, file_names import 'package:intl/intl.dart'; import 'package:intl/message_lookup_by_library.dart'; -// ignore: unnecessary_new final messages = new MessageLookup(); -// ignore: unused_element -final _keepAnalysisHappy = Intl.defaultLocale; - -// ignore: non_constant_identifier_names -typedef MessageIfAbsent(String message_str, List args); +typedef String MessageIfAbsent(String messageStr, List args); class MessageLookup extends MessageLookupByLibrary { - get localeName => 'tr'; + String get localeName => 'tr'; static m0(minLength, maxLength) => "(${minLength}-${maxLength} karakter)"; @@ -26,7 +25,7 @@ class MessageLookup extends MessageLookupByLibrary { static m2(minLength, maxLength) => "İsim karakter sayısı ${minLength} ve ${maxLength} uzunluğu arasında olmalıdır."; - static m3(minLength, maxLength) => "Parola karakter sayısı ${minLength} ve ${maxLength} uzunluğu arasında olmalıdır."; + static m3(minLength, maxLength) => "Parola karakteri sayısı ${minLength} ile ${maxLength} uzunluğu arasında olmalıdır."; static m4(maxLength) => "Bir kullanıcı adı ${maxLength} karakterden daha uzun olamaz."; @@ -58,95 +57,115 @@ class MessageLookup extends MessageLookupByLibrary { static m18(currentUserLanguage) => "Dil (${currentUserLanguage})"; - static m19(resourceCount, resourceName) => "Hepsini gör ${resourceCount} ${resourceName}"; + static m19(limit) => "Dosya çok büyük (limit: ${limit} MB)"; + + static m20(resourceCount, resourceName) => "Hepsini gör ${resourceCount} ${resourceName}"; + + static m21(postCommentText) => "Ayrıca [name] [username] yorum yaptı: ${postCommentText}"; - static m20(postCommentText) => "Ayrıca [name] [username] yorum yaptı: ${postCommentText}"; + static m22(postCommentText) => "[name] [username] gönderinize yorum yaptı: ${postCommentText}"; - static m21(postCommentText) => "[name] [username] gönderinize yorum yaptı: ${postCommentText}"; + static m23(postCommentText) => "ayrıca [name] [username] yanıtladı: ${postCommentText}"; - static m22(postCommentText) => "ayrıca [name] [username] yanıtladı: ${postCommentText}"; + static m24(postCommentText) => "[name] [username] yanıtladı: ${postCommentText}"; - static m23(postCommentText) => "[name] [username] yanıtladı: ${postCommentText}"; + static m25(postCommentText) => "[name] [username] bir yorumda sizden bahsetti: ${postCommentText}"; - static m24(postCommentText) => "[name] [username] bir yorumda sizden bahsetti: ${postCommentText}"; + static m26(communityName) => "[name] [username] sizi /c/${communityName} topluluğuna davet etti."; - static m25(communityName) => "[name] [username] sizi /c/${communityName} topluluğuna davet etti."; + static m27(maxLength) => "Yorum kısmı ${maxLength} karakterden daha uzun olamaz."; - static m26(maxLength) => "Yorum kısmı ${maxLength} karakterden daha uzun olamaz."; + static m28(commentsCount) => "${commentsCount} yorumun tümünü görüntüle"; - static m27(commentsCount) => "${commentsCount} yorumun tümünü görüntüle"; + static m29(circlesSearchQuery) => "\'\'\'${circlesSearchQuery}\' ile eşleşen hiçbir çevre bulunamadı."; - static m28(circlesSearchQuery) => "\'\'\'${circlesSearchQuery}\' ile eşleşen hiçbir çevre bulunamadı."; + static m30(name) => "${name} henüz bir şey paylaşmadı."; - static m29(name) => "${name} henüz bir şey paylaşmadı."; + static m31(postCreatorUsername) => "@${postCreatorUsername} adlı kullanıcının çevreleri"; - static m30(postCreatorUsername) => "@${postCreatorUsername} adlı kullanıcının çevreleri"; + static m32(description) => "Web sitesi hatası ile bağlantıyı önizleyemedi: ${description}"; - static m31(maxLength) => "Çevre adı ${maxLength} karakterden daha uzun olamaz."; + static m33(maxLength) => "Çevre adı ${maxLength} karakterden daha uzun olamaz."; - static m32(prettyUsersCount) => "${prettyUsersCount} kişi"; + static m34(prettyUsersCount) => "${prettyUsersCount} kişi"; - static m33(username) => "@${username} adlı kullanıcıyı engellemek istediğinizden emin misiniz?"; + static m35(username) => "@${username} adlı kullanıcıyı engellemek istediğinizden emin misiniz?"; - static m34(userName) => "${userName} ile bağlantıyı onaylayın"; + static m36(userName) => "${userName} ile bağlantıyı onaylayın"; - static m35(userName) => "${userName} ile bağlan"; + static m37(userName) => "${userName} ile bağlan"; - static m36(userName) => "${userName} ile bağlantını kes"; + static m38(userName) => "${userName} ile bağlantını kes"; - static m37(limit) => "Resim çok büyük (limit: ${limit} MB)"; + static m39(limit) => "Resim çok büyük (limit: ${limit} MB)"; - static m38(username) => "Kullanıcı adı @${username} alındı"; + static m40(username) => "Kullanıcı adı @${username} alındı"; - static m39(searchQuery) => "\'${searchQuery}\' ile eşleşen hiçbir emoji bulunamadı."; + static m41(searchQuery) => "\'${searchQuery}\' ile eşleşen hiçbir emoji bulunamadı."; - static m40(searchQuery) => "\'${searchQuery}\' için hiç bir liste bulunamadı"; + static m42(searchQuery) => "\'${searchQuery}\' için hiç bir liste bulunamadı"; - static m41(prettyUsersCount) => "${prettyUsersCount} hesap"; + static m43(prettyUsersCount) => "${prettyUsersCount} hesap"; - static m42(prettyUsersCount) => "${prettyUsersCount} Hesap"; + static m44(prettyUsersCount) => "${prettyUsersCount} Hesap"; - static m43(groupName) => "${groupName} Tümünü gör"; + static m45(groupName) => "${groupName} Tümünü gör"; - static m44(iosLink, androidLink, inviteLink) => "Hey, seni Okuna\'ya davet etmek istiyorum. Öncelikle, iTunes (${iosLink}) veya Google Play Store\'dan (${androidLink}) uygulamayı indirin. İkinci olarak, bu kişiselleştirilmiş davet bağlantısını Okuna Uygulamasındaki \'Kayıt ol\' formuna yapıştırın: ${inviteLink}"; + static m46(iosLink, androidLink, inviteLink) => "Hey, seni Okuna\'ya davet etmek istiyorum. Öncelikle, iTunes (${iosLink}) veya Google Play Store\'dan (${androidLink}) uygulamayı indirin. İkinci olarak, bu kişiselleştirilmiş davet bağlantısını Okuna Uygulamasındaki \'Kayıt ol\' formuna yapıştırın: ${inviteLink}"; - static m45(username) => "@${username} kullanıcı adı ile katıldı"; + static m47(username) => "@${username} kullanıcı adı ile katıldı"; - static m46(email) => "${email} adresine gönderilen e-posta davetiyesi beklemede"; + static m48(email) => "${email} adresine gönderilen e-posta davetiyesi beklemede"; - static m47(maxLength) => "Liste adı ${maxLength} karakterden daha uzun olamaz."; + static m49(maxLength) => "Liste adı ${maxLength} karakterden daha uzun olamaz."; - static m48(maxLength) => "Biyografi kısmı ${maxLength} karakterden daha uzun olamaz."; + static m50(maxLength) => "Biyografi kısmı ${maxLength} karakterden daha uzun olamaz."; - static m49(maxLength) => "Konum adı ${maxLength} karakterden daha uzun olamaz."; + static m51(maxLength) => "Konum adı ${maxLength} karakterden daha uzun olamaz."; - static m50(takenConnectionsCircleName) => "Çevre adı \'${takenConnectionsCircleName}\' olarak alındı"; + static m52(takenConnectionsCircleName) => "Çevre adı \'${takenConnectionsCircleName}\' olarak alındı"; - static m51(listName) => "Liste adı \'${listName}\' olarak alındı"; + static m53(listName) => "Liste adı \'${listName}\' olarak alındı"; - static m52(searchQuery) => "\'${searchQuery}\' ile ilgili bir eşleşme yok."; + static m54(searchQuery) => "\'${searchQuery}\' ile ilgili bir eşleşme yok."; - static m53(resourcePluralName) => "${resourcePluralName} için hiç bir bulunamadı."; + static m55(resourcePluralName) => "${resourcePluralName} için hiç bir bulunamadı."; - static m54(resourcePluralName) => "${resourcePluralName} Aranıyor..."; + static m56(resourcePluralName) => "${resourcePluralName} Aranıyor..."; - static m55(searchQuery) => "\'\'${searchQuery} \'için hiç topluluk bulunamadı."; + static m57(searchQuery) => "\'\'${searchQuery} \'için hiç topluluk bulunamadı."; - static m56(searchQuery) => "\'${searchQuery}\' için hiç bir sonuç bulunamadı."; + static m58(searchQuery) => "\'${searchQuery}\' için hiç bir sonuç bulunamadı."; - static m57(searchQuery) => "\'\'${searchQuery}\' için hiç bir kullanıcı bulunamadı."; + static m59(searchQuery) => "\'\'${searchQuery}\' için hiç bir kullanıcı bulunamadı."; - static m58(searchQuery) => "\'${searchQuery}\' için arama yapılıyor"; + static m60(searchQuery) => "\'${searchQuery}\' için arama yapılıyor"; final messages = _notInlinedMessages(_notInlinedMessages); static _notInlinedMessages(_) => { + "application_settings__comment_sort_newest_first" : MessageLookupByLibrary.simpleMessage("Önce en yeni"), + "application_settings__comment_sort_oldest_first" : MessageLookupByLibrary.simpleMessage("Önce en eski"), + "application_settings__link_previews" : MessageLookupByLibrary.simpleMessage("Bağlantı önizlemeleri"), + "application_settings__link_previews_autoplay_always" : MessageLookupByLibrary.simpleMessage("Her Zaman"), + "application_settings__link_previews_autoplay_never" : MessageLookupByLibrary.simpleMessage("Asla"), + "application_settings__link_previews_autoplay_wifi_only" : MessageLookupByLibrary.simpleMessage("Yalnızca WiFi"), + "application_settings__link_previews_show" : MessageLookupByLibrary.simpleMessage("Göster"), + "application_settings__tap_to_change" : MessageLookupByLibrary.simpleMessage("(Değiştirmek için dokunun)"), + "application_settings__videos" : MessageLookupByLibrary.simpleMessage("Videolar"), + "application_settings__videos_autoplay" : MessageLookupByLibrary.simpleMessage("Otomatik Oynat"), + "application_settings__videos_autoplay_always" : MessageLookupByLibrary.simpleMessage("Her Zaman"), + "application_settings__videos_autoplay_never" : MessageLookupByLibrary.simpleMessage("Asla"), + "application_settings__videos_autoplay_wifi_only" : MessageLookupByLibrary.simpleMessage("Yalnızca WiFi"), + "application_settings__videos_sound" : MessageLookupByLibrary.simpleMessage("Ses"), + "application_settings__videos_sound_disabled" : MessageLookupByLibrary.simpleMessage("Devre Dışı"), + "application_settings__videos_sound_enabled" : MessageLookupByLibrary.simpleMessage("Etkin"), "auth__change_password_current_pwd" : MessageLookupByLibrary.simpleMessage("Şimdiki şifreniz"), "auth__change_password_current_pwd_hint" : MessageLookupByLibrary.simpleMessage("Geçerli şifrenizi giriniz"), "auth__change_password_current_pwd_incorrect" : MessageLookupByLibrary.simpleMessage("Girilen şifre hatalı"), "auth__change_password_new_pwd" : MessageLookupByLibrary.simpleMessage("Yeni şifre"), "auth__change_password_new_pwd_error" : MessageLookupByLibrary.simpleMessage("Lütfen şifrenizin 10 ila 100 karakter uzunluğunda olduğundan emin olun"), "auth__change_password_new_pwd_hint" : MessageLookupByLibrary.simpleMessage("Yeni şifrenizi girin"), - "auth__change_password_save_success" : MessageLookupByLibrary.simpleMessage("Hepsi iyi! şifreniz güncellenmiştir"), + "auth__change_password_save_success" : MessageLookupByLibrary.simpleMessage("Hepsi iyi! şifreniz güncellendi"), "auth__change_password_save_text" : MessageLookupByLibrary.simpleMessage("Kaydet"), "auth__change_password_title" : MessageLookupByLibrary.simpleMessage("Şifreyi değiştir"), "auth__create_acc__almost_there" : MessageLookupByLibrary.simpleMessage("Neredeyse tamamlandı..."), @@ -162,20 +181,20 @@ class MessageLookup extends MessageLookupByLibrary { "auth__create_acc__done_continue" : MessageLookupByLibrary.simpleMessage("Oturum aç"), "auth__create_acc__done_created" : MessageLookupByLibrary.simpleMessage("Hesabınız kullanıcı adıyla oluşturuldu "), "auth__create_acc__done_description" : MessageLookupByLibrary.simpleMessage("Hesabınız oluşturuldu."), - "auth__create_acc__done_subtext" : MessageLookupByLibrary.simpleMessage("Bunu profil ayarlarından değiştirebilirsiniz."), + "auth__create_acc__done_subtext" : MessageLookupByLibrary.simpleMessage("Bunu profil ayarlarından değiştirebilirsin."), "auth__create_acc__done_title" : MessageLookupByLibrary.simpleMessage("Yaşasın!"), - "auth__create_acc__email_empty_error" : MessageLookupByLibrary.simpleMessage("😱 E-posta kısmı boş olamaz"), + "auth__create_acc__email_empty_error" : MessageLookupByLibrary.simpleMessage("😱 E-posta kısmı boş bırakılmaz"), "auth__create_acc__email_invalid_error" : MessageLookupByLibrary.simpleMessage("😅 Lütfen geçerli bir e-posta adresi girin."), - "auth__create_acc__email_placeholder" : MessageLookupByLibrary.simpleMessage("john_travolta@mail.com"), + "auth__create_acc__email_placeholder" : MessageLookupByLibrary.simpleMessage("örnekpostaadresi@mail.com"), "auth__create_acc__email_server_error" : MessageLookupByLibrary.simpleMessage("😭 Sunucularımızla ilgili sorunlar yaşıyoruz, lütfen birkaç dakika içinde tekrar deneyin."), "auth__create_acc__email_taken_error" : MessageLookupByLibrary.simpleMessage("🤔 Bu e-postaya kayıtlı zaten bir hesap bulunuyor."), "auth__create_acc__lets_get_started" : MessageLookupByLibrary.simpleMessage("Haydi başlayalım"), - "auth__create_acc__link_empty_error" : MessageLookupByLibrary.simpleMessage("Link boş olamaz."), + "auth__create_acc__link_empty_error" : MessageLookupByLibrary.simpleMessage("Link boş bırakılamaz."), "auth__create_acc__link_invalid_error" : MessageLookupByLibrary.simpleMessage("Bu bağlantı geçersiz görünüyor."), "auth__create_acc__name_characters_error" : MessageLookupByLibrary.simpleMessage("😅 Bir isim sadece alfanümerik karakterler içerebilir (şimdilik)."), - "auth__create_acc__name_empty_error" : MessageLookupByLibrary.simpleMessage("😱 İsim kısmı boş olamaz."), - "auth__create_acc__name_length_error" : MessageLookupByLibrary.simpleMessage("😱 Adınız 50 karakterden uzun olamaz. (Öyleyse, çok üzgünüz.)"), - "auth__create_acc__name_placeholder" : MessageLookupByLibrary.simpleMessage("James Bond"), + "auth__create_acc__name_empty_error" : MessageLookupByLibrary.simpleMessage("😱 İsim kısmını boş bırakamazsın."), + "auth__create_acc__name_length_error" : MessageLookupByLibrary.simpleMessage("😱 Adınız 50 karakterden uzun olamaz. (Öyle ise, çok üzgünüz.)"), + "auth__create_acc__name_placeholder" : MessageLookupByLibrary.simpleMessage("İsminizi Yazın"), "auth__create_acc__next" : MessageLookupByLibrary.simpleMessage("İleri"), "auth__create_acc__one_last_thing" : MessageLookupByLibrary.simpleMessage("Son bir şey..."), "auth__create_acc__password_empty_error" : MessageLookupByLibrary.simpleMessage("😱 Şifre kısmı boş bırakılamaz"), @@ -189,16 +208,16 @@ class MessageLookup extends MessageLookupByLibrary { "auth__create_acc__submit_error_desc_server" : MessageLookupByLibrary.simpleMessage("😭 Sunucularımızla ilgili sorunlar yaşıyoruz, lütfen birkaç dakika içinde tekrar deneyin."), "auth__create_acc__submit_error_desc_validation" : MessageLookupByLibrary.simpleMessage("😅 Bazı bilgiler doğru değil gibi görünüyor, lütfen kontrol edin ve tekrar deneyin."), "auth__create_acc__submit_error_title" : MessageLookupByLibrary.simpleMessage("Oh hayır..."), - "auth__create_acc__submit_loading_desc" : MessageLookupByLibrary.simpleMessage("Hesabınızı yaratıyoruz."), + "auth__create_acc__submit_loading_desc" : MessageLookupByLibrary.simpleMessage("Hesabınızı oluşturuyoruz."), "auth__create_acc__submit_loading_title" : MessageLookupByLibrary.simpleMessage("Az kaldı!"), - "auth__create_acc__subscribe" : MessageLookupByLibrary.simpleMessage("İste"), + "auth__create_acc__subscribe" : MessageLookupByLibrary.simpleMessage("Talep et"), "auth__create_acc__subscribe_to_waitlist_text" : MessageLookupByLibrary.simpleMessage("Davet et!"), "auth__create_acc__username_characters_error" : MessageLookupByLibrary.simpleMessage("😅 Bir kullanıcı ismi yalnızca alfasayısal karakterler ve alt çizgiler içerebilir."), - "auth__create_acc__username_empty_error" : MessageLookupByLibrary.simpleMessage("😱 Kullanıcı ismi boş olamaz."), + "auth__create_acc__username_empty_error" : MessageLookupByLibrary.simpleMessage("😱 Kullanıcı ismi boş bırakılamaz."), "auth__create_acc__username_length_error" : MessageLookupByLibrary.simpleMessage("😅 Bir kullanıcı ismi 30 karakterden uzun olamaz."), - "auth__create_acc__username_placeholder" : MessageLookupByLibrary.simpleMessage("pablopicasso"), + "auth__create_acc__username_placeholder" : MessageLookupByLibrary.simpleMessage("nuribilgeceylan"), "auth__create_acc__username_server_error" : MessageLookupByLibrary.simpleMessage("😭 Sunucularımızla ilgili sorunlar yaşıyoruz, lütfen birkaç dakika içinde tekrar deneyin."), - "auth__create_acc__username_taken_error" : MessageLookupByLibrary.simpleMessage("😩 @%s kullanıcı ismi daha önce alınmıştır."), + "auth__create_acc__username_taken_error" : MessageLookupByLibrary.simpleMessage("😩 @%s kullanıcı ismi daha önce alınmış."), "auth__create_acc__welcome_to_beta" : MessageLookupByLibrary.simpleMessage("Betaya hoş geldiniz!"), "auth__create_acc__what_avatar" : MessageLookupByLibrary.simpleMessage("Profil fotoğrafı seçin"), "auth__create_acc__what_email" : MessageLookupByLibrary.simpleMessage("E-posta adresin nedir?"), @@ -210,9 +229,9 @@ class MessageLookup extends MessageLookupByLibrary { "auth__create_acc__your_username_is" : MessageLookupByLibrary.simpleMessage("Kullanıcı adınız "), "auth__create_acc_password_hint_text" : m0, "auth__create_account" : MessageLookupByLibrary.simpleMessage("Kayıt ol"), - "auth__description_empty_error" : MessageLookupByLibrary.simpleMessage("Açıklama boş olamaz."), + "auth__description_empty_error" : MessageLookupByLibrary.simpleMessage("Açıklama boş bırakılmaz."), "auth__description_range_error" : m1, - "auth__email_empty_error" : MessageLookupByLibrary.simpleMessage("Eposta boş bırakılamaz."), + "auth__email_empty_error" : MessageLookupByLibrary.simpleMessage("E-posta boş bırakılamaz."), "auth__email_invalid_error" : MessageLookupByLibrary.simpleMessage("Lütfen geçerli bir e-posta adresi girin."), "auth__headline" : MessageLookupByLibrary.simpleMessage("Daha iyi bir sosyal ağ."), "auth__login" : MessageLookupByLibrary.simpleMessage("Oturum aç"), @@ -232,16 +251,16 @@ class MessageLookup extends MessageLookupByLibrary { "auth__login__title" : MessageLookupByLibrary.simpleMessage("Tekrar Hoşgeldin!"), "auth__login__username_characters_error" : MessageLookupByLibrary.simpleMessage("Kullanıcı adı yalnızca alfasayısal karakterler ve alt çizgiler içerebilir."), "auth__login__username_empty_error" : MessageLookupByLibrary.simpleMessage("Kullanıcı adı gereklidir."), - "auth__login__username_label" : MessageLookupByLibrary.simpleMessage("Kullanıcı ismi"), + "auth__login__username_label" : MessageLookupByLibrary.simpleMessage("Kullanıcı adı"), "auth__login__username_length_error" : MessageLookupByLibrary.simpleMessage("Kullanıcı adı 30 karakterden uzun olamaz."), - "auth__name_empty_error" : MessageLookupByLibrary.simpleMessage("İsim boş olamaz."), + "auth__name_empty_error" : MessageLookupByLibrary.simpleMessage("İsim boş bırakılamaz."), "auth__name_range_error" : m2, "auth__password_empty_error" : MessageLookupByLibrary.simpleMessage("Parola boş bırakılamaz."), "auth__password_range_error" : m3, "auth__reset_password_success_info" : MessageLookupByLibrary.simpleMessage("Şifreniz başarıyla güncellendi"), "auth__reset_password_success_title" : MessageLookupByLibrary.simpleMessage("Her şey tamam!"), - "auth__username_characters_error" : MessageLookupByLibrary.simpleMessage("Bir kullanıcı ismi yalnızca alfasayısal karakterler ve alt çizgiler içerebilir."), - "auth__username_empty_error" : MessageLookupByLibrary.simpleMessage("Kullanıcı adı boş olamaz."), + "auth__username_characters_error" : MessageLookupByLibrary.simpleMessage("Bir kullanıcı adı yalnızca alfasayısal karakterler ve alt çizgiler içerebilir."), + "auth__username_empty_error" : MessageLookupByLibrary.simpleMessage("Kullanıcı adı boş bırakılamaz."), "auth__username_maxlength_error" : m4, "community__about" : MessageLookupByLibrary.simpleMessage("Hakkında"), "community__actions_invite_people_title" : MessageLookupByLibrary.simpleMessage("İnsanları topluluğa davet et"), @@ -344,6 +363,7 @@ class MessageLookup extends MessageLookupByLibrary { "community__posts" : MessageLookupByLibrary.simpleMessage("Gönderiler"), "community__refresh_text" : MessageLookupByLibrary.simpleMessage("Yenile"), "community__refreshing" : MessageLookupByLibrary.simpleMessage("Ferahlatıcı topluluk"), + "community__retry_loading_posts" : MessageLookupByLibrary.simpleMessage("Tekrar denemek için dokunun"), "community__rules_empty_error" : MessageLookupByLibrary.simpleMessage("Kurallar bölümü boş bırakılmaz."), "community__rules_range_error" : m14, "community__rules_text" : MessageLookupByLibrary.simpleMessage("Kurallar"), @@ -396,11 +416,12 @@ class MessageLookup extends MessageLookupByLibrary { "drawer__application_settings" : MessageLookupByLibrary.simpleMessage("Uygulama Ayarları"), "drawer__connections" : MessageLookupByLibrary.simpleMessage("Bağlantılarım"), "drawer__customize" : MessageLookupByLibrary.simpleMessage("Kişiselleştir"), + "drawer__developer_settings" : MessageLookupByLibrary.simpleMessage("Geliştirici Ayarları"), "drawer__global_moderation" : MessageLookupByLibrary.simpleMessage("Global denetim"), "drawer__help" : MessageLookupByLibrary.simpleMessage("Destek ve Geri Bildirim"), "drawer__lists" : MessageLookupByLibrary.simpleMessage("Listelerim"), "drawer__logout" : MessageLookupByLibrary.simpleMessage("Oturumu Kapat"), - "drawer__main_title" : MessageLookupByLibrary.simpleMessage("Openspace\'im"), + "drawer__main_title" : MessageLookupByLibrary.simpleMessage("Benim Okuna\'m"), "drawer__menu_title" : MessageLookupByLibrary.simpleMessage("Menü"), "drawer__my_circles" : MessageLookupByLibrary.simpleMessage("Çevrelerim"), "drawer__my_followers" : MessageLookupByLibrary.simpleMessage("Takipçilerim"), @@ -412,7 +433,7 @@ class MessageLookup extends MessageLookupByLibrary { "drawer__profile" : MessageLookupByLibrary.simpleMessage("Profil"), "drawer__settings" : MessageLookupByLibrary.simpleMessage("Ayarlar"), "drawer__themes" : MessageLookupByLibrary.simpleMessage("Temalar"), - "drawer__useful_links_guidelines" : MessageLookupByLibrary.simpleMessage("Openspace\'in ilkeleri"), + "drawer__useful_links_guidelines" : MessageLookupByLibrary.simpleMessage("Okuna\'nın ilkeleri"), "drawer__useful_links_guidelines_bug_tracker" : MessageLookupByLibrary.simpleMessage("Hata izleyici"), "drawer__useful_links_guidelines_bug_tracker_desc" : MessageLookupByLibrary.simpleMessage("Bir hata rapor edin veya var olan hataları oylayın"), "drawer__useful_links_guidelines_desc" : MessageLookupByLibrary.simpleMessage("Hepinizin sağlıklı ve dostça bir ortak varlığınızı korumak için izlemeniz gereken kurallar."), @@ -420,20 +441,23 @@ class MessageLookup extends MessageLookupByLibrary { "drawer__useful_links_guidelines_feature_requests_desc" : MessageLookupByLibrary.simpleMessage("Bir özellik isteyin veya var olan istekleri oylayın"), "drawer__useful_links_guidelines_github" : MessageLookupByLibrary.simpleMessage("Github proje panosu"), "drawer__useful_links_guidelines_github_desc" : MessageLookupByLibrary.simpleMessage("Şu anda üzerinde çalıştığımıza bir göz atın"), - "drawer__useful_links_guidelines_handbook" : MessageLookupByLibrary.simpleMessage("Openspace el kitabı"), + "drawer__useful_links_guidelines_handbook" : MessageLookupByLibrary.simpleMessage("Okuna el kitabı"), "drawer__useful_links_guidelines_handbook_desc" : MessageLookupByLibrary.simpleMessage("Platformu kullanma hakkında bilmeniz gereken her şeyi içeren bir kitap"), "drawer__useful_links_slack_channel" : MessageLookupByLibrary.simpleMessage("Topluluk çözüm kanalı"), - "drawer__useful_links_slack_channel_desc" : MessageLookupByLibrary.simpleMessage("Openspace hakkında her şeyi tartışacağınız bir yer"), + "drawer__useful_links_slack_channel_desc" : MessageLookupByLibrary.simpleMessage("Okuna hakkında her şeyi tartışacağınız bir yer"), "drawer__useful_links_support" : MessageLookupByLibrary.simpleMessage("Okuna Destek"), - "drawer__useful_links_support_desc" : MessageLookupByLibrary.simpleMessage("Yolculuğumuzda bizi destekleyebilecek bir yola bakın!"), + "drawer__useful_links_support_desc" : MessageLookupByLibrary.simpleMessage("Yolculuğumuzda bizi destekleyebilecek bir yönteme bakın!"), "drawer__useful_links_title" : MessageLookupByLibrary.simpleMessage("Faydalı bağlantılar"), "error__no_internet_connection" : MessageLookupByLibrary.simpleMessage("İnternet bağlantısı yok"), "error__unknown_error" : MessageLookupByLibrary.simpleMessage("Bilinmeyen hata"), + "image_picker__error_too_large" : m19, + "image_picker__from_camera" : MessageLookupByLibrary.simpleMessage("Kameradan"), + "image_picker__from_gallery" : MessageLookupByLibrary.simpleMessage("Galeriden"), "moderation__actions_chat_with_team" : MessageLookupByLibrary.simpleMessage("Ekiple sohbet et"), "moderation__actions_review" : MessageLookupByLibrary.simpleMessage("Detaylı"), "moderation__category_text" : MessageLookupByLibrary.simpleMessage("Kategori"), "moderation__community_moderated_objects" : MessageLookupByLibrary.simpleMessage("Toplulukta denetlenen nesneler"), - "moderation__community_review_approve" : MessageLookupByLibrary.simpleMessage("Onaylı"), + "moderation__community_review_approve" : MessageLookupByLibrary.simpleMessage("Onaylandı"), "moderation__community_review_item_verified" : MessageLookupByLibrary.simpleMessage("Bu madde doğrulandı"), "moderation__community_review_object" : MessageLookupByLibrary.simpleMessage("Nesne"), "moderation__community_review_reject" : MessageLookupByLibrary.simpleMessage("reddedildi"), @@ -444,7 +468,7 @@ class MessageLookup extends MessageLookupByLibrary { "moderation__confirm_report_post_reported" : MessageLookupByLibrary.simpleMessage("Gönderi bildirildi"), "moderation__confirm_report_provide_details" : MessageLookupByLibrary.simpleMessage("Raporla alakalı olabilecek ilave detaylar verebilir misiniz?"), "moderation__confirm_report_provide_happen_next" : MessageLookupByLibrary.simpleMessage("İşte bundan sonra ne olacak:"), - "moderation__confirm_report_provide_happen_next_desc" : MessageLookupByLibrary.simpleMessage("-Raporunuz isimsiz olarak gönderilecektir. \n-Bir gönderi veya yorum bildiriyorsanız, rapor Openspace çalışanına ve varsa topluluk moderatörlerine gönderilecek ve gönderi yayınınızdan gizlenecektir \n- Bir hesap veya topluluğu rapor ediyorsanız, Openspace çalışanına gönderilir. \n- Onaylanırsa, içerik silinecek ve hesabın silinmesinden raporun ciddiyetine bağlı olarak belirli saatlere kadar askıya alınmasına karar verilir ve kişilere verilen cezalar gözden geçirilir. \n- Raporun platformdaki başka bir üyeye veya topluluğa zarar vermek amacıyla belirtilen nedenle herhangi bir ihlal yapılmadığı tespit edilirse, cezalar size uygulanacaktır.\n"), + "moderation__confirm_report_provide_happen_next_desc" : MessageLookupByLibrary.simpleMessage("-Raporunuz isimsiz olarak gönderilecektir. \n-Bir gönderi veya yorum bildiriyorsanız, rapor Okuna çalışanına ve varsa topluluk moderatörlerine gönderilecek ve gönderi yayınınızdan gizlenecektir \n- Bir hesap veya topluluğu rapor ediyorsanız, Okuna çalışanına gönderilir. \n- Onaylanırsa, içerik silinecek ve hesabın silinmesinden raporun ciddiyetine bağlı olarak belirli saatlere kadar askıya alınmasına karar verilir ve kişilere verilen cezalar gözden geçirilir. \n- Raporun platformdaki başka bir üyeye veya topluluğa zarar vermek amacıyla belirtilen nedenle herhangi bir ihlal yapılmadığı tespit edilirse, cezalar size uygulanacaktır.\n"), "moderation__confirm_report_provide_optional_hint_text" : MessageLookupByLibrary.simpleMessage("Buraya yaz..."), "moderation__confirm_report_provide_optional_info" : MessageLookupByLibrary.simpleMessage("(İsteğe Bağlı)"), "moderation__confirm_report_submit" : MessageLookupByLibrary.simpleMessage("Anladım, gönder."), @@ -455,21 +479,21 @@ class MessageLookup extends MessageLookupByLibrary { "moderation__filters_other" : MessageLookupByLibrary.simpleMessage("Diğer"), "moderation__filters_reset" : MessageLookupByLibrary.simpleMessage("Sıfırla"), "moderation__filters_status" : MessageLookupByLibrary.simpleMessage("Durum"), - "moderation__filters_title" : MessageLookupByLibrary.simpleMessage("Denetim Filtreleri"), + "moderation__filters_title" : MessageLookupByLibrary.simpleMessage("Moderasyon Filtreleri"), "moderation__filters_type" : MessageLookupByLibrary.simpleMessage("Tür"), - "moderation__filters_verified" : MessageLookupByLibrary.simpleMessage("Doğrulanmış"), + "moderation__filters_verified" : MessageLookupByLibrary.simpleMessage("Doğrulandı"), "moderation__global_review_object_text" : MessageLookupByLibrary.simpleMessage("Nesne"), "moderation__global_review_title" : MessageLookupByLibrary.simpleMessage("Yönetilen nesneyi gözden geçir"), - "moderation__global_review_unverify_text" : MessageLookupByLibrary.simpleMessage("Doğrulanmamış"), - "moderation__global_review_verify_text" : MessageLookupByLibrary.simpleMessage("Doğrulanmış"), + "moderation__global_review_unverify_text" : MessageLookupByLibrary.simpleMessage("Doğrulanmadı"), + "moderation__global_review_verify_text" : MessageLookupByLibrary.simpleMessage("Doğrulandı"), "moderation__globally_moderated_objects" : MessageLookupByLibrary.simpleMessage("Global olarak yönetilen nesneler"), "moderation__moderated_object_false_text" : MessageLookupByLibrary.simpleMessage("Yanlış"), "moderation__moderated_object_reports_count" : MessageLookupByLibrary.simpleMessage("Rapor sayısı"), "moderation__moderated_object_status" : MessageLookupByLibrary.simpleMessage("Durum"), "moderation__moderated_object_title" : MessageLookupByLibrary.simpleMessage("Nesne"), "moderation__moderated_object_true_text" : MessageLookupByLibrary.simpleMessage("Doğru"), - "moderation__moderated_object_verified" : MessageLookupByLibrary.simpleMessage("Doğrulanmış"), - "moderation__moderated_object_verified_by_staff" : MessageLookupByLibrary.simpleMessage("Openspace çalışanı tarafından doğrulandı"), + "moderation__moderated_object_verified" : MessageLookupByLibrary.simpleMessage("Doğrulandı"), + "moderation__moderated_object_verified_by_staff" : MessageLookupByLibrary.simpleMessage("Okuna çalışanı tarafından doğrulandı"), "moderation__my_moderation_penalties_resouce_singular" : MessageLookupByLibrary.simpleMessage("moderasyon cezası"), "moderation__my_moderation_penalties_resource_plural" : MessageLookupByLibrary.simpleMessage("moderasyon cezaları"), "moderation__my_moderation_penalties_title" : MessageLookupByLibrary.simpleMessage("Moderasyon cezaları"), @@ -485,12 +509,12 @@ class MessageLookup extends MessageLookupByLibrary { "moderation__reporter_text" : MessageLookupByLibrary.simpleMessage("Raporlayıcı"), "moderation__reports_preview_resource_reports" : MessageLookupByLibrary.simpleMessage("raporlar"), "moderation__reports_preview_title" : MessageLookupByLibrary.simpleMessage("Raporlar"), - "moderation__reports_see_all" : m19, - "moderation__tap_to_retry" : MessageLookupByLibrary.simpleMessage("Öğeleri yüklemeyi yeniden denemek için dokunun"), + "moderation__reports_see_all" : m20, + "moderation__tap_to_retry" : MessageLookupByLibrary.simpleMessage("Öğeleri yeniden yüklemeyi denemek için dokunun"), "moderation__update_category_save" : MessageLookupByLibrary.simpleMessage("Kaydet"), "moderation__update_category_title" : MessageLookupByLibrary.simpleMessage("Kategoriyi güncelle"), "moderation__update_description_report_desc" : MessageLookupByLibrary.simpleMessage("Açıklama raporu"), - "moderation__update_description_report_hint_text" : MessageLookupByLibrary.simpleMessage("örneğin Raporun öğesi bulundu..."), + "moderation__update_description_report_hint_text" : MessageLookupByLibrary.simpleMessage("örnek olarak Raporun öğesi bulundu..."), "moderation__update_description_save" : MessageLookupByLibrary.simpleMessage("Kaydet"), "moderation__update_description_title" : MessageLookupByLibrary.simpleMessage("Açıklamayı düzenle"), "moderation__update_status_save" : MessageLookupByLibrary.simpleMessage("Kaydet"), @@ -500,15 +524,15 @@ class MessageLookup extends MessageLookupByLibrary { "moderation__you_have_reported_community_text" : MessageLookupByLibrary.simpleMessage("Bu topluluğu bildirdin"), "moderation__you_have_reported_post_text" : MessageLookupByLibrary.simpleMessage("Bu yayını bildirdin"), "notifications__accepted_connection_request_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] bağlantı isteğinizi kabul etti."), - "notifications__comment_comment_notification_tile_user_also_commented" : m20, - "notifications__comment_comment_notification_tile_user_commented" : m21, + "notifications__comment_comment_notification_tile_user_also_commented" : m21, + "notifications__comment_comment_notification_tile_user_commented" : m22, "notifications__comment_desc" : MessageLookupByLibrary.simpleMessage("Birisi gönderilerinizden biriyle veya bir yorumunuzla ilgili yorum yazdığında haberdar olun."), - "notifications__comment_reaction_desc" : MessageLookupByLibrary.simpleMessage("Birisi yorumlarınızdan birine tepki verdiğinde haberdar olun."), - "notifications__comment_reaction_title" : MessageLookupByLibrary.simpleMessage("Yorum tepkisi gönderisi"), - "notifications__comment_reply_desc" : MessageLookupByLibrary.simpleMessage("Birisi yorumlarınızdan birini veya yanıtladığınız birini yanıtladığında haberdar olun."), - "notifications__comment_reply_notification_tile_user_also_replied" : m22, - "notifications__comment_reply_notification_tile_user_replied" : m23, - "notifications__comment_reply_title" : MessageLookupByLibrary.simpleMessage("Gönderideki cevap bildirildi"), + "notifications__comment_reaction_desc" : MessageLookupByLibrary.simpleMessage("Birisi yorumlarınızdan birine reaksiyon verdiğinde haberdar olun"), + "notifications__comment_reaction_title" : MessageLookupByLibrary.simpleMessage("Gönderi yorumundaki reaksiyon"), + "notifications__comment_reply_desc" : MessageLookupByLibrary.simpleMessage("Birisi yorumlarınızdan birini veya cevapladığınız birini cevapladığında haberdar olun"), + "notifications__comment_reply_notification_tile_user_also_replied" : m23, + "notifications__comment_reply_notification_tile_user_replied" : m24, + "notifications__comment_reply_title" : MessageLookupByLibrary.simpleMessage("Gönderideki yorum cevabı"), "notifications__comment_title" : MessageLookupByLibrary.simpleMessage("Gönderi yorumu"), "notifications__comment_user_mention_desc" : MessageLookupByLibrary.simpleMessage("Birisi sizden yorumlarından birinde bahsettiğinde haberdar olun"), "notifications__comment_user_mention_title" : MessageLookupByLibrary.simpleMessage("Gönderi yorumunda bahsedilmesi"), @@ -522,22 +546,24 @@ class MessageLookup extends MessageLookupByLibrary { "notifications__following_you_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] seni şimdi takip ediyor."), "notifications__general_desc" : MessageLookupByLibrary.simpleMessage("Bir şey olduğunda haberdar olun"), "notifications__general_title" : MessageLookupByLibrary.simpleMessage("Bildirimler"), - "notifications__mentioned_in_post_comment_tile" : m24, + "notifications__mentioned_in_post_comment_tile" : m25, "notifications__mentioned_in_post_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] bir gönderide sizden bahsetti."), "notifications__mute_post_turn_off_post_comment_notifications" : MessageLookupByLibrary.simpleMessage("Gönderi yorumlarının bildirimlerini kapat"), "notifications__mute_post_turn_off_post_notifications" : MessageLookupByLibrary.simpleMessage("Gönderi bildirimlerini kapat"), "notifications__mute_post_turn_on_post_comment_notifications" : MessageLookupByLibrary.simpleMessage("Gönderi yorumlarının bildirimlerini aç"), "notifications__mute_post_turn_on_post_notifications" : MessageLookupByLibrary.simpleMessage("Gönderi bildirimlerini aç"), "notifications__post_reaction_desc" : MessageLookupByLibrary.simpleMessage("Birisi gönderinize yanıt verdiğinde haberdar olun."), - "notifications__post_reaction_title" : MessageLookupByLibrary.simpleMessage("Gönderi tepkisi"), + "notifications__post_reaction_title" : MessageLookupByLibrary.simpleMessage("Gönderi reaksiyonu"), "notifications__post_user_mention_desc" : MessageLookupByLibrary.simpleMessage("Birisi gönderilerinden birinde sizden bahsettiğinde haberdar olun"), "notifications__post_user_mention_title" : MessageLookupByLibrary.simpleMessage("Gönderide bahsedilmesi"), - "notifications__reacted_to_post_comment_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] yorumunuza tepki verdi."), + "notifications__reacted_to_post_comment_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] yorumunuza reaksiyon verdi."), "notifications__reacted_to_post_tile" : MessageLookupByLibrary.simpleMessage("[name] [username] gönderinize yanıt verdi."), "notifications__settings_title" : MessageLookupByLibrary.simpleMessage("Bildirim ayarları"), - "notifications__user_community_invite_tile" : m25, + "notifications__tab_general" : MessageLookupByLibrary.simpleMessage("Genel"), + "notifications__tab_requests" : MessageLookupByLibrary.simpleMessage("İstekler"), + "notifications__user_community_invite_tile" : m26, "post__action_comment" : MessageLookupByLibrary.simpleMessage("Yorum"), - "post__action_react" : MessageLookupByLibrary.simpleMessage("Tepki"), + "post__action_react" : MessageLookupByLibrary.simpleMessage("Reaksiyon"), "post__action_reply" : MessageLookupByLibrary.simpleMessage("Cevapla"), "post__actions_comment_deleted" : MessageLookupByLibrary.simpleMessage("Yorum silindi"), "post__actions_delete" : MessageLookupByLibrary.simpleMessage("Gönderiyi sil"), @@ -547,8 +573,9 @@ class MessageLookup extends MessageLookupByLibrary { "post__actions_report_text" : MessageLookupByLibrary.simpleMessage("Bildir"), "post__actions_reported_text" : MessageLookupByLibrary.simpleMessage("Bildirildi"), "post__actions_show_more_text" : MessageLookupByLibrary.simpleMessage("Daha fazla göster"), + "post__close_create_post_label" : MessageLookupByLibrary.simpleMessage("Yeni gönderi oluştur\'u kapat"), "post__close_post" : MessageLookupByLibrary.simpleMessage("Gönderiyi kapat"), - "post__comment_maxlength_error" : m26, + "post__comment_maxlength_error" : m27, "post__comment_reply_expanded_post" : MessageLookupByLibrary.simpleMessage("Gönderi"), "post__comment_reply_expanded_reply_comment" : MessageLookupByLibrary.simpleMessage("Yorumu cevapla"), "post__comment_reply_expanded_reply_hint_text" : MessageLookupByLibrary.simpleMessage("Cevabınız..."), @@ -585,10 +612,13 @@ class MessageLookup extends MessageLookupByLibrary { "post__comments_page_tap_to_retry" : MessageLookupByLibrary.simpleMessage("Yorumları yüklemeyi yeniden denemek için dokunun."), "post__comments_page_tap_to_retry_replies" : MessageLookupByLibrary.simpleMessage("Cevapları tekrar yüklemek için dokunun."), "post__comments_page_title" : MessageLookupByLibrary.simpleMessage("Gönderi yorumları"), - "post__comments_view_all_comments" : m27, + "post__comments_view_all_comments" : m28, "post__create_new" : MessageLookupByLibrary.simpleMessage("Yeni gönderi"), + "post__create_new_community_post_label" : MessageLookupByLibrary.simpleMessage("Yeni topluluk gönderisi oluştur"), + "post__create_new_post_label" : MessageLookupByLibrary.simpleMessage("Yeni gönderi oluştur"), "post__create_next" : MessageLookupByLibrary.simpleMessage("Sonraki"), "post__create_photo" : MessageLookupByLibrary.simpleMessage("Fotoğraf"), + "post__create_video" : MessageLookupByLibrary.simpleMessage("Video"), "post__disable_post_comments" : MessageLookupByLibrary.simpleMessage("Yorum gönderilmesini devre dışı bırakın"), "post__edit_save" : MessageLookupByLibrary.simpleMessage("Kaydet"), "post__edit_title" : MessageLookupByLibrary.simpleMessage("Gönderiyi düzenle"), @@ -597,17 +627,18 @@ class MessageLookup extends MessageLookupByLibrary { "post__is_closed" : MessageLookupByLibrary.simpleMessage("Yorumu kapat"), "post__my_circles" : MessageLookupByLibrary.simpleMessage("Çevrelerim"), "post__my_circles_desc" : MessageLookupByLibrary.simpleMessage("Gönderiyi çevrelerinizden birine veya çoğunluğa paylaşın."), - "post__no_circles_for" : m28, + "post__no_circles_for" : m29, "post__open_post" : MessageLookupByLibrary.simpleMessage("Gönderiyi aç"), "post__post_closed" : MessageLookupByLibrary.simpleMessage("Gönderi kapatıldı "), "post__post_opened" : MessageLookupByLibrary.simpleMessage("Gönderi açıldı"), - "post__post_reactions_title" : MessageLookupByLibrary.simpleMessage("Gönderi tepkileri"), + "post__post_reactions_title" : MessageLookupByLibrary.simpleMessage("Gönderi reaksiyonları"), "post__profile_counts_follower" : MessageLookupByLibrary.simpleMessage(" Takipçi"), "post__profile_counts_followers" : MessageLookupByLibrary.simpleMessage(" Takipçiler"), "post__profile_counts_following" : MessageLookupByLibrary.simpleMessage(" Takip edilen"), "post__profile_counts_post" : MessageLookupByLibrary.simpleMessage(" Gönderi"), "post__profile_counts_posts" : MessageLookupByLibrary.simpleMessage(" Gönderiler"), - "post__reaction_list_tap_retry" : MessageLookupByLibrary.simpleMessage("Yükleme tepkilerini yeniden denemek için dokunun."), + "post__profile_retry_loading_posts" : MessageLookupByLibrary.simpleMessage("Tekrar denemek için dokunun"), + "post__reaction_list_tap_retry" : MessageLookupByLibrary.simpleMessage("Reaksiyonları tekrar yüklemek için dokunun."), "post__search_circles" : MessageLookupByLibrary.simpleMessage("Çevreleri ara..."), "post__share" : MessageLookupByLibrary.simpleMessage("Paylaş"), "post__share_community" : MessageLookupByLibrary.simpleMessage("Paylaş"), @@ -637,17 +668,36 @@ class MessageLookup extends MessageLookupByLibrary { "post__timeline_posts_failed_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Birkaç saniye sonra tekrar deneyin"), "post__timeline_posts_failed_drhoo_title" : MessageLookupByLibrary.simpleMessage("Zaman Tüneliniz yüklenemedi."), "post__timeline_posts_no_more_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Başlamak için kullanıcıları takip edin veya bir topluluğa katılın!"), - "post__timeline_posts_no_more_drhoo_title" : MessageLookupByLibrary.simpleMessage("Zaman Tüneliniz boş."), "post__timeline_posts_refresh_posts" : MessageLookupByLibrary.simpleMessage("Gönderileri yenile"), - "post__timeline_posts_refreshing_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Zaman Tüneliniz yükleniyor."), "post__timeline_posts_refreshing_drhoo_title" : MessageLookupByLibrary.simpleMessage("Az kaldı!"), "post__trending_posts_no_trending_posts" : MessageLookupByLibrary.simpleMessage("Popüler gönderiler yok. Birkaç saniye içinde yenilemeyi deneyin."), "post__trending_posts_refresh" : MessageLookupByLibrary.simpleMessage("Yenile"), "post__trending_posts_title" : MessageLookupByLibrary.simpleMessage("Popüler gönderiler"), - "post__user_has_not_shared_anything" : m29, - "post__usernames_circles" : m30, + "post__user_has_not_shared_anything" : m30, + "post__usernames_circles" : m31, "post__world_circle_name" : MessageLookupByLibrary.simpleMessage("Dünya"), "post__you_shared_with" : MessageLookupByLibrary.simpleMessage("İle paylaştı"), + "post_body_link_preview__empty" : MessageLookupByLibrary.simpleMessage("Bu bağlantı önizlenemedi"), + "post_body_link_preview__error_with_description" : m32, + "post_body_media__unsupported" : MessageLookupByLibrary.simpleMessage("Desteklenmeyen medya türü"), + "post_uploader__cancelled" : MessageLookupByLibrary.simpleMessage("İptal edildi!"), + "post_uploader__cancelling" : MessageLookupByLibrary.simpleMessage("İptal ediliyor"), + "post_uploader__compressing_media" : MessageLookupByLibrary.simpleMessage("Medya sıkıştırılıyor..."), + "post_uploader__creating_post" : MessageLookupByLibrary.simpleMessage("Gönderi oluşturuluyor..."), + "post_uploader__generic_upload_failed" : MessageLookupByLibrary.simpleMessage("Gönderme başarısız oldu"), + "post_uploader__processing" : MessageLookupByLibrary.simpleMessage("Gönderi işleniyor..."), + "post_uploader__publishing" : MessageLookupByLibrary.simpleMessage("Gönderi yayınlanıyor..."), + "post_uploader__success" : MessageLookupByLibrary.simpleMessage("Başarılı!"), + "post_uploader__uploading_media" : MessageLookupByLibrary.simpleMessage("Medya yükleniyor..."), + "posts_stream__all_loaded" : MessageLookupByLibrary.simpleMessage("🎉 Tüm gönderiler yüklendi"), + "posts_stream__empty_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Birkaç saniye içinde yeniden deneyin."), + "posts_stream__empty_drhoo_title" : MessageLookupByLibrary.simpleMessage("Bu akışta bir şey yok."), + "posts_stream__failed_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Birkaç saniye sonra tekrar deneyin"), + "posts_stream__failed_drhoo_title" : MessageLookupByLibrary.simpleMessage("Akış yüklenemedi."), + "posts_stream__refreshing_drhoo_subtitle" : MessageLookupByLibrary.simpleMessage("Akış yenileniyor."), + "posts_stream__refreshing_drhoo_title" : MessageLookupByLibrary.simpleMessage("Az kaldı!"), + "posts_stream__status_tile_empty" : MessageLookupByLibrary.simpleMessage("Hiç gönderi bulunamadı"), + "posts_stream__status_tile_no_more_to_load" : MessageLookupByLibrary.simpleMessage("🎉 Tüm gönderiler yüklendi"), "user__add_account_done" : MessageLookupByLibrary.simpleMessage("Tamam"), "user__add_account_save" : MessageLookupByLibrary.simpleMessage("Kaydet"), "user__add_account_success" : MessageLookupByLibrary.simpleMessage("Başarılı"), @@ -663,8 +713,8 @@ class MessageLookup extends MessageLookupByLibrary { "user__change_email_success_info" : MessageLookupByLibrary.simpleMessage("Yeni e-posta adresinize bir onay linki gönderdik, yeni e-postanızı doğrulamak için tıklayın"), "user__change_email_title" : MessageLookupByLibrary.simpleMessage("E-postanı değiştir"), "user__circle_name_empty_error" : MessageLookupByLibrary.simpleMessage("Çevre adı boş bırakılmaz."), - "user__circle_name_range_error" : m31, - "user__circle_peoples_count" : m32, + "user__circle_name_range_error" : m33, + "user__circle_peoples_count" : m34, "user__clear_app_preferences_cleared_successfully" : MessageLookupByLibrary.simpleMessage("Tercihler başarıyla temizlendi"), "user__clear_app_preferences_desc" : MessageLookupByLibrary.simpleMessage("Uygulama tercihlerini temizleyin. Şu anda bu sadece tercih edilen yorumların sırası için geçerlidir."), "user__clear_app_preferences_error" : MessageLookupByLibrary.simpleMessage("Tercihler temizlenemedi"), @@ -676,23 +726,23 @@ class MessageLookup extends MessageLookupByLibrary { "user__confirm_block_user_blocked" : MessageLookupByLibrary.simpleMessage("Kullanıcı engellendi."), "user__confirm_block_user_info" : MessageLookupByLibrary.simpleMessage("Birbiriniz ile hiçbir paylaşımda bulunamazsınız ve hiçbir şekilde etkileşime giremezsiniz."), "user__confirm_block_user_no" : MessageLookupByLibrary.simpleMessage("Hayır"), - "user__confirm_block_user_question" : m33, + "user__confirm_block_user_question" : m35, "user__confirm_block_user_title" : MessageLookupByLibrary.simpleMessage("Onay"), "user__confirm_block_user_yes" : MessageLookupByLibrary.simpleMessage("Evet"), "user__confirm_connection_add_connection" : MessageLookupByLibrary.simpleMessage("Çevrene bağlantı ekle"), "user__confirm_connection_confirm_text" : MessageLookupByLibrary.simpleMessage("Onayla"), "user__confirm_connection_connection_confirmed" : MessageLookupByLibrary.simpleMessage("Bağlantı onaylandı"), - "user__confirm_connection_with" : m34, + "user__confirm_connection_with" : m36, "user__confirm_guidelines_reject_chat_community" : MessageLookupByLibrary.simpleMessage("Topluluk ile sohbet edin."), "user__confirm_guidelines_reject_chat_immediately" : MessageLookupByLibrary.simpleMessage("Hemen bir sohbet başlat."), "user__confirm_guidelines_reject_chat_with_team" : MessageLookupByLibrary.simpleMessage("Ekiple sohbet et."), "user__confirm_guidelines_reject_delete_account" : MessageLookupByLibrary.simpleMessage("Hesabı sil"), "user__confirm_guidelines_reject_go_back" : MessageLookupByLibrary.simpleMessage("Geri dön"), - "user__confirm_guidelines_reject_info" : MessageLookupByLibrary.simpleMessage("Kuralları kabul edene kadar Openspace\'i kullanamazsınız."), + "user__confirm_guidelines_reject_info" : MessageLookupByLibrary.simpleMessage("Kuralları kabul edene kadar Okuna\'yı kullanamazsınız."), "user__confirm_guidelines_reject_join_slack" : MessageLookupByLibrary.simpleMessage("Çözüm kanalına katılın."), "user__confirm_guidelines_reject_title" : MessageLookupByLibrary.simpleMessage("Kurallar Redded"), "user__connect_to_user_add_connection" : MessageLookupByLibrary.simpleMessage("Çevrene bağlantı ekle"), - "user__connect_to_user_connect_with_username" : m35, + "user__connect_to_user_connect_with_username" : m37, "user__connect_to_user_done" : MessageLookupByLibrary.simpleMessage("Tamam"), "user__connect_to_user_request_sent" : MessageLookupByLibrary.simpleMessage("Bağlantı isteği gönderildi"), "user__connection_circle_edit" : MessageLookupByLibrary.simpleMessage("Düzenle"), @@ -710,28 +760,29 @@ class MessageLookup extends MessageLookupByLibrary { "user__delete_account_current_pwd_hint" : MessageLookupByLibrary.simpleMessage("Mevcut şifrenizi giriniz"), "user__delete_account_next" : MessageLookupByLibrary.simpleMessage("Sonraki"), "user__delete_account_title" : MessageLookupByLibrary.simpleMessage("Hesabı sil"), - "user__disconnect_from_user" : m36, + "user__disconnect_from_user" : m38, "user__disconnect_from_user_success" : MessageLookupByLibrary.simpleMessage("Bağlantı başarıyla kesildi"), "user__edit_profile_bio" : MessageLookupByLibrary.simpleMessage("Biyografi"), + "user__edit_profile_community_posts" : MessageLookupByLibrary.simpleMessage("Topluluk gönderileri"), "user__edit_profile_delete" : MessageLookupByLibrary.simpleMessage("Sil"), "user__edit_profile_followers_count" : MessageLookupByLibrary.simpleMessage("Takipçi sayısı"), "user__edit_profile_location" : MessageLookupByLibrary.simpleMessage("Konum"), "user__edit_profile_name" : MessageLookupByLibrary.simpleMessage("İsim"), "user__edit_profile_pick_image" : MessageLookupByLibrary.simpleMessage("Resim seç"), - "user__edit_profile_pick_image_error_too_large" : m37, + "user__edit_profile_pick_image_error_too_large" : m39, "user__edit_profile_save_text" : MessageLookupByLibrary.simpleMessage("Kaydet"), "user__edit_profile_title" : MessageLookupByLibrary.simpleMessage("Profili düzenle"), "user__edit_profile_url" : MessageLookupByLibrary.simpleMessage("Url"), - "user__edit_profile_user_name_taken" : m38, + "user__edit_profile_user_name_taken" : m40, "user__edit_profile_username" : MessageLookupByLibrary.simpleMessage("Kullanıcı adı"), "user__email_verification_error" : MessageLookupByLibrary.simpleMessage("Oops! Belirteciniz geçerli veya süresi doldu, lütfen yeniden deneyin"), "user__email_verification_successful" : MessageLookupByLibrary.simpleMessage("Harika! E-postanız şimdi doğrulandı"), "user__emoji_field_none_selected" : MessageLookupByLibrary.simpleMessage("Emoji seçilmedi"), - "user__emoji_search_none_found" : m39, + "user__emoji_search_none_found" : m41, "user__follow_button_follow_text" : MessageLookupByLibrary.simpleMessage("Takip et"), "user__follow_button_unfollow_text" : MessageLookupByLibrary.simpleMessage("Takip etmekten vazgeç"), "user__follow_lists_no_list_found" : MessageLookupByLibrary.simpleMessage("Hiç liste bulunmadı."), - "user__follow_lists_no_list_found_for" : m40, + "user__follow_lists_no_list_found_for" : m42, "user__follow_lists_search_for" : MessageLookupByLibrary.simpleMessage("Liste ara..."), "user__follow_lists_title" : MessageLookupByLibrary.simpleMessage("Listelerim"), "user__follower_plural" : MessageLookupByLibrary.simpleMessage("takipçiler"), @@ -739,18 +790,18 @@ class MessageLookup extends MessageLookupByLibrary { "user__followers_title" : MessageLookupByLibrary.simpleMessage("Takipçiler"), "user__following_resource_name" : MessageLookupByLibrary.simpleMessage("takip edilen kullanıcılar"), "user__following_text" : MessageLookupByLibrary.simpleMessage("Takip edilen"), - "user__follows_list_accounts_count" : m41, + "user__follows_list_accounts_count" : m43, "user__follows_list_edit" : MessageLookupByLibrary.simpleMessage("Düzenle"), "user__follows_list_header_title" : MessageLookupByLibrary.simpleMessage("Kullanıcılar"), "user__follows_lists_account" : MessageLookupByLibrary.simpleMessage("1 Hesap"), - "user__follows_lists_accounts" : m42, - "user__groups_see_all" : m43, + "user__follows_lists_accounts" : m44, + "user__groups_see_all" : m45, "user__guidelines_accept" : MessageLookupByLibrary.simpleMessage("Kabul et"), "user__guidelines_desc" : MessageLookupByLibrary.simpleMessage("Lütfen kurallarımızı okumak ve kabul etmek için bir dakikanızı ayırın."), "user__guidelines_reject" : MessageLookupByLibrary.simpleMessage("Reddet"), "user__invite" : MessageLookupByLibrary.simpleMessage("Davet et"), "user__invite_member" : MessageLookupByLibrary.simpleMessage("Üyeler"), - "user__invite_someone_message" : m44, + "user__invite_someone_message" : m46, "user__invites_accepted_group_item_name" : MessageLookupByLibrary.simpleMessage("kabul edilen davet"), "user__invites_accepted_group_name" : MessageLookupByLibrary.simpleMessage("kabul edilen davetler"), "user__invites_accepted_title" : MessageLookupByLibrary.simpleMessage("Kabul edilen"), @@ -769,11 +820,11 @@ class MessageLookup extends MessageLookupByLibrary { "user__invites_email_text" : MessageLookupByLibrary.simpleMessage("E-posta"), "user__invites_invite_a_friend" : MessageLookupByLibrary.simpleMessage("Bir arkadaşını davet et"), "user__invites_invite_text" : MessageLookupByLibrary.simpleMessage("Davet et"), - "user__invites_joined_with" : m45, + "user__invites_joined_with" : m47, "user__invites_none_left" : MessageLookupByLibrary.simpleMessage("Hiç davetiniz yok."), "user__invites_none_used" : MessageLookupByLibrary.simpleMessage("Görünüşe göre hiç davet etmeyi kullanmadın."), "user__invites_pending" : MessageLookupByLibrary.simpleMessage("Beklet"), - "user__invites_pending_email" : m46, + "user__invites_pending_email" : m48, "user__invites_pending_group_item_name" : MessageLookupByLibrary.simpleMessage("bekleyen davet"), "user__invites_pending_group_name" : MessageLookupByLibrary.simpleMessage("bekleyen davetler"), "user__invites_refresh" : MessageLookupByLibrary.simpleMessage("Yenile"), @@ -786,14 +837,14 @@ class MessageLookup extends MessageLookupByLibrary { "user__language_settings_saved_success" : MessageLookupByLibrary.simpleMessage("Dil başarıyla değiştirildi"), "user__language_settings_title" : MessageLookupByLibrary.simpleMessage("Dil ayarları"), "user__list_name_empty_error" : MessageLookupByLibrary.simpleMessage("Liste adı boş olamaz."), - "user__list_name_range_error" : m47, + "user__list_name_range_error" : m49, "user__million_postfix" : MessageLookupByLibrary.simpleMessage("m"), "user__profile_action_cancel_connection" : MessageLookupByLibrary.simpleMessage("Bağlantı isteğini iptal et"), "user__profile_action_deny_connection" : MessageLookupByLibrary.simpleMessage("Bağlantı isteğini reddet"), "user__profile_action_user_blocked" : MessageLookupByLibrary.simpleMessage("Kullanıcı engellendi"), "user__profile_action_user_unblocked" : MessageLookupByLibrary.simpleMessage("Kullanıcının engeli kaldırıldı"), - "user__profile_bio_length_error" : m48, - "user__profile_location_length_error" : m49, + "user__profile_bio_length_error" : m50, + "user__profile_location_length_error" : m51, "user__profile_url_invalid_error" : MessageLookupByLibrary.simpleMessage("Lütfen geçerli bir url adresi girin."), "user__remove_account_from_list" : MessageLookupByLibrary.simpleMessage("Hesabı listelerden kaldır"), "user__remove_account_from_list_success" : MessageLookupByLibrary.simpleMessage("Başarılı"), @@ -803,7 +854,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__save_connection_circle_edit" : MessageLookupByLibrary.simpleMessage("Çevreni düzenle"), "user__save_connection_circle_hint" : MessageLookupByLibrary.simpleMessage("örneğin Arkadaşlar, Aile, İş."), "user__save_connection_circle_name" : MessageLookupByLibrary.simpleMessage("İsim"), - "user__save_connection_circle_name_taken" : m50, + "user__save_connection_circle_name_taken" : m52, "user__save_connection_circle_save" : MessageLookupByLibrary.simpleMessage("Kaydet"), "user__save_connection_circle_users" : MessageLookupByLibrary.simpleMessage("Kullanıcılar"), "user__save_follows_list_create" : MessageLookupByLibrary.simpleMessage("Liste oluştur"), @@ -812,7 +863,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__save_follows_list_emoji_required_error" : MessageLookupByLibrary.simpleMessage("Emoji gerekli"), "user__save_follows_list_hint_text" : MessageLookupByLibrary.simpleMessage("örneğin Seyahat, Fotoğrafçılık"), "user__save_follows_list_name" : MessageLookupByLibrary.simpleMessage("İsim"), - "user__save_follows_list_name_taken" : m51, + "user__save_follows_list_name_taken" : m53, "user__save_follows_list_save" : MessageLookupByLibrary.simpleMessage("Kaydet"), "user__save_follows_list_users" : MessageLookupByLibrary.simpleMessage("Kullanıcılar"), "user__thousand_postfix" : MessageLookupByLibrary.simpleMessage("b"), @@ -822,7 +873,7 @@ class MessageLookup extends MessageLookupByLibrary { "user__timeline_filters_circles" : MessageLookupByLibrary.simpleMessage("Çevreler"), "user__timeline_filters_clear_all" : MessageLookupByLibrary.simpleMessage("Tümünü temizle"), "user__timeline_filters_lists" : MessageLookupByLibrary.simpleMessage("Listeler"), - "user__timeline_filters_no_match" : m52, + "user__timeline_filters_no_match" : m54, "user__timeline_filters_search_desc" : MessageLookupByLibrary.simpleMessage("Çevreleri ve listeleri ara..."), "user__timeline_filters_title" : MessageLookupByLibrary.simpleMessage("Zaman Tüneli filtreleri"), "user__translate_see_translation" : MessageLookupByLibrary.simpleMessage("Çeviriyi gör"), @@ -834,15 +885,17 @@ class MessageLookup extends MessageLookupByLibrary { "user__update_connection_circles_title" : MessageLookupByLibrary.simpleMessage("Çevre bağlantılarını güncelle"), "user_search__cancel" : MessageLookupByLibrary.simpleMessage("İptal et"), "user_search__communities" : MessageLookupByLibrary.simpleMessage("Topluluklar"), - "user_search__list_no_results_found" : m53, + "user_search__list_no_results_found" : m55, "user_search__list_refresh_text" : MessageLookupByLibrary.simpleMessage("Yenile"), "user_search__list_retry" : MessageLookupByLibrary.simpleMessage("Tekrar denemek için tıkla."), - "user_search__list_search_text" : m54, - "user_search__no_communities_for" : m55, - "user_search__no_results_for" : m56, - "user_search__no_users_for" : m57, + "user_search__list_search_text" : m56, + "user_search__no_communities_for" : m57, + "user_search__no_results_for" : m58, + "user_search__no_users_for" : m59, "user_search__search_text" : MessageLookupByLibrary.simpleMessage("Ara..."), - "user_search__searching_for" : m58, - "user_search__users" : MessageLookupByLibrary.simpleMessage("Kullanıcılar") + "user_search__searching_for" : m60, + "user_search__users" : MessageLookupByLibrary.simpleMessage("Kullanıcılar"), + "video_picker__from_camera" : MessageLookupByLibrary.simpleMessage("Kameradan"), + "video_picker__from_gallery" : MessageLookupByLibrary.simpleMessage("Galeriden") }; } diff --git a/lib/main.dart b/lib/main.dart index 99d4fcb7e..ee029410d 100644 --- a/lib/main.dart +++ b/lib/main.dart @@ -32,9 +32,11 @@ import 'package:flutter\_localizations/flutter\_localizations.dart'; import 'package:sentry/sentry.dart'; import 'dart:async'; -import 'delegates/es_es_material_localizations_delegate.dart'; -import 'delegates/pt_br_material_localizations_delegate.dart'; -import 'delegates/sv_se_material_localizations_delegate.dart'; +import 'delegates/es_es_localizations_delegate.dart'; +import 'delegates/pt_br_localizations_delegate.dart'; +import 'delegates/sv_se_localizations_delegate.dart'; + +final RouteObserver routeObserver = RouteObserver(); class MyApp extends StatefulWidget { final openbookProviderKey = new GlobalKey(); @@ -66,6 +68,7 @@ class _MyAppState extends State { key: widget.openbookProviderKey, child: OBToast( child: MaterialApp( + navigatorObservers: [routeObserver], locale: this.locale, debugShowCheckedModeBanner: false, localeResolutionCallback: (deviceLocale, supportedLocales) { @@ -97,8 +100,11 @@ class _MyAppState extends State { GlobalMaterialLocalizations.delegate, GlobalWidgetsLocalizations.delegate, const MaterialLocalizationPtBRDelegate(), + const CupertinoLocalizationPtBRDelegate(), const MaterialLocalizationEsESDelegate(), + const CupertinoLocalizationEsESDelegate(), const MaterialLocalizationSvSEDelegate(), + const CupertinoLocalizationSvSEDelegate(), ], theme: new ThemeData( buttonTheme: ButtonThemeData( diff --git a/lib/models/notifications/notification.dart b/lib/models/notifications/notification.dart index 2f873aead..4ec675467 100644 --- a/lib/models/notifications/notification.dart +++ b/lib/models/notifications/notification.dart @@ -32,16 +32,6 @@ class OBNotification extends UpdatableModel { this.read}); static final factory = NotificationFactory(); - static final postReaction = 'PR'; - static final postComment = 'PC'; - static final postCommentReply = 'PCR'; - static final postCommentReaction = 'PCRA'; - static final connectionRequest = 'CR'; - static final connectionConfirmed = 'CC'; - static final follow = 'F'; - static final communityInvite = 'CI'; - static final postCommentUserMention = 'PCUM'; - static final postUserMention = 'PUM'; factory OBNotification.fromJSON(Map json) { return factory.fromJson(json); @@ -58,7 +48,7 @@ class OBNotification extends UpdatableModel { } if (json.containsKey('notification_type')) { - type = factory.parseType(json['notification_type']); + type = NotificationType.parse(json['notification_type']); } if (json.containsKey('content_object')) { @@ -88,7 +78,7 @@ class NotificationFactory extends UpdatableModelFactory { @override OBNotification makeFromJson(Map json) { - NotificationType type = parseType(json['notification_type']); + NotificationType type = NotificationType.parse(json['notification_type']); return OBNotification( id: json['id'], @@ -105,38 +95,6 @@ class NotificationFactory extends UpdatableModelFactory { return User.fromJson(userData); } - NotificationType parseType(String notificationTypeStr) { - if (notificationTypeStr == null) return null; - - NotificationType notificationType; - if (notificationTypeStr == OBNotification.postReaction) { - notificationType = NotificationType.postReaction; - } else if (notificationTypeStr == OBNotification.postComment) { - notificationType = NotificationType.postComment; - } else if (notificationTypeStr == OBNotification.postCommentReply) { - notificationType = NotificationType.postCommentReply; - } else if (notificationTypeStr == OBNotification.postCommentReaction) { - notificationType = NotificationType.postCommentReaction; - } else if (notificationTypeStr == OBNotification.postCommentUserMention) { - notificationType = NotificationType.postCommentUserMention; - } else if (notificationTypeStr == OBNotification.postUserMention) { - notificationType = NotificationType.postUserMention; - } else if (notificationTypeStr == OBNotification.connectionRequest) { - notificationType = NotificationType.connectionRequest; - } else if (notificationTypeStr == OBNotification.connectionConfirmed) { - notificationType = NotificationType.connectionConfirmed; - } else if (notificationTypeStr == OBNotification.follow) { - notificationType = NotificationType.follow; - } else if (notificationTypeStr == OBNotification.communityInvite) { - notificationType = NotificationType.communityInvite; - } else { - // Don't throw as we might introduce new notifications on the API which might not be yet in code - print('Unsupported notification type'); - } - - return notificationType; - } - dynamic parseContentObject( {@required Map contentObjectData, @required NotificationType type}) { if (contentObjectData == null) return null; @@ -188,15 +146,58 @@ class NotificationFactory extends UpdatableModelFactory { } } -enum NotificationType { - postReaction, - postComment, - postCommentReply, - postCommentReaction, - connectionRequest, - connectionConfirmed, - follow, - communityInvite, - postCommentUserMention, - postUserMention, +class NotificationType { + // Using a custom-built enum class to link the notification type strings + // directly to the matching enum constants. + // This class can still be used in switch statements as a normal enum. + final String code; + + const NotificationType._internal(this.code); + + toString() => code; + + static const postReaction = const NotificationType._internal('PR'); + static const postComment = const NotificationType._internal('PC'); + static const postCommentReply = const NotificationType._internal('PCR'); + static const postCommentReaction = const NotificationType._internal('PCRA'); + static const connectionRequest = const NotificationType._internal('CR'); + static const connectionConfirmed = const NotificationType._internal('CC'); + static const follow = const NotificationType._internal('F'); + static const communityInvite = const NotificationType._internal('CI'); + static const postCommentUserMention = const NotificationType._internal('PCUM'); + static const postUserMention = const NotificationType._internal('PUM'); + + static const _values = const [ + postReaction, + postComment, + postCommentReply, + postCommentReaction, + connectionRequest, + connectionConfirmed, + follow, + communityInvite, + postCommentUserMention, + postUserMention + ]; + + static values() => _values; + + static NotificationType parse(String string) { + if (string == null) return null; + + NotificationType notificationType; + for (var type in _values) { + if (string == type.code) { + notificationType = type; + break; + } + } + + if (notificationType == null) { + // Don't throw as we might introduce new notifications on the API which might not be yet in code + print('Unsupported notification type'); + } + + return notificationType; + } } diff --git a/lib/models/post.dart b/lib/models/post.dart index ef9a34e0f..5cb5c20ce 100644 --- a/lib/models/post.dart +++ b/lib/models/post.dart @@ -4,12 +4,13 @@ import 'package:Okuna/models/community.dart'; import 'package:Okuna/models/emoji.dart'; import 'package:Okuna/models/post_comment.dart'; import 'package:Okuna/models/post_comment_list.dart'; -import 'package:Okuna/models/post_image.dart'; +import 'package:Okuna/models/post_media.dart'; +import 'package:Okuna/models/post_media_list.dart'; +import 'package:Okuna/models/post_preview_link_data.dart'; import 'package:Okuna/models/post_reaction.dart'; import 'package:Okuna/models/reactions_emoji_count.dart'; import 'package:Okuna/models/reactions_emoji_count_list.dart'; import 'package:Okuna/models/updatable_model.dart'; -import 'package:Okuna/models/post_video.dart'; import 'package:Okuna/models/user.dart'; import 'package:dcache/dcache.dart'; import 'package:timeago/timeago.dart' as timeago; @@ -28,12 +29,17 @@ class Post extends UpdatableModel { PostReaction reaction; int reactionsCount; int commentsCount; + double mediaHeight; + double mediaWidth; + String mediaThumbnail; bool areCommentsEnabled; bool publicReactions; String text; Language language; - PostImage image; - PostVideo video; + OBPostStatus status; + + PostMediaList media; + LinkPreview linkPreview; PostCommentList commentsList; Community community; @@ -59,18 +65,21 @@ class Post extends UpdatableModel { this.created, this.text, this.creatorId, - this.image, - this.video, + this.mediaThumbnail, + this.media, this.creator, this.language, this.reactionsCount, this.commentsCount, + this.mediaHeight, + this.mediaWidth, this.commentsList, this.reaction, this.reactionsEmojiCounts, this.areCommentsEnabled, this.circles, this.community, + this.status, this.publicReactions, this.isMuted, this.isEncircled, @@ -86,6 +95,8 @@ class Post extends UpdatableModel { if (json.containsKey('reaction')) reaction = factory.parseReaction(json['reaction']); + if (json.containsKey('status')) status = OBPostStatus.parse(json['status']); + if (json.containsKey('reactions_count')) reactionsCount = json['reactions_count']; @@ -98,11 +109,19 @@ class Post extends UpdatableModel { if (json.containsKey('public_reactions')) publicReactions = json['public_reactions']; + if (json.containsKey('media_height')) + mediaHeight = factory.parseMediaHeight(json['media_height']); + + if (json.containsKey('media_width')) + mediaWidth = factory.parseMediaWidth(json['media_width']); + if (json.containsKey('language')) { language = factory.parseLanguage(json['language']); } - if (json.containsKey('text')) text = json['text']; + if (json.containsKey('text')) { + text = json['text']; + } if (json.containsKey('is_muted')) isMuted = json['is_muted']; @@ -114,9 +133,10 @@ class Post extends UpdatableModel { if (json.containsKey('is_reported')) isReported = json['is_reported']; - if (json.containsKey('image')) image = factory.parseImage(json['image']); + if (json.containsKey('media_thumbnail')) + mediaThumbnail = json['media_thumbnail']; - if (json.containsKey('video')) video = factory.parseVideo(json['video']); + if (json.containsKey('media')) media = factory.parseMedia(json['media']); if (json.containsKey('community')) community = factory.parseCommunity(json['community']); @@ -134,6 +154,19 @@ class Post extends UpdatableModel { circles = factory.parseCircles(json['circles']); } + void updatePreviewDataFromJson(Map json) { + linkPreview = LinkPreview(); + if (json.containsKey('title')) linkPreview.title = json['title']; + if (json.containsKey('description')) + linkPreview.description = json['description']; + if (json.containsKey('image_url')) linkPreview.imageUrl = json['image_url']; + if (json.containsKey('favicon_url')) + linkPreview.faviconUrl = json['favicon_url']; + if (json.containsKey('domain_url')) + linkPreview.domainUrl = json['domain_url']; + notifyUpdate(); + } + bool hasReaction() { return reaction != null; } @@ -150,16 +183,20 @@ class Post extends UpdatableModel { return publicReactions && areCommentsEnabled; } - bool hasImage() { - return image != null; - } - bool isCommunityPost() { return community != null; } - bool hasVideo() { - return video != null; + bool hasMediaThumbnail() { + return mediaThumbnail != null; + } + + bool hasMedia() { + return media != null && media.postMedia.isNotEmpty; + } + + bool hasLinkPreview() { + return linkPreview != null; } bool hasText() { @@ -210,28 +247,12 @@ class Post extends UpdatableModel { return creator.profile.avatar; } - String getImage() { - return image.image; - } - - double getImageHeight() { - return image.height; - } - - double getImageWidth() { - return image.width; - } - - double getVideoHeight() { - return video.height; + List getMedia() { + return media.postMedia; } - double getVideoWidth() { - return video.width; - } - - String getVideo() { - return video.video; + PostMedia getFirstMedia() { + return media.postMedia.first; } Language getLanguage() { @@ -252,6 +273,16 @@ class Post extends UpdatableModel { this.notifyUpdate(); } + void setMedia(PostMediaList media) { + this.media = media; + this.notifyUpdate(); + } + + void setLinkPreview(LinkPreview linkPreview) { + this.linkPreview = linkPreview; + this.notifyUpdate(); + } + void clearReaction() { this.setReaction(null); } @@ -306,6 +337,11 @@ class Post extends UpdatableModel { notifyUpdate(); } + void setStatus(OBPostStatus status) { + this.status = status; + this.notifyUpdate(); + } + void _setReactionsEmojiCounts(ReactionsEmojiCountList emojiCounts) { reactionsEmojiCounts = emojiCounts; } @@ -323,18 +359,21 @@ class PostFactory extends UpdatableModelFactory { uuid: json['uuid'], creatorId: json['creator_id'], created: parseCreated(json['created']), + status: OBPostStatus.parse(json['status']), text: json['text'], language: parseLanguage(json['language']), circles: parseCircles(json['circles']), reactionsCount: json['reactions_count'], commentsCount: json['comments_count'], + mediaHeight: parseMediaHeight(json['media_height']), + mediaWidth: parseMediaWidth(json['media_width']), isMuted: json['is_muted'], isReported: json['is_reported'], areCommentsEnabled: json['comments_enabled'], publicReactions: json['public_reactions'], creator: parseCreator(json['creator']), - image: parseImage(json['image']), - video: parseVideo(json['video']), + mediaThumbnail: json['media_thumbnail'], + media: parseMedia(json['media']), reaction: parseReaction(json['reaction']), community: parseCommunity(json['community']), commentsList: parseCommentList(json['comments']), @@ -355,14 +394,9 @@ class PostFactory extends UpdatableModelFactory { return DateTime.parse(created).toLocal(); } - PostImage parseImage(Map image) { - if (image == null) return null; - return PostImage.fromJSON(image); - } - - PostVideo parseVideo(Map video) { - if (video == null) return null; - return PostVideo.fromJSON(video); + PostMediaList parseMedia(List mediaRawData) { + if (mediaRawData == null) return null; + return PostMediaList.fromJson(mediaRawData); } User parseCreator(Map creator) { @@ -380,8 +414,7 @@ class PostFactory extends UpdatableModelFactory { return Community.fromJSON(communityData); } - ReactionsEmojiCountList parseReactionsEmojiCounts( - List reactionsEmojiCounts) { + ReactionsEmojiCountList parseReactionsEmojiCounts(List reactionsEmojiCounts) { if (reactionsEmojiCounts == null) return null; return ReactionsEmojiCountList.fromJson(reactionsEmojiCounts); } @@ -400,4 +433,51 @@ class PostFactory extends UpdatableModelFactory { if (languageData == null) return null; return Language.fromJson(languageData); } + + double parseMediaWidth(dynamic mediaWidth) { + if (mediaWidth == null) return null; + if (mediaWidth is int) return mediaWidth.toDouble(); + if (mediaWidth is double) return mediaWidth; + } + + double parseMediaHeight(dynamic mediaHeight) { + if (mediaHeight == null) return null; + if (mediaHeight is int) return mediaHeight.toDouble(); + if (mediaHeight is double) return mediaHeight; + } +} + +class OBPostStatus { + final String code; + + const OBPostStatus._internal(this.code); + + toString() => code; + + static const draft = const OBPostStatus._internal('D'); + static const processing = const OBPostStatus._internal('PG'); + static const published = const OBPostStatus._internal('P'); + + static const _values = const [draft, processing, published]; + + static values() => _values; + + static OBPostStatus parse(String string) { + if (string == null) return null; + + OBPostStatus postStatus; + for (var type in _values) { + if (string == type.code) { + postStatus = type; + break; + } + } + + if (postStatus == null) { + // Don't throw as we might introduce new notifications on the API which might not be yet in code + print('Unsupported post status type: ' + string); + } + + return postStatus; + } } diff --git a/lib/models/post_comment.dart b/lib/models/post_comment.dart index 5e378f790..1759c265d 100644 --- a/lib/models/post_comment.dart +++ b/lib/models/post_comment.dart @@ -207,7 +207,7 @@ class PostComment extends UpdatableModel { throw 'Trying to remove no reaction'; } - var newEmojiCounts = reactionsEmojiCounts.counts.toList(); + var newEmojiCounts = reactionsEmojiCounts.counts != null ? reactionsEmojiCounts.counts.toList() : []; if (hasReaction) { var currentReactionEmojiCount = newEmojiCounts.firstWhere((emojiCount) { diff --git a/lib/models/post_image.dart b/lib/models/post_image.dart index 2bf69325c..83d1bca56 100644 --- a/lib/models/post_image.dart +++ b/lib/models/post_image.dart @@ -2,12 +2,19 @@ class PostImage { final String image; final double width; final double height; + final String thumbnail; - PostImage({this.image, this.width, this.height}); + PostImage({ + this.image, + this.width, + this.height, + this.thumbnail, + }); factory PostImage.fromJSON(Map parsedJson) { return PostImage( image: parsedJson['image'], + thumbnail: parsedJson['thumbnail'], width: parsedJson['width']?.toDouble(), height: parsedJson['height']?.toDouble()); } diff --git a/lib/models/post_media.dart b/lib/models/post_media.dart new file mode 100644 index 000000000..947a064b4 --- /dev/null +++ b/lib/models/post_media.dart @@ -0,0 +1,78 @@ +import 'package:Okuna/models/post_image.dart'; +import 'package:Okuna/models/post_video.dart'; +import 'package:flutter/cupertino.dart'; + +class PostMedia { + final int id; + final PostMediaType type; + final dynamic contentObject; + final int order; + + PostMedia({this.id, this.type, this.contentObject, this.order}); + + factory PostMedia.fromJSON(Map json) { + PostMediaType type = PostMediaType.parse(json['type']); + + return PostMedia( + id: json['id'], + type: type, + order: json['oder'], + contentObject: parseContentObject( + contentObjectData: json['content_object'], type: type)); + } + + static dynamic parseContentObject( + {@required Map contentObjectData, @required PostMediaType type}) { + if (contentObjectData == null) return null; + + dynamic contentObject; + switch (type) { + case PostMediaType.image: + contentObject = + PostImage.fromJSON(contentObjectData); + break; + case PostMediaType.video: + contentObject = PostVideo.fromJSON(contentObjectData); + break; + default: + } + return contentObject; + } +} + +class PostMediaType { + final String code; + + const PostMediaType._internal(this.code); + + toString() => code; + + static const video = const PostMediaType._internal('V'); + static const image = const PostMediaType._internal('I'); + + static const _values = const [ + video, + image, + ]; + + static values() => _values; + + static PostMediaType parse(String string) { + if (string == null) return null; + + PostMediaType postMediaType; + for (var type in _values) { + if (string == type.code) { + postMediaType = type; + break; + } + } + + if (postMediaType == null) { + // Don't throw as we might introduce new medias on the API which might not be yet in code + print('Unsupported post media type'); + } + + return postMediaType; + } +} diff --git a/lib/models/post_media_list.dart b/lib/models/post_media_list.dart new file mode 100644 index 000000000..9f35c0be2 --- /dev/null +++ b/lib/models/post_media_list.dart @@ -0,0 +1,18 @@ +import 'package:Okuna/models/post_media.dart'; + +class PostMediaList { + final List postMedia; + + PostMediaList({ + this.postMedia, + }); + + factory PostMediaList.fromJson(List parsedJson) { + List postMedia = + parsedJson.map((postJson) => PostMedia.fromJSON(postJson)).toList(); + + return new PostMediaList( + postMedia: postMedia, + ); + } +} diff --git a/lib/models/post_preview_link_data.dart b/lib/models/post_preview_link_data.dart new file mode 100644 index 000000000..60881c2e7 --- /dev/null +++ b/lib/models/post_preview_link_data.dart @@ -0,0 +1,25 @@ +class LinkPreview { + String title; + String siteName; + String description; + String imageUrl; + String faviconUrl; + String domainUrl; + String url; + List image; + + LinkPreview( + {this.title, + this.siteName, + this.description, + this.url, + this.imageUrl, + this.faviconUrl, + this.image, + this.domainUrl}); + + @override + String toString() { + return 'LinkPreview:Title:$title:SiteName:$siteName:Description:$description:FaviconUrl:$faviconUrl:DomainUrl:$domainUrl:Url:$url'; + } +} diff --git a/lib/models/post_video.dart b/lib/models/post_video.dart index b09267fcc..c43d5ba65 100644 --- a/lib/models/post_video.dart +++ b/lib/models/post_video.dart @@ -1,14 +1,50 @@ +import 'package:Okuna/models/video_format.dart'; +import 'package:Okuna/models/video_formats_list.dart'; + class PostVideo { - final String video; + final int id; final double width; final double height; + final double duration; + final String file; + final String thumbnail; + final double thumbnailHeight; + final double thumbnailWidth; + final OBVideoFormatsList formatSet; + + const PostVideo({ + this.id, + this.width, + this.height, + this.duration, + this.file, + this.formatSet, + this.thumbnail, + this.thumbnailHeight, + this.thumbnailWidth, + }); - PostVideo({this.video, this.width, this.height}); + OBVideoFormat getVideoFormatOfType(OBVideoFormatType type) { + return formatSet.videoFormats.firstWhere((OBVideoFormat format) { + return format.type == type; + }); + } factory PostVideo.fromJSON(Map parsedJson) { return PostVideo( - video: parsedJson['video'], - width: parsedJson['width']?.toDouble(), - height: parsedJson['height']?.toDouble()); + width: parsedJson['width']?.toDouble(), + height: parsedJson['height']?.toDouble(), + duration: parsedJson['duration'], + file: parsedJson['file'], + formatSet: parseFormatSet(parsedJson['format_set']), + thumbnail: parsedJson['thumbnail'], + thumbnailHeight: parsedJson['thumbnail_height']?.toDouble(), + thumbnailWidth: parsedJson['thumbnail_width']?.toDouble(), + ); + } + + static OBVideoFormatsList parseFormatSet(List rawData) { + if (rawData == null) return null; + return OBVideoFormatsList.fromJson(rawData); } } diff --git a/lib/models/push_notification.dart b/lib/models/push_notification.dart index 1672bd888..e9c85d38c 100644 --- a/lib/models/push_notification.dart +++ b/lib/models/push_notification.dart @@ -5,15 +5,15 @@ class PushNotification { if (pushNotificationTypeStr == null) return null; PushNotificationType pushNotificationType; - if (pushNotificationTypeStr == OBNotification.postReaction) { + if (pushNotificationTypeStr == NotificationType.postReaction.code) { pushNotificationType = PushNotificationType.postReaction; - } else if (pushNotificationTypeStr == OBNotification.postComment) { + } else if (pushNotificationTypeStr == NotificationType.postComment.code) { pushNotificationType = PushNotificationType.postComment; - } else if (pushNotificationTypeStr == OBNotification.connectionRequest) { + } else if (pushNotificationTypeStr == NotificationType.connectionRequest.code) { pushNotificationType = PushNotificationType.connectionRequest; - } else if (pushNotificationTypeStr == OBNotification.follow) { + } else if (pushNotificationTypeStr == NotificationType.follow.code) { pushNotificationType = PushNotificationType.follow; - } else if (pushNotificationTypeStr == OBNotification.communityInvite) { + } else if (pushNotificationTypeStr == NotificationType.communityInvite.code) { pushNotificationType = PushNotificationType.communityInvite; } else { throw 'Unsupported push notification type'; diff --git a/lib/models/user.dart b/lib/models/user.dart index f564e0a92..86a62f2d6 100644 --- a/lib/models/user.dart +++ b/lib/models/user.dart @@ -217,6 +217,10 @@ class User extends UpdatableModel { return this.profile.followersCountVisible; } + bool getProfileCommunityPostsVisible() { + return this.profile.communityPostsVisible; + } + String getProfileUrl() { return this.profile.url; } diff --git a/lib/models/user_profile.dart b/lib/models/user_profile.dart index 265235d7c..0c7762ca2 100644 --- a/lib/models/user_profile.dart +++ b/lib/models/user_profile.dart @@ -10,30 +10,35 @@ class UserProfile { String url; String location; bool followersCountVisible; + bool communityPostsVisible; List badges; - UserProfile( - {this.id, - this.name, - this.avatar, - this.cover, - this.bio, - this.url, - this.location, - this.badges, - this.followersCountVisible}); + UserProfile({ + this.id, + this.name, + this.avatar, + this.cover, + this.bio, + this.url, + this.location, + this.badges, + this.followersCountVisible, + this.communityPostsVisible, + }); factory UserProfile.fromJSON(Map parsedJson) { return UserProfile( - id: parsedJson['id'], - name: parsedJson['name'], - avatar: parsedJson['avatar'], - cover: parsedJson['cover'], - bio: parsedJson['bio'], - url: parsedJson['url'], - location: parsedJson['location'], - badges: parseBadges(parsedJson['badges']), - followersCountVisible: parsedJson['followers_count_visible']); + id: parsedJson['id'], + name: parsedJson['name'], + avatar: parsedJson['avatar'], + cover: parsedJson['cover'], + bio: parsedJson['bio'], + url: parsedJson['url'], + location: parsedJson['location'], + badges: parseBadges(parsedJson['badges']), + followersCountVisible: parsedJson['followers_count_visible'], + communityPostsVisible: parsedJson['community_posts_visible'], + ); } static List parseBadges(List badges) { @@ -51,6 +56,8 @@ class UserProfile { if (json.containsKey('badges')) badges = parseBadges(json['badges']); if (json.containsKey('followers_count_visible')) followersCountVisible = json['followers_count_visible']; + if (json.containsKey('community_posts_visible')) + communityPostsVisible = json['community_posts_visible']; } bool hasLocation() { diff --git a/lib/models/video_format.dart b/lib/models/video_format.dart new file mode 100644 index 000000000..174498ae7 --- /dev/null +++ b/lib/models/video_format.dart @@ -0,0 +1,61 @@ +class OBVideoFormat { + final int id; + final double progress; + final double duration; + final String format; + final String file; + + OBVideoFormatType type; + + OBVideoFormat( + {this.id, this.progress, this.duration, this.format, this.file}) { + type = OBVideoFormatType.parse(format); + } + + factory OBVideoFormat.fromJSON(Map json) { + return OBVideoFormat( + id: json['int'], + progress: json['progress']?.toDouble(), + duration: json['duration']?.toDouble(), + format: json['format'], + file: json['file'], + ); + } +} + +class OBVideoFormatType { + final String code; + + const OBVideoFormatType._internal(this.code); + + toString() => code; + + static const mp4SD = const OBVideoFormatType._internal('mp4_sd'); + static const webmSD = const OBVideoFormatType._internal('webm_sd'); + + static const _values = const [ + mp4SD, + webmSD, + ]; + + static values() => _values; + + static OBVideoFormatType parse(String string) { + if (string == null) return null; + + OBVideoFormatType videoFormatType; + for (var type in _values) { + if (string == type.code) { + videoFormatType = type; + break; + } + } + + if (videoFormatType == null) { + // Don't throw as we might introduce new medias on the API which might not be yet in code + print('Unsupported video format type'); + } + + return videoFormatType; + } +} diff --git a/lib/models/video_formats_list.dart b/lib/models/video_formats_list.dart new file mode 100644 index 000000000..d4c9edebc --- /dev/null +++ b/lib/models/video_formats_list.dart @@ -0,0 +1,19 @@ +import 'package:Okuna/models/video_format.dart'; + +class OBVideoFormatsList { + final List videoFormats; + + OBVideoFormatsList({ + this.videoFormats, + }); + + factory OBVideoFormatsList.fromJson(List parsedJson) { + List videoFormats = parsedJson + .map((videoFormatJson) => OBVideoFormat.fromJSON(videoFormatJson)) + .toList(); + + return new OBVideoFormatsList( + videoFormats: videoFormats, + ); + } +} diff --git a/lib/pages/home/bottom_sheets/image_picker.dart b/lib/pages/home/bottom_sheets/image_picker.dart new file mode 100644 index 000000000..797cd4716 --- /dev/null +++ b/lib/pages/home/bottom_sheets/image_picker.dart @@ -0,0 +1,55 @@ +import 'dart:io'; + +import 'package:Okuna/provider.dart'; +import 'package:Okuna/services/localization.dart'; +import 'package:Okuna/services/media.dart'; +import 'package:Okuna/widgets/icon.dart'; +import 'package:Okuna/widgets/theming/primary_color_container.dart'; +import 'package:Okuna/widgets/theming/text.dart'; +import 'package:file_picker/file_picker.dart'; +import 'package:flutter/material.dart'; + +class OBImagePickerBottomSheet extends StatelessWidget { + const OBImagePickerBottomSheet({Key key}) : super(key: key); + + @override + Widget build(BuildContext context) { + var provider = OpenbookProvider.of(context); + + LocalizationService localizationService = provider.localizationService; + + List imagePickerActions = [ + ListTile( + leading: const OBIcon(OBIcons.gallery), + title: OBText( + localizationService.image_picker__from_gallery, + ), + onTap: () async { + File file = await FilePicker.getFile(type: FileType.IMAGE); + Navigator.pop(context, file); + }, + ), + ListTile( + leading: const OBIcon(OBIcons.camera), + title: OBText( + localizationService.image_picker__from_camera, + ), + onTap: () async { + File pickedImage = + await ImagePicker.pickImage(source: ImageSource.camera); + Navigator.pop(context, pickedImage); + }, + ) + ]; + + return OBPrimaryColorContainer( + mainAxisSize: MainAxisSize.min, + child: Padding( + padding: EdgeInsets.only(bottom: 16), + child: Column( + children: imagePickerActions, + mainAxisSize: MainAxisSize.min, + ), + )); + } +} diff --git a/lib/pages/home/bottom_sheets/link_previews_setting_picker.dart b/lib/pages/home/bottom_sheets/link_previews_setting_picker.dart new file mode 100644 index 000000000..f10ae88fe --- /dev/null +++ b/lib/pages/home/bottom_sheets/link_previews_setting_picker.dart @@ -0,0 +1,66 @@ +import 'package:Okuna/provider.dart'; +import 'package:Okuna/services/user_preferences.dart'; +import 'package:Okuna/widgets/theming/primary_color_container.dart'; +import 'package:Okuna/widgets/theming/text.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +class OBLinkPreviewsSettingPickerBottomSheet extends StatefulWidget { + final ValueChanged onTypeChanged; + + final LinkPreviewsSetting initialValue; + + const OBLinkPreviewsSettingPickerBottomSheet( + {Key key, @required this.onTypeChanged, this.initialValue}) + : super(key: key); + + @override + OBLinkPreviewsSettingPickerBottomSheetState createState() { + return OBLinkPreviewsSettingPickerBottomSheetState(); + } +} + +class OBLinkPreviewsSettingPickerBottomSheetState + extends State { + FixedExtentScrollController _cupertinoPickerController; + List allLinkPreviewsSettings; + + @override + void initState() { + super.initState(); + allLinkPreviewsSettings = LinkPreviewsSetting.values(); + _cupertinoPickerController = FixedExtentScrollController( + initialItem: widget.initialValue != null + ? allLinkPreviewsSettings.indexOf(widget.initialValue) + : null); + } + + @override + Widget build(BuildContext context) { + var openbookProvider = OpenbookProvider.of(context); + + Map localizationMap = openbookProvider + .userPreferencesService + .getLinkPreviewsSettingLocalizationMap(); + + return OBPrimaryColorContainer( + mainAxisSize: MainAxisSize.min, + child: SizedBox( + height: 216, + child: CupertinoPicker( + scrollController: _cupertinoPickerController, + backgroundColor: Colors.transparent, + onSelectedItemChanged: (int index) { + LinkPreviewsSetting newType = allLinkPreviewsSettings[index]; + widget.onTypeChanged(newType); + }, + itemExtent: 32, + children: + allLinkPreviewsSettings.map((LinkPreviewsSetting setting) { + return OBText(localizationMap[setting]); + }).toList(), + ), + ), + ); + } +} diff --git a/lib/pages/home/bottom_sheets/video_picker.dart b/lib/pages/home/bottom_sheets/video_picker.dart index 679a21b83..0928439bb 100644 --- a/lib/pages/home/bottom_sheets/video_picker.dart +++ b/lib/pages/home/bottom_sheets/video_picker.dart @@ -1,52 +1,55 @@ import 'dart:io'; import 'package:Okuna/provider.dart'; -import 'package:Okuna/services/image_picker.dart'; +import 'package:Okuna/services/localization.dart'; +import 'package:Okuna/services/media.dart'; import 'package:Okuna/widgets/icon.dart'; import 'package:Okuna/widgets/theming/primary_color_container.dart'; import 'package:Okuna/widgets/theming/text.dart'; +import 'package:file_picker/file_picker.dart'; import 'package:flutter/material.dart'; class OBVideoPickerBottomSheet extends StatelessWidget { + const OBVideoPickerBottomSheet({Key key}) : super(key: key); + @override Widget build(BuildContext context) { - ImagePickerService imagePickerService = - OpenbookProvider.of(context).imagePickerService; + var provider = OpenbookProvider.of(context); + + LocalizationService localizationService = provider.localizationService; List videoPickerActions = [ ListTile( leading: const OBIcon(OBIcons.gallery), - title: const OBText( - 'From gallery', + title: OBText( + localizationService.video_picker__from_gallery, ), onTap: () async { - File video = - await imagePickerService.pickVideo(source: ImageSource.gallery); - Navigator.pop(context, video); + File file = await FilePicker.getFile(type: FileType.VIDEO); + Navigator.pop(context, file); }, ), ListTile( leading: const OBIcon(OBIcons.camera), - title: const OBText( - 'From camera', + title: OBText( + localizationService.video_picker__from_camera, ), onTap: () async { - File video = - await imagePickerService.pickVideo(source: ImageSource.camera); - Navigator.pop(context, video); + File pickedVideo = + await ImagePicker.pickVideo(source: ImageSource.camera); + Navigator.pop(context, pickedVideo); }, ) ]; return OBPrimaryColorContainer( - mainAxisSize: MainAxisSize.min, - child: Padding( - padding: EdgeInsets.only(bottom: 16), - child: Column( - children: videoPickerActions, - mainAxisSize: MainAxisSize.min, + mainAxisSize: MainAxisSize.min, + child: Padding( + padding: EdgeInsets.only(bottom: 16), + child: Column( + children: videoPickerActions, + mainAxisSize: MainAxisSize.min, ), - ) - ); + )); } } diff --git a/lib/pages/home/bottom_sheets/videos_autoplay_setting_picker.dart b/lib/pages/home/bottom_sheets/videos_autoplay_setting_picker.dart new file mode 100644 index 000000000..586937b6e --- /dev/null +++ b/lib/pages/home/bottom_sheets/videos_autoplay_setting_picker.dart @@ -0,0 +1,67 @@ +import 'package:Okuna/provider.dart'; +import 'package:Okuna/services/localization.dart'; +import 'package:Okuna/services/user_preferences.dart'; +import 'package:Okuna/widgets/theming/primary_color_container.dart'; +import 'package:Okuna/widgets/theming/text.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +class OBVideosAutoPlaySettingPickerBottomSheet extends StatefulWidget { + final ValueChanged onTypeChanged; + + final VideosAutoPlaySetting initialValue; + + const OBVideosAutoPlaySettingPickerBottomSheet( + {Key key, @required this.onTypeChanged, this.initialValue}) + : super(key: key); + + @override + OBVideosAutoPlaySettingPickerBottomSheetState createState() { + return OBVideosAutoPlaySettingPickerBottomSheetState(); + } +} + +class OBVideosAutoPlaySettingPickerBottomSheetState + extends State { + FixedExtentScrollController _cupertinoPickerController; + List allVideosAutoPlaySettings; + + @override + void initState() { + super.initState(); + allVideosAutoPlaySettings = VideosAutoPlaySetting.values(); + _cupertinoPickerController = FixedExtentScrollController( + initialItem: widget.initialValue != null + ? allVideosAutoPlaySettings.indexOf(widget.initialValue) + : null); + } + + @override + Widget build(BuildContext context) { + var openbookProvider = OpenbookProvider.of(context); + + Map localizationMap = openbookProvider + .userPreferencesService + .getVideosAutoPlaySettingLocalizationMap(); + + return OBPrimaryColorContainer( + mainAxisSize: MainAxisSize.min, + child: SizedBox( + height: 216, + child: CupertinoPicker( + scrollController: _cupertinoPickerController, + backgroundColor: Colors.transparent, + onSelectedItemChanged: (int index) { + VideosAutoPlaySetting newType = allVideosAutoPlaySettings[index]; + widget.onTypeChanged(newType); + }, + itemExtent: 32, + children: + allVideosAutoPlaySettings.map((VideosAutoPlaySetting setting) { + return OBText(localizationMap[setting]); + }).toList(), + ), + ), + ); + } +} diff --git a/lib/pages/home/bottom_sheets/videos_sound_setting_picker.dart b/lib/pages/home/bottom_sheets/videos_sound_setting_picker.dart new file mode 100644 index 000000000..f446a08d4 --- /dev/null +++ b/lib/pages/home/bottom_sheets/videos_sound_setting_picker.dart @@ -0,0 +1,68 @@ +import 'package:Okuna/provider.dart'; +import 'package:Okuna/services/user_preferences.dart'; +import 'package:Okuna/widgets/theming/primary_color_container.dart'; +import 'package:Okuna/widgets/theming/text.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +class OBVideosSoundSettingPickerBottomSheet extends StatefulWidget { + final ValueChanged onTypeChanged; + + final VideosSoundSetting initialValue; + + const OBVideosSoundSettingPickerBottomSheet( + {Key key, @required this.onTypeChanged, this.initialValue}) + : super(key: key); + + @override + OBVideosSoundSettingPickerBottomSheetState createState() { + return OBVideosSoundSettingPickerBottomSheetState(); + } +} + +class OBVideosSoundSettingPickerBottomSheetState + extends State { + FixedExtentScrollController _cupertinoPickerController; + List allVideosSoundSettings; + + @override + void initState() { + super.initState(); + allVideosSoundSettings = VideosSoundSetting.values(); + _cupertinoPickerController = FixedExtentScrollController( + initialItem: widget.initialValue != null + ? allVideosSoundSettings.indexOf(widget.initialValue) + : null); + } + + @override + Widget build(BuildContext context) { + var openbookProvider = OpenbookProvider.of(context); + UserPreferencesService userPreferencesService = + openbookProvider.userPreferencesService; + + Map localizationMap = + userPreferencesService.getVideosSoundSettingLocalizationMap(); + + return OBPrimaryColorContainer( + mainAxisSize: MainAxisSize.min, + child: SizedBox( + height: 216, + child: CupertinoPicker( + scrollController: _cupertinoPickerController, + backgroundColor: Colors.transparent, + onSelectedItemChanged: (int index) { + VideosSoundSetting newType = allVideosSoundSettings[index]; + widget.onTypeChanged(newType); + }, + itemExtent: 32, + children: allVideosSoundSettings.map((VideosSoundSetting setting) { + return Center( + child: OBText(localizationMap[setting]), + ); + }).toList(), + ), + ), + ); + } +} diff --git a/lib/pages/home/dialogs/video_dialog.dart b/lib/pages/home/dialogs/video_dialog.dart new file mode 100644 index 000000000..75e6cf0b7 --- /dev/null +++ b/lib/pages/home/dialogs/video_dialog.dart @@ -0,0 +1,40 @@ +import 'dart:io'; + +import 'package:Okuna/widgets/video_player/video_player.dart'; +import 'package:Okuna/widgets/video_player/widgets/chewie/chewie_player.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:video_player/video_player.dart'; + +class OBVideoDialog extends StatelessWidget { + final File video; + final String videoUrl; + final ChewieController chewieController; + final VideoPlayerController videoPlayerController; + final bool autoPlay; + + const OBVideoDialog( + {Key key, + this.video, + this.videoUrl, + this.autoPlay = false, + this.chewieController, + this.videoPlayerController}) + : super(key: key); + + @override + Widget build(BuildContext context) { + return CupertinoPageScaffold( + backgroundColor: Colors.black, + child: SafeArea( + child: Center( + child: OBVideoPlayer( + autoPlay: autoPlay, + video: video, + videoUrl: videoUrl, + videoPlayerController: videoPlayerController, + chewieController: chewieController, + isInDialog: true, + )))); + } +} diff --git a/lib/pages/home/home.dart b/lib/pages/home/home.dart index 1180f4e17..0141b73cf 100644 --- a/lib/pages/home/home.dart +++ b/lib/pages/home/home.dart @@ -4,6 +4,7 @@ import 'dart:io'; import 'package:Okuna/models/push_notification.dart'; import 'package:Okuna/pages/home/lib/poppable_page_controller.dart'; import 'package:Okuna/services/intercom.dart'; +import 'package:Okuna/services/localization.dart'; import 'package:Okuna/services/push_notifications/push_notifications.dart'; import 'package:Okuna/models/user.dart'; import 'package:Okuna/pages/home/pages/communities/communities.dart'; @@ -19,10 +20,11 @@ import 'package:Okuna/plugins/share/receive_share_state.dart'; import 'package:Okuna/plugins/share/share.dart'; import 'package:Okuna/provider.dart'; import 'package:Okuna/services/httpie.dart'; -import 'package:Okuna/services/image_picker.dart'; +import 'package:Okuna/services/media.dart'; import 'package:Okuna/services/modal_service.dart'; import 'package:Okuna/services/toast.dart'; import 'package:Okuna/services/user.dart'; +import 'package:Okuna/services/user_preferences.dart'; import 'package:Okuna/services/validation.dart'; import 'package:Okuna/translation/constants.dart'; import 'package:Okuna/widgets/avatars/avatar.dart'; @@ -48,7 +50,9 @@ class OBHomePageState extends ReceiveShareState IntercomService _intercomService; ModalService _modalService; ValidationService _validationService; - ImagePickerService _imagePickerService; + MediaService _mediaService; + UserPreferencesService _userPreferencesService; + LocalizationService _localizationService; int _currentIndex; int _lastIndex; @@ -72,7 +76,6 @@ class OBHomePageState extends ReceiveShareState @override void initState() { super.initState(); - enableSharing(); BackButtonInterceptor.add(_backButtonInterceptor); WidgetsBinding.instance.addObserver(this); _needsBootstrap = true; @@ -113,7 +116,9 @@ class OBHomePageState extends ReceiveShareState _toastService = openbookProvider.toastService; _modalService = openbookProvider.modalService; _validationService = openbookProvider.validationService; - _imagePickerService = openbookProvider.imagePickerService; + _mediaService = openbookProvider.mediaPickerService; + _userPreferencesService = openbookProvider.userPreferencesService; + _localizationService = openbookProvider.localizationService; _bootstrap(); _needsBootstrap = false; } @@ -133,21 +138,44 @@ class OBHomePageState extends ReceiveShareState } @override - void onShare(Share share) async { + Future onShare(Share share) async { String text; File image; - if (share.path != null) { - image = File.fromUri(Uri.parse(share.path)); - image = await _imagePickerService.processImage(image); + File video; + if (share.error != null) { + _toastService.error( + message: _localizationService.trans(share.error), + context: context); + if (share.error.contains('uri_scheme')) { + throw share.error; + } + return; + } + + if (share.image != null) { + image = File.fromUri(Uri.parse(share.image)); + image = await _mediaService.processImage(image); if (!await _validationService.isImageAllowedSize( image, OBImageType.post)) { - int limit = - _validationService.getAllowedImageSize(OBImageType.post) ~/ 1048576; - _toastService.error( - message: 'Image too large (limit: $limit MB)', context: context); + _showFileTooLargeToast( + _validationService.getAllowedImageSize(OBImageType.post)); + return; + } + } + + if (share.video != null) { + video = File.fromUri(Uri.parse(share.video)); + + if (!await _validationService.isVideoAllowedSize(video)) { + _showFileTooLargeToast(_validationService.getAllowedVideoSize()); return; } + + if (_mediaService.isGif(video)) { + video = await _mediaService.convertGifToVideo(video); + } } + if (share.text != null) { text = share.text; if (!_validationService.isPostTextAllowedLength(text)) { @@ -158,7 +186,18 @@ class OBHomePageState extends ReceiveShareState return; } } - _modalService.openCreatePost(context: context, text: text, image: image); + + if (await _timelinePageController.createPost(text: text, image: image, video: video)) { + _timelinePageController.popUntilFirstRoute(); + _navigateToTab(OBHomePageTabs.timeline); + } + } + + Future _showFileTooLargeToast(int limitInBytes) async { + _toastService.error( + message: _localizationService.image_picker__error_too_large( + limitInBytes ~/ 1048576), + context: context); } Widget _getPageForTabIndex(int index) { @@ -338,6 +377,8 @@ class OBHomePageState extends ReceiveShareState } void _bootstrap() async { + enableShareProcessing(); + _loggedInUserChangeSubscription = _userService.loggedInUserChange.listen(_onLoggedInUserChange); @@ -412,8 +453,9 @@ class OBHomePageState extends ReceiveShareState if (newUser == null) { Navigator.pushReplacementNamed(context, '/auth'); } else { + _userPreferencesService.setVideosSoundSetting(VideosSoundSetting.disabled); _pushNotificationsService.bootstrap(); - _pushNotificationsService.enablePushNotifications(); + _pushNotificationsService.enablePushNotificationsFlagInOneSignalIfNotPrompted(); _intercomService.enableIntercom(); _loggedInUserUpdateSubscription = diff --git a/lib/pages/home/modals/create_post/widgets/post_image_previewer.dart b/lib/pages/home/modals/create_post/widgets/post_image_previewer.dart deleted file mode 100644 index 50f6c3b9b..000000000 --- a/lib/pages/home/modals/create_post/widgets/post_image_previewer.dart +++ /dev/null @@ -1,63 +0,0 @@ -import 'dart:io'; - -import 'package:flutter/material.dart'; - -class OBPostImagePreviewer extends StatelessWidget { - final File postImage; - final VoidCallback onRemove; - - OBPostImagePreviewer(this.postImage, {this.onRemove}); - - @override - Widget build(BuildContext context) { - double avatarBorderRadius = 10.0; - - var imagePreview = Container( - height: 200.0, - width: 200.0, - decoration: BoxDecoration( - color: Colors.black12, - borderRadius: BorderRadius.circular(avatarBorderRadius)), - child: SizedBox( - child: ClipRRect( - borderRadius: BorderRadius.circular(avatarBorderRadius), - child: DecoratedBox( - child: null, - decoration: BoxDecoration( - image: DecorationImage( - image: FileImage(postImage), fit: BoxFit.cover)), - )), - ), - ); - - if (onRemove == null) return imagePreview; - - double buttonSize = 30.0; - - return Stack( - overflow: Overflow.visible, - children: [ - imagePreview, - Positioned( - right: -10.0, - top: -10.0, - child: GestureDetector( - onTap: onRemove, - child: SizedBox( - width: buttonSize, - height: buttonSize, - child: FloatingActionButton( - onPressed: onRemove, - backgroundColor: Colors.black87, - child: Icon( - Icons.clear, - color: Colors.white, - size: 20.0, - ), - ), - ), - )), - ], - ); - } -} diff --git a/lib/pages/home/modals/create_post/widgets/post_video_previewer.dart b/lib/pages/home/modals/create_post/widgets/post_video_previewer.dart deleted file mode 100644 index 7050e203c..000000000 --- a/lib/pages/home/modals/create_post/widgets/post_video_previewer.dart +++ /dev/null @@ -1,79 +0,0 @@ -import 'dart:io'; -import 'package:Okuna/widgets/video_player/aspect_ratio_video.dart'; -import 'package:Okuna/widgets/video_player/network_player_lifecycle.dart'; -import 'package:flutter/material.dart'; -import 'package:video_player/video_player.dart'; - -class OBPostVideoPreviewer extends StatefulWidget { - @override - State createState() { - return _OBPostVideoPreviewerState(); - } - - final File postVideo; - final VoidCallback onRemove; - - OBPostVideoPreviewer(this.postVideo, {this.onRemove}); -} - -class _OBPostVideoPreviewerState extends State { - - Widget _assetPlayer; - - @override - void initState() { - super.initState(); - _assetPlayer = AssetPlayerLifeCycle(widget.postVideo, - (BuildContext context, VideoPlayerController controller) => OBAspectRatioVideo(controller) - ); - } - - @override - Widget build(BuildContext context) { - double avatarBorderRadius = 10.0; - - var videoPreview = DecoratedBox( - decoration: BoxDecoration( - color: Colors.black12, - borderRadius: BorderRadius.circular(avatarBorderRadius)), - child: SizedBox( - child: ClipRRect( - borderRadius: BorderRadius.circular(avatarBorderRadius), - child: SizedBox( - child: _assetPlayer, - )), - ), - ); - - if (widget.onRemove == null) return videoPreview; - - double buttonSize = 30.0; - - return Stack( - overflow: Overflow.visible, - children: [ - videoPreview, - Positioned( - right: -10.0, - top: -10.0, - child: GestureDetector( - onTap: widget.onRemove, - child: SizedBox( - width: buttonSize, - height: buttonSize, - child: FloatingActionButton( - onPressed: widget.onRemove, - backgroundColor: Colors.black87, - child: Icon( - Icons.clear, - color: Colors.white, - size: 20.0, - ), - ), - ), - )), - ], - ); - } -} - diff --git a/lib/pages/home/modals/edit_post/edit_post.dart b/lib/pages/home/modals/edit_post/edit_post.dart deleted file mode 100644 index e90654d8b..000000000 --- a/lib/pages/home/modals/edit_post/edit_post.dart +++ /dev/null @@ -1,248 +0,0 @@ -import 'package:Okuna/models/post.dart'; -import 'package:Okuna/pages/home/modals/create_post/widgets/create_post_text.dart'; -import 'package:Okuna/pages/home/modals/create_post/widgets/post_community_previewer.dart'; -import 'package:Okuna/pages/home/modals/create_post/widgets/remaining_post_characters.dart'; -import 'package:Okuna/provider.dart'; -import 'package:Okuna/services/httpie.dart'; -import 'package:Okuna/services/localization.dart'; -import 'package:Okuna/services/toast.dart'; -import 'package:Okuna/services/user.dart'; -import 'package:Okuna/services/validation.dart'; -import 'package:Okuna/widgets/avatars/logged_in_user_avatar.dart'; -import 'package:Okuna/widgets/avatars/avatar.dart'; -import 'package:Okuna/widgets/buttons/button.dart'; -import 'package:Okuna/widgets/icon.dart'; -import 'package:Okuna/widgets/nav_bars/themed_nav_bar.dart'; -import 'package:Okuna/widgets/theming/primary_color_container.dart'; -import 'package:flutter/cupertino.dart'; -import 'package:flutter/material.dart'; -import 'package:flutter_advanced_networkimage/provider.dart'; - -class EditPostModal extends StatefulWidget { - final Post post; - - const EditPostModal({Key key, this.post}) : super(key: key); - - @override - State createState() { - return EditPostModalState(); - } -} - -class EditPostModalState extends State { - ValidationService _validationService; - ToastService _toastService; - UserService _userService; - LocalizationService _localizationService; - - TextEditingController _textController; - FocusNode _focusNode; - int _charactersCount; - - bool _isPostTextAllowedLength; - String _originalText; - - List _postItemsWidgets; - - bool _isSaveInProgress; - - @override - void initState() { - super.initState(); - _originalText = widget.post.hasText() ? widget.post.text : null; - _textController = TextEditingController(text: _originalText); - _textController.addListener(_onPostTextChanged); - _focusNode = FocusNode(); - _charactersCount = 0; - _isPostTextAllowedLength = false; - _postItemsWidgets = [ - OBCreatePostText(controller: _textController, focusNode: _focusNode) - ]; - - if (widget.post.hasCommunity()) - _postItemsWidgets.add(OBPostCommunityPreviewer( - community: widget.post.community, - )); - - if (widget.post.hasImage()) { - _setPostImage(widget.post.getImage()); - } - if (widget.post.hasVideo()) { - _setPostImage(widget.post.getVideo()); - } - _isSaveInProgress = false; - } - - @override - void dispose() { - super.dispose(); - _textController.removeListener(_onPostTextChanged); - } - - @override - Widget build(BuildContext context) { - var openbookProvider = OpenbookProvider.of(context); - _validationService = openbookProvider.validationService; - _userService = openbookProvider.userService; - _toastService = openbookProvider.toastService; - _localizationService = openbookProvider.localizationService; - - return CupertinoPageScaffold( - backgroundColor: Colors.transparent, - navigationBar: _buildNavigationBar(), - child: OBPrimaryColorContainer( - child: Column( - children: [_buildEditPostContent()], - ))); - } - - Widget _buildNavigationBar() { - bool isPrimaryActionButtonIsEnabled = _isPostTextAllowedLength && - _charactersCount > 0 && - (_originalText != _textController.text); - - return OBThemedNavigationBar( - leading: GestureDetector( - child: const OBIcon(OBIcons.close), - onTap: () { - Navigator.pop(context); - }, - ), - title:_localizationService.post__edit_title, - trailing: - _buildPrimaryActionButton(isEnabled: isPrimaryActionButtonIsEnabled), - ); - } - - Widget _buildPrimaryActionButton({bool isEnabled}) { - return OBButton( - type: OBButtonType.primary, - child: Text(_localizationService.post__edit_save), - size: OBButtonSize.small, - onPressed: _onWantsToSavePost, - isDisabled: !isEnabled, - isLoading: _isSaveInProgress); - } - - void _onWantsToSavePost() async { - _setSaveInProgress(true); - Post editedPost; - try { - editedPost = await _userService.editPost( - postUuid: widget.post.uuid, text: _textController.text); - Navigator.pop(context, editedPost); - } catch (error) { - _onError(error); - } finally { - _setSaveInProgress(false); - } - } - - Widget _buildEditPostContent() { - return Expanded( - child: Padding( - padding: EdgeInsets.only(left: 20.0, top: 20.0), - child: Row( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Column( - children: [ - OBLoggedInUserAvatar( - size: OBAvatarSize.medium, - ), - const SizedBox( - height: 12.0, - ), - OBRemainingPostCharacters( - maxCharacters: ValidationService.POST_MAX_LENGTH, - currentCharacters: _charactersCount, - ), - ], - ), - Expanded( - child: SingleChildScrollView( - physics: const ClampingScrollPhysics(), - child: Padding( - padding: - EdgeInsets.only(left: 20.0, right: 20.0, bottom: 30.0), - child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: _postItemsWidgets)), - ), - ) - ], - ), - )); - } - - void _onPostTextChanged() { - String text = _textController.text; - setState(() { - _charactersCount = text.length; - _isPostTextAllowedLength = - _validationService.isPostTextAllowedLength(text); - }); - } - - void _setPostImage(String imageUrl) { - setState(() { - var postImageWidget = ClipRRect( - borderRadius: BorderRadius.circular(10.0), - child: Image( - height: 200.0, - width: 200.0, - fit: BoxFit.cover, - image: AdvancedNetworkImage(imageUrl, - useDiskCache: true, - fallbackAssetImage: 'assets/images/fallbacks/post-fallback.png', - retryLimit: 0)), - ); - - _addPostItemWidget(postImageWidget); - }); - } - - void _onError(error) async { - if (error is HttpieConnectionRefusedError) { - _toastService.error( - message: error.toHumanReadableMessage(), context: context); - } else if (error is HttpieRequestError) { - String errorMessage = await error.toHumanReadableMessage(); - _toastService.error(message: errorMessage, context: context); - } else { - _toastService.error(message: _localizationService.error__unknown_error, context: context); - throw error; - } - } - - VoidCallback _addPostItemWidget(Widget postItemWidget) { - var widgetSpacing = const SizedBox( - height: 20.0, - ); - - List newPostItemsWidgets = List.from(_postItemsWidgets); - newPostItemsWidgets.insert(1, widgetSpacing); - newPostItemsWidgets.insert(1, postItemWidget); - - _setPostItemsWidgets(newPostItemsWidgets); - - return () { - List newPostItemsWidgets = List.from(_postItemsWidgets); - newPostItemsWidgets.remove(postItemWidget); - newPostItemsWidgets.remove(widgetSpacing); - _setPostItemsWidgets(newPostItemsWidgets); - }; - } - - void _setPostItemsWidgets(List postItemsWidgets) { - setState(() { - _postItemsWidgets = postItemsWidgets; - }); - } - - void _setSaveInProgress(bool saveInProgress) { - setState(() { - _isSaveInProgress = saveInProgress; - }); - } -} diff --git a/lib/pages/home/modals/edit_user_profile/edit_user_profile.dart b/lib/pages/home/modals/edit_user_profile/edit_user_profile.dart index d8e9b3adc..71854de0b 100644 --- a/lib/pages/home/modals/edit_user_profile/edit_user_profile.dart +++ b/lib/pages/home/modals/edit_user_profile/edit_user_profile.dart @@ -3,7 +3,7 @@ import 'dart:io'; import 'package:Okuna/models/user.dart'; import 'package:Okuna/provider.dart'; import 'package:Okuna/services/httpie.dart'; -import 'package:Okuna/services/image_picker.dart'; +import 'package:Okuna/services/media.dart'; import 'package:Okuna/services/localization.dart'; import 'package:Okuna/services/toast.dart'; import 'package:Okuna/services/user.dart'; @@ -21,8 +21,10 @@ import 'package:flutter/material.dart'; class OBEditUserProfileModal extends StatefulWidget { final User user; + final VoidCallback onUserProfileUpdated; - OBEditUserProfileModal(this.user); + const OBEditUserProfileModal(this.user, {Key key, this.onUserProfileUpdated}) + : super(key: key); @override OBEditUserProfileModalState createState() { @@ -37,7 +39,7 @@ class OBEditUserProfileModalState extends State { UserService _userService; ToastService _toastService; - ImagePickerService _imagePickerService; + MediaService _imagePickerService; ValidationService _validationService; LocalizationService _localizationService; @@ -57,6 +59,7 @@ class OBEditUserProfileModalState extends State { File _avatarFile; File _coverFile; bool _followersCountVisible; + bool _communityPostsVisible; @override void initState() { @@ -66,6 +69,7 @@ class OBEditUserProfileModalState extends State { _formWasSubmitted = false; _followersCountVisible = widget.user.getProfileFollowersCountVisible(); + _communityPostsVisible = widget.user.getProfileCommunityPostsVisible(); _usernameController = TextEditingController(text: widget.user.username); _nameController = TextEditingController(text: widget.user.getProfileName()); _urlController = TextEditingController(text: widget.user.getProfileUrl()); @@ -87,7 +91,7 @@ class OBEditUserProfileModalState extends State { var openbookProvider = OpenbookProvider.of(context); _userService = openbookProvider.userService; _toastService = openbookProvider.toastService; - _imagePickerService = openbookProvider.imagePickerService; + _imagePickerService = openbookProvider.mediaPickerService; _validationService = openbookProvider.validationService; _localizationService = openbookProvider.localizationService; @@ -135,12 +139,15 @@ class OBEditUserProfileModalState extends State { if (!_formWasSubmitted) return null; if (_takenUsername != null && _takenUsername == username) - return _localizationService.user__edit_profile_user_name_taken(_takenUsername); + return _localizationService + .user__edit_profile_user_name_taken( + _takenUsername); return _validationService .validateUserUsername(username); }, decoration: InputDecoration( - labelText: _localizationService.user__edit_profile_username, + labelText: _localizationService + .user__edit_profile_username, prefixIcon: const OBIcon(OBIcons.email), ), ), @@ -152,7 +159,8 @@ class OBEditUserProfileModalState extends State { .validateUserProfileName(profileName); }, decoration: InputDecoration( - labelText: _localizationService.user__edit_profile_name, + labelText: + _localizationService.user__edit_profile_name, prefixIcon: const OBIcon(OBIcons.name), ), ), @@ -165,7 +173,8 @@ class OBEditUserProfileModalState extends State { }, decoration: InputDecoration( prefixIcon: const OBIcon(OBIcons.link), - labelText: _localizationService.user__edit_profile_url, + labelText: + _localizationService.user__edit_profile_url, ), ), OBTextFormField( @@ -176,7 +185,8 @@ class OBEditUserProfileModalState extends State { .validateUserProfileLocation(profileLocation); }, decoration: InputDecoration( - labelText: _localizationService.user__edit_profile_location, + labelText: _localizationService + .user__edit_profile_location, prefixIcon: const OBIcon(OBIcons.location), ), ), @@ -190,14 +200,16 @@ class OBEditUserProfileModalState extends State { keyboardType: TextInputType.multiline, maxLines: 3, decoration: InputDecoration( - labelText: _localizationService.user__edit_profile_bio, + labelText: + _localizationService.user__edit_profile_bio, prefixIcon: const OBIcon(OBIcons.bio), ), textInputAction: TextInputAction.newline, ), OBToggleField( value: _followersCountVisible, - title: _localizationService.user__edit_profile_followers_count, + title: _localizationService + .user__edit_profile_followers_count, leading: const OBIcon(OBIcons.followers), onChanged: (bool value) { setState(() { @@ -211,6 +223,27 @@ class OBEditUserProfileModalState extends State { }); }, ), + OBToggleField( + hasDivider: false, + value: _communityPostsVisible, + title: _localizationService + .user__edit_profile_community_posts, + leading: const OBIcon(OBIcons.communities), + onChanged: (bool value) { + setState(() { + _communityPostsVisible = value; + }); + }, + onTap: () { + setState(() { + _communityPostsVisible = + !_communityPostsVisible; + }); + }, + ), + const SizedBox( + height: 20, + ), ], ), ) @@ -319,17 +352,19 @@ class OBEditUserProfileModalState extends State { List listTiles = [ new ListTile( leading: new Icon(Icons.photo_library), - title: new Text(_localizationService.user__edit_profile_pick_image), + title: + new Text(_localizationService.user__edit_profile_pick_image), onTap: () async { try { var image = - await _imagePickerService.pickImage(imageType: imageType); + await _imagePickerService.pickImage(imageType: imageType, context: context); _onUserImageSelected(image: image, imageType: imageType); - } on ImageTooLargeException catch (e) { + } on FileTooLargeException catch (e) { int limit = e.getLimitInMB(); toastService.error( - message: _localizationService.user__edit_profile_pick_image_error_too_large(limit), + message: _localizationService + .user__edit_profile_pick_image_error_too_large(limit), context: context); } Navigator.pop(context); @@ -342,7 +377,8 @@ class OBEditUserProfileModalState extends State { if (_coverUrl != null || _coverFile != null) { listTiles.add(ListTile( leading: new Icon(Icons.delete), - title: new Text(_localizationService.user__edit_profile_delete), + title: + new Text(_localizationService.user__edit_profile_delete), onTap: () async { _clearCover(); Navigator.pop(context); @@ -354,7 +390,8 @@ class OBEditUserProfileModalState extends State { if (_avatarUrl != null || _avatarFile != null) { listTiles.add(ListTile( leading: new Icon(Icons.delete), - title: new Text(_localizationService.user__edit_profile_delete), + title: + new Text(_localizationService.user__edit_profile_delete), onTap: () async { _clearAvatar(); Navigator.pop(context); @@ -408,9 +445,11 @@ class OBEditUserProfileModalState extends State { username: _usernameController.text, url: _urlController.text, followersCountVisible: _followersCountVisible, + communityPostsVisible: _communityPostsVisible, bio: _bioController.text, location: _locationController.text, ); + if (widget.onUserProfileUpdated != null) widget.onUserProfileUpdated(); Navigator.of(context).pop(); } catch (error) { _onError(error); @@ -427,7 +466,8 @@ class OBEditUserProfileModalState extends State { String errorMessage = await error.toHumanReadableMessage(); _toastService.error(message: errorMessage, context: context); } else { - _toastService.error(message: _localizationService.error__unknown_error, context: context); + _toastService.error( + message: _localizationService.error__unknown_error, context: context); throw error; } } diff --git a/lib/pages/home/modals/post_comment/post_comment_reply_expanded.dart b/lib/pages/home/modals/post_comment/post_comment_reply_expanded.dart index c3991e7dc..f0e4be4f9 100644 --- a/lib/pages/home/modals/post_comment/post_comment_reply_expanded.dart +++ b/lib/pages/home/modals/post_comment/post_comment_reply_expanded.dart @@ -1,8 +1,8 @@ import 'package:Okuna/models/post.dart'; import 'package:Okuna/models/post_comment.dart'; import 'package:Okuna/models/user.dart'; -import 'package:Okuna/pages/home/modals/create_post/widgets/create_post_text.dart'; -import 'package:Okuna/pages/home/modals/create_post/widgets/remaining_post_characters.dart'; +import 'package:Okuna/pages/home/modals/save_post/widgets/create_post_text.dart'; +import 'package:Okuna/pages/home/modals/save_post/widgets/remaining_post_characters.dart'; import 'package:Okuna/pages/home/pages/post_comments/widgets/post_comment/post_comment.dart'; import 'package:Okuna/provider.dart'; import 'package:Okuna/services/httpie.dart'; @@ -304,11 +304,8 @@ class OBPostCommentReplyExpandedModalState debugLog('Autocompleting with username:$foundAccountUsername'); setState(() { - _textController.text = - _textAccountAutocompletionService.autocompleteTextWithUsername( - _textController.text, foundAccountUsername); - _textController.selection = - TextSelection.collapsed(offset: _textController.text.length); + _textAccountAutocompletionService.autocompleteTextWithUsername( + _textController, foundAccountUsername); }); } diff --git a/lib/pages/home/modals/post_comment/post_commenter_expanded.dart b/lib/pages/home/modals/post_comment/post_commenter_expanded.dart index 221f87353..fd5fe50bb 100644 --- a/lib/pages/home/modals/post_comment/post_commenter_expanded.dart +++ b/lib/pages/home/modals/post_comment/post_commenter_expanded.dart @@ -1,15 +1,12 @@ -import 'package:Okuna/models/community.dart'; import 'package:Okuna/models/post.dart'; import 'package:Okuna/models/post_comment.dart'; import 'package:Okuna/models/user.dart'; -import 'package:Okuna/pages/home/modals/create_post/widgets/create_post_text.dart'; -import 'package:Okuna/pages/home/modals/create_post/widgets/remaining_post_characters.dart'; +import 'package:Okuna/pages/home/modals/save_post/widgets/create_post_text.dart'; +import 'package:Okuna/pages/home/modals/save_post/widgets/remaining_post_characters.dart'; import 'package:Okuna/widgets/contextual_account_search_box.dart'; import 'package:Okuna/provider.dart'; -import 'package:Okuna/services/bottom_sheet.dart'; import 'package:Okuna/services/httpie.dart'; import 'package:Okuna/services/localization.dart'; -import 'package:Okuna/services/navigation_service.dart'; import 'package:Okuna/services/text_account_autocompletion.dart'; import 'package:Okuna/services/toast.dart'; import 'package:Okuna/services/user.dart'; @@ -20,7 +17,6 @@ import 'package:Okuna/widgets/buttons/button.dart'; import 'package:Okuna/widgets/icon.dart'; import 'package:Okuna/widgets/nav_bars/themed_nav_bar.dart'; import 'package:Okuna/widgets/theming/primary_color_container.dart'; -import 'package:Okuna/widgets/theming/text.dart'; import 'package:async/async.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; @@ -232,11 +228,8 @@ class OBPostCommenterExpandedModalState debugLog('Autocompleting with username:$foundAccountUsername'); setState(() { - _textController.text = - _textAccountAutocompletionService.autocompleteTextWithUsername( - _textController.text, foundAccountUsername); - _textController.selection = - TextSelection.collapsed(offset: _textController.text.length); + _textAccountAutocompletionService.autocompleteTextWithUsername( + _textController, foundAccountUsername); }); } diff --git a/lib/pages/home/modals/save_community.dart b/lib/pages/home/modals/save_community.dart index e5f50d7fa..8dd3cacf6 100644 --- a/lib/pages/home/modals/save_community.dart +++ b/lib/pages/home/modals/save_community.dart @@ -3,7 +3,7 @@ import 'dart:io'; import 'package:Okuna/models/category.dart'; import 'package:Okuna/models/community.dart'; import 'package:Okuna/services/bottom_sheet.dart'; -import 'package:Okuna/services/image_picker.dart'; +import 'package:Okuna/services/media.dart'; import 'package:Okuna/services/localization.dart'; import 'package:Okuna/services/theme_value_parser.dart'; import 'package:Okuna/widgets/avatars/avatar.dart'; @@ -44,7 +44,7 @@ class OBSaveCommunityModalState extends State { UserService _userService; ToastService _toastService; ValidationService _validationService; - ImagePickerService _imagePickerService; + MediaService _imagePickerService; LocalizationService _localizationService; ThemeValueParserService _themeValueParserService; @@ -123,7 +123,7 @@ class OBSaveCommunityModalState extends State { _userService = openbookProvider.userService; _toastService = openbookProvider.toastService; _validationService = openbookProvider.validationService; - _imagePickerService = openbookProvider.imagePickerService; + _imagePickerService = openbookProvider.mediaPickerService; _localizationService = openbookProvider.localizationService; _themeValueParserService = openbookProvider.themeValueParserService; var themeService = openbookProvider.themeService; @@ -403,7 +403,7 @@ class OBSaveCommunityModalState extends State { void _pickNewAvatar() async { File newAvatar = - await _imagePickerService.pickImage(imageType: OBImageType.avatar); + await _imagePickerService.pickImage(imageType: OBImageType.avatar, context: context); if (newAvatar != null) _setAvatarFile(newAvatar); } @@ -447,7 +447,7 @@ class OBSaveCommunityModalState extends State { void _pickNewCover() async { File newCover = - await _imagePickerService.pickImage(imageType: OBImageType.cover); + await _imagePickerService.pickImage(imageType: OBImageType.cover, context: context); if (newCover != null) _setCoverFile(newCover); } diff --git a/lib/pages/home/modals/save_follows_list/save_follows_list.dart b/lib/pages/home/modals/save_follows_list/save_follows_list.dart index b397cf83a..236597268 100644 --- a/lib/pages/home/modals/save_follows_list/save_follows_list.dart +++ b/lib/pages/home/modals/save_follows_list/save_follows_list.dart @@ -245,9 +245,10 @@ class OBSaveFollowsListModalState extends State { void _onWantsToPickEmoji() async { Emoji pickedEmoji = await Navigator.push( context, - OBSlideRightRoute( - key: Key('obSlidePickFollowsListEmojiPage'), - widget: OBPickFollowsListEmojiPage())); + OBSlideRightRoute(builder: (BuildContext context) { + return OBPickFollowsListEmojiPage(); + }), + ); if (pickedEmoji != null) _onPickedEmoji(pickedEmoji); } diff --git a/lib/pages/home/modals/create_post/create_post.dart b/lib/pages/home/modals/save_post/create_post.dart similarity index 56% rename from lib/pages/home/modals/create_post/create_post.dart rename to lib/pages/home/modals/save_post/create_post.dart index ecfcc5fa4..a61ad2125 100644 --- a/lib/pages/home/modals/create_post/create_post.dart +++ b/lib/pages/home/modals/save_post/create_post.dart @@ -1,16 +1,19 @@ import 'dart:io'; import 'package:Okuna/models/community.dart'; import 'package:Okuna/models/post.dart'; +import 'package:Okuna/models/post_image.dart'; +import 'package:Okuna/models/post_media.dart'; +import 'package:Okuna/models/post_video.dart'; import 'package:Okuna/models/user.dart'; -import 'package:Okuna/pages/home/modals/create_post/pages/share_post/share_post.dart'; -import 'package:Okuna/pages/home/modals/create_post/widgets/create_post_text.dart'; -import 'package:Okuna/pages/home/modals/create_post/widgets/post_community_previewer.dart'; -import 'package:Okuna/pages/home/modals/create_post/widgets/post_image_previewer.dart'; -import 'package:Okuna/pages/home/modals/create_post/widgets/post_video_previewer.dart'; -import 'package:Okuna/pages/home/modals/create_post/widgets/remaining_post_characters.dart'; +import 'package:Okuna/pages/home/modals/save_post/widgets/create_post_text.dart'; +import 'package:Okuna/pages/home/modals/save_post/widgets/post_community_previewer.dart'; +import 'package:Okuna/pages/home/modals/save_post/widgets/post_image_previewer.dart'; +import 'package:Okuna/pages/home/modals/save_post/widgets/post_video_previewer.dart'; +import 'package:Okuna/pages/home/modals/save_post/widgets/remaining_post_characters.dart'; import 'package:Okuna/provider.dart'; import 'package:Okuna/services/httpie.dart'; -import 'package:Okuna/services/image_picker.dart'; +import 'package:Okuna/services/link_preview.dart'; +import 'package:Okuna/services/media.dart'; import 'package:Okuna/services/localization.dart'; import 'package:Okuna/services/navigation_service.dart'; import 'package:Okuna/services/text_account_autocompletion.dart'; @@ -23,48 +26,64 @@ import 'package:Okuna/widgets/buttons/button.dart'; import 'package:Okuna/widgets/buttons/pill_button.dart'; import 'package:Okuna/widgets/contextual_account_search_box.dart'; import 'package:Okuna/widgets/icon.dart'; +import 'package:Okuna/widgets/link_preview.dart'; import 'package:Okuna/widgets/nav_bars/themed_nav_bar.dart'; +import 'package:Okuna/widgets/new_post_data_uploader.dart'; import 'package:Okuna/widgets/theming/primary_color_container.dart'; import 'package:Okuna/widgets/theming/text.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:pigment/pigment.dart'; +import 'package:Okuna/widgets/theming/smart_text.dart'; +import 'package:async/async.dart'; -class CreatePostModal extends StatefulWidget { +class OBSavePostModal extends StatefulWidget { final Community community; final String text; final File image; + final File video; + final Post post; - const CreatePostModal({Key key, this.community, this.text, this.image}) + const OBSavePostModal( + {Key key, this.community, this.text, this.image, this.video, this.post}) : super(key: key); @override State createState() { - return CreatePostModalState(); + return OBSavePostModalState(); } } -class CreatePostModalState extends State { +class OBSavePostModalState extends State { ValidationService _validationService; + UserService _userService; NavigationService _navigationService; - ImagePickerService _imagePickerService; + MediaService _mediaService; ToastService _toastService; LocalizationService _localizationService; - UserService _userService; + LinkPreviewService _linkPreviewService; TextEditingController _textController; FocusNode _focusNode; int _charactersCount; + String _linkPreviewUrl; bool _isPostTextAllowedLength; bool _hasFocus; bool _hasImage; bool _hasVideo; - File _postImage; - File _postVideo; + + // When creating a post + File _postImageFile; + File _postVideoFile; + + // When editing a post + PostImage _postImage; + PostVideo _postVideo; VoidCallback _postImageWidgetRemover; VoidCallback _postVideoWidgetRemover; + VoidCallback _linkPreviewWidgetRemover; List _postItemsWidgets; @@ -74,38 +93,74 @@ class CreatePostModalState extends State { TextAccountAutocompletionService _textAccountAutocompletionService; OBContextualAccountSearchBoxController _contextualAccountSearchBoxController; bool _isSearchingAccount; + bool _isEditingPost; + + bool _saveInProgress; + CancelableOperation _saveOperation; @override void initState() { super.initState(); + _isEditingPost = widget.post != null; + _textController = TextEditingController(); - if (widget.text != null) { - _textController.text = widget.text; - } - _textController.addListener(_onPostTextChanged); _focusNode = FocusNode(); - _focusNode.addListener(_onFocusNodeChanged); _hasFocus = false; - _charactersCount = 0; - _isPostTextAllowedLength = false; - _hasImage = false; - _hasVideo = false; + _linkPreviewUrl = ''; _postItemsWidgets = [ OBCreatePostText(controller: _textController, focusNode: _focusNode) ]; - if (widget.community != null) - _postItemsWidgets.add(OBPostCommunityPreviewer( - community: widget.community, - )); - if (widget.image != null) { - _setPostImage(widget.image); + if (_isEditingPost) { + _saveInProgress = false; + _textController.text = widget.post?.text ?? ''; + if (widget.post.hasMedia()) { + PostMedia postMedia = widget.post.getFirstMedia(); + if (postMedia.type == PostMediaType.video) { + _setPostVideo(postMedia.contentObject as PostVideo); + _hasImage = false; + } else { + _setPostImage(postMedia.contentObject as PostImage); + _hasVideo = false; + } + } else { + _hasVideo = false; + _hasImage = false; + } + } else { + if (widget.text != null) { + _textController.text = widget.text; + } + _hasImage = false; + _hasVideo = false; + if (widget.community != null) + _postItemsWidgets.add(OBPostCommunityPreviewer( + community: widget.community, + )); + if (widget.image != null) { + _setPostImageFile(widget.image); + } + if (widget.video != null) { + _setPostVideoFile(widget.video); + } } + + _isPostTextAllowedLength = false; + _charactersCount = _textController.text.length; + _isCreateCommunityPostInProgress = false; _contextualAccountSearchBoxController = OBContextualAccountSearchBoxController(); _isSearchingAccount = false; _needsBootstrap = true; + + _textController.addListener(_onPostTextChanged); + _focusNode.addListener(_onFocusNodeChanged); + } + + void _bootstrap() { + _isPostTextAllowedLength = + _validationService.isPostTextAllowedLength(_textController.text); } @override @@ -113,6 +168,7 @@ class CreatePostModalState extends State { super.dispose(); _textController.removeListener(_onPostTextChanged); _focusNode.removeListener(_onFocusNodeChanged); + _saveOperation?.cancel(); } @override @@ -121,18 +177,20 @@ class CreatePostModalState extends State { var openbookProvider = OpenbookProvider.of(context); _validationService = openbookProvider.validationService; _navigationService = openbookProvider.navigationService; - _imagePickerService = openbookProvider.imagePickerService; - _userService = openbookProvider.userService; + _mediaService = openbookProvider.mediaPickerService; + _linkPreviewService = openbookProvider.linkPreviewService; _localizationService = openbookProvider.localizationService; _toastService = openbookProvider.toastService; _textAccountAutocompletionService = openbookProvider.textAccountAutocompletionService; + _userService = openbookProvider.userService; + _bootstrap(); _needsBootstrap = false; } return CupertinoPageScaffold( backgroundColor: Colors.transparent, - navigationBar: _buildNavigationBar(), + navigationBar: _buildNavigationBar(_localizationService), child: OBPrimaryColorContainer( child: Column( children: [ @@ -148,7 +206,7 @@ class CreatePostModalState extends State { child: _buildAccountSearchBox(), ) : const SizedBox(), - _isSearchingAccount + _isSearchingAccount || (_hasImage || _hasVideo) ? const SizedBox() : Container( height: _hasFocus == true ? 51 : 67, @@ -161,7 +219,7 @@ class CreatePostModalState extends State { ))); } - Widget _buildNavigationBar() { + Widget _buildNavigationBar(LocalizationService _localizationService) { bool isPrimaryActionButtonIsEnabled = (_isPostTextAllowedLength && _charactersCount > 0) || _hasImage || @@ -169,12 +227,15 @@ class CreatePostModalState extends State { return OBThemedNavigationBar( leading: GestureDetector( - child: const OBIcon(OBIcons.close), + child: OBIcon(OBIcons.close, + semanticLabel: _localizationService.post__close_create_post_label), onTap: () { Navigator.pop(context); }, ), - title: _localizationService.trans('post__create_new'), + title: _isEditingPost + ? _localizationService.post__edit_title + : _localizationService.trans('post__create_new'), trailing: _buildPrimaryActionButton(isEnabled: isPrimaryActionButtonIsEnabled), ); @@ -183,7 +244,15 @@ class CreatePostModalState extends State { Widget _buildPrimaryActionButton({bool isEnabled}) { Widget nextButton; - if (widget.community != null) { + if (_isEditingPost) { + return OBButton( + type: OBButtonType.primary, + child: Text(_localizationService.post__edit_save), + size: OBButtonSize.small, + onPressed: _savePost, + isDisabled: !isEnabled || _saveInProgress, + isLoading: _saveInProgress); + } else if (widget.community != null) { return OBButton( type: OBButtonType.primary, child: Text(_localizationService.trans('post__share')), @@ -209,20 +278,19 @@ class CreatePostModalState extends State { } void _onWantsToGoNext() async { - Post sharedPost = await _navigationService.navigateToSharePost( - context: context, - sharePostData: - SharePostData(text: _textController.text, image: _postImage)); + OBNewPostData createPostData = await _navigationService.navigateToSharePost( + context: context, createPostData: _makeNewPostData()); - if (sharedPost != null) { + if (createPostData != null) { // Remove modal - Navigator.pop(context, sharedPost); + Navigator.pop(context, createPostData); } } Widget _buildNewPostContent() { return Row( crossAxisAlignment: CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.max, children: [ Column( children: [ @@ -244,8 +312,9 @@ class CreatePostModalState extends State { child: Padding( padding: EdgeInsets.only(left: 20.0, right: 20.0, bottom: 30.0), child: Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: _postItemsWidgets)), + crossAxisAlignment: CrossAxisAlignment.start, + children: _postItemsWidgets, + )), ), ) ], @@ -264,7 +333,7 @@ class CreatePostModalState extends State { Widget _buildPostActions() { List postActions = []; - if (!_hasImage && !_hasVideo) { + if (!_hasImage && !_hasVideo && !_isEditingPost) { postActions.addAll(_getImagePostActions()); } @@ -304,9 +373,38 @@ class CreatePostModalState extends State { icon: const OBIcon(OBIcons.photo), onPressed: () async { _unfocusTextField(); - File pickedPhoto = - await _imagePickerService.pickImage(imageType: OBImageType.post); - if (pickedPhoto != null) _setPostImage(pickedPhoto); + try { + File pickedPhoto = await _mediaService.pickImage( + imageType: OBImageType.post, + context: context, + flattenGifs: false); + if (pickedPhoto != null) { + bool photoIsGif = _mediaService.isGif(pickedPhoto); + if (photoIsGif) { + File gifVideo = + await _mediaService.convertGifToVideo(pickedPhoto); + _setPostVideoFile(gifVideo); + } else { + _setPostImageFile(pickedPhoto); + } + } + } catch (error) { + _onError(error); + } + }, + ), + OBPillButton( + text: _localizationService.post__create_video, + color: Pigment.fromString('#50b1f2'), + icon: const OBIcon(OBIcons.video), + onPressed: () async { + _unfocusTextField(); + try { + File pickedVideo = await _mediaService.pickVideo(context: context); + if (pickedVideo != null) _setPostVideoFile(pickedVideo); + } catch (error) { + _onError(error); + } }, ), ]; @@ -314,7 +412,8 @@ class CreatePostModalState extends State { void _onPostTextChanged() { String text = _textController.text; - _checkAutocomplete(); + _checkForAutocomplete(); + _checkForLinkPreview(); setState(() { _charactersCount = text.length; _isPostTextAllowedLength = @@ -326,57 +425,111 @@ class CreatePostModalState extends State { _hasFocus = _focusNode.hasFocus; } - void _setPostImage(File image) { + void _setPostImageFile(File image) { setState(() { - this._postImage = image; + this._postImageFile = image; _hasImage = true; var postImageWidget = OBPostImagePreviewer( - _postImage, + postImageFile: _postImageFile, onRemove: () { - _removePostImage(); + _removePostImageFile(); + }, + onWillEditImage: () { + _unfocusTextField(); + }, + onPostImageEdited: (File editedImage) { + _removePostImageFile(); + _setPostImageFile(editedImage); }, ); _postImageWidgetRemover = _addPostItemWidget(postImageWidget); }); + + _clearLinkPreviewUrl(); } - void _setPostVideo(File video) { + void _setPostVideoFile(File video) { setState(() { - this._postVideo = video; + this._postVideoFile = video; _hasVideo = true; - var postVideoWidget = OBPostVideoPreviewer( - _postVideo, + var postVideoWidget = OBPostVideoPreview( + postVideoFile: _postVideoFile, onRemove: () { - _removePostVideo(); + _removePostVideoFile(); }, ); _postVideoWidgetRemover = _addPostItemWidget(postVideoWidget); }); + + _clearLinkPreviewUrl(); + } + + void _setPostVideo(PostVideo postVideo) { + // To be called on init only, therefore no setState + _hasVideo = true; + _postVideo = postVideo; + + var postVideoWidget = OBPostVideoPreview( + postVideo: _postVideo, + ); + + _addPostItemWidget(postVideoWidget); + } + + void _setPostImage(PostImage postImage) { + // To be called on init only, therefore no setState + _hasImage = true; + _postImage = postImage; + + var postImageWidget = OBPostImagePreviewer( + postImage: _postImage, + ); + + _addPostItemWidget(postImageWidget); } Future _createCommunityPost() async { - _setCreateCommunityPostInProgress(true); + OBNewPostData newPostData = _makeNewPostData(); + Navigator.pop(context, newPostData); + } + void _savePost() async { + _setSaveInProgress(true); + Post editedPost; try { - Post createdPost = await _userService.createPostForCommunity( - widget.community, - text: _textController.text, - image: _postImage, - video: _postVideo); - // Remove modal - Navigator.pop(context, createdPost); + _saveOperation = CancelableOperation.fromFuture(_userService.editPost( + postUuid: widget.post.uuid, text: _textController.text)); + + editedPost = await _saveOperation.value; + Navigator.pop(context, editedPost); } catch (error) { _onError(error); } finally { - _setCreateCommunityPostInProgress(false); + _setSaveInProgress(false); + } + } + + void _checkForLinkPreview() async { + if (_hasImage || _hasVideo) return; + String text = _textController.text; + + String linkPreviewUrl = _linkPreviewService.checkForLinkPreviewUrl(text); + + if (linkPreviewUrl == null) { + _clearLinkPreviewUrl(); + return; + } + + if (linkPreviewUrl != null && linkPreviewUrl != _linkPreviewUrl) { + _setLinkPreviewUrl(linkPreviewUrl); } } - void _checkAutocomplete() { + void _checkForAutocomplete() { TextAccountAutocompletionResult result = _textAccountAutocompletionService .checkTextForAutocompletion(_textController); @@ -386,7 +539,7 @@ class CreatePostModalState extends State { _setIsSearchingAccount(true); _contextualAccountSearchBoxController.search(result.autocompleteQuery); } else if (_isSearchingAccount) { - debugLog('Finished searching accoun'); + debugLog('Finished searching account'); _setIsSearchingAccount(false); } } @@ -404,23 +557,32 @@ class CreatePostModalState extends State { debugLog('Autocompleting with username:$foundAccountUsername'); setState(() { - _textController.text = - _textAccountAutocompletionService.autocompleteTextWithUsername( - _textController.text, foundAccountUsername); - _textController.selection = - TextSelection.collapsed(offset: _textController.text.length); + _textAccountAutocompletionService.autocompleteTextWithUsername( + _textController, foundAccountUsername); }); } - void _setIsSearchingAccount(bool isSearchingAccount) { + void _setLinkPreviewUrl(String url) { + if (_linkPreviewWidgetRemover != null) _linkPreviewWidgetRemover(); + setState(() { - _isSearchingAccount = isSearchingAccount; + _linkPreviewUrl = url; + _linkPreviewWidgetRemover = _addPostItemWidget(OBLinkPreview( + link: _linkPreviewUrl, + )); }); } - void _setCreateCommunityPostInProgress(bool createCommunityPostInProgress) { + void _clearLinkPreviewUrl() { setState(() { - _isCreateCommunityPostInProgress = createCommunityPostInProgress; + _linkPreviewUrl = null; + if (_linkPreviewWidgetRemover != null) _linkPreviewWidgetRemover(); + }); + } + + void _setIsSearchingAccount(bool isSearchingAccount) { + setState(() { + _isSearchingAccount = isSearchingAccount; }); } @@ -431,6 +593,11 @@ class CreatePostModalState extends State { } else if (error is HttpieRequestError) { String errorMessage = await error.toHumanReadableMessage(); _toastService.error(message: errorMessage, context: context); + } else if (error is FileTooLargeException) { + int limit = error.getLimitInMB(); + _toastService.error( + message: _localizationService.image_picker__error_too_large(limit), + context: context); } else { _toastService.error( message: _localizationService.trans('error__unknown_error'), @@ -439,22 +606,31 @@ class CreatePostModalState extends State { } } - void _removePostImage() { + void _removePostImageFile() { setState(() { - if (this._postImage != null) this._postImage.delete(); + if (this._postImageFile != null) this._postImageFile.delete(); _hasImage = false; _postImageWidgetRemover(); }); } - void _removePostVideo() { + void _removePostVideoFile() { setState(() { - if (this._postVideo != null) this._postVideo.delete(); + if (this._postVideoFile != null) this._postVideoFile.delete(); _hasVideo = false; _postVideoWidgetRemover(); }); } + OBNewPostData _makeNewPostData() { + List media = []; + if (_postImageFile != null) media.add(_postImageFile); + if (_postVideoFile != null) media.add(_postVideoFile); + + return OBNewPostData( + text: _textController.text, media: media, community: widget.community); + } + VoidCallback _addPostItemWidget(Widget postItemWidget) { var widgetSpacing = const SizedBox( height: 20.0, @@ -480,6 +656,12 @@ class CreatePostModalState extends State { }); } + void _setSaveInProgress(bool saveInProgress) { + setState(() { + _saveInProgress = saveInProgress; + }); + } + void _unfocusTextField() { FocusScope.of(context).requestFocus(new FocusNode()); } diff --git a/lib/pages/home/modals/create_post/pages/share_post/pages/share_post_with_circles.dart b/lib/pages/home/modals/save_post/pages/share_post/pages/share_post_with_circles.dart similarity index 79% rename from lib/pages/home/modals/create_post/pages/share_post/pages/share_post_with_circles.dart rename to lib/pages/home/modals/save_post/pages/share_post/pages/share_post_with_circles.dart index 2231d94ea..395762578 100644 --- a/lib/pages/home/modals/create_post/pages/share_post/pages/share_post_with_circles.dart +++ b/lib/pages/home/modals/save_post/pages/share_post/pages/share_post_with_circles.dart @@ -1,16 +1,13 @@ import 'package:Okuna/models/circle.dart'; import 'package:Okuna/models/circles_list.dart'; -import 'package:Okuna/models/post.dart'; -import 'package:Okuna/pages/home/modals/create_post/pages/share_post/share_post.dart'; import 'package:Okuna/provider.dart'; -import 'package:Okuna/services/httpie.dart'; import 'package:Okuna/services/localization.dart'; -import 'package:Okuna/services/toast.dart'; import 'package:Okuna/services/user.dart'; import 'package:Okuna/widgets/buttons/button.dart'; import 'package:Okuna/widgets/icon.dart'; import 'package:Okuna/widgets/nav_bars/themed_nav_bar.dart'; import 'package:Okuna/widgets/page_scaffold.dart'; +import 'package:Okuna/widgets/new_post_data_uploader.dart'; import 'package:Okuna/widgets/search_bar.dart'; import 'package:Okuna/widgets/theming/primary_color_container.dart'; import 'package:Okuna/widgets/theming/text.dart'; @@ -19,9 +16,9 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; class OBSharePostWithCirclesPage extends StatefulWidget { - final SharePostData sharePostData; + final OBNewPostData createPostData; - const OBSharePostWithCirclesPage({Key key, @required this.sharePostData}) + const OBSharePostWithCirclesPage({Key key, @required this.createPostData}) : super(key: key); @override @@ -33,9 +30,7 @@ class OBSharePostWithCirclesPage extends StatefulWidget { class OBSharePostWithCirclesPageState extends State { UserService _userService; - ToastService _toastService; LocalizationService _localizationService; - bool _isCreatePostInProgress; bool _needsBootstrap; @@ -53,7 +48,6 @@ class OBSharePostWithCirclesPageState void initState() { super.initState(); _fakeWorldCircleSelected = false; - _isCreatePostInProgress = false; _circles = []; _circleSearchResults = _circles.toList(); _selectedCircles = []; @@ -65,7 +59,6 @@ class OBSharePostWithCirclesPageState @override Widget build(BuildContext context) { var openbookProvider = OpenbookProvider.of(context); - _toastService = openbookProvider.toastService; _userService = openbookProvider.userService; _localizationService = openbookProvider.localizationService; @@ -107,7 +100,6 @@ class OBSharePostWithCirclesPageState trailing: OBButton( size: OBButtonSize.small, type: OBButtonType.primary, - isLoading: _isCreatePostInProgress, isDisabled: _selectedCircles.length == 0 && !_fakeWorldCircleSelected, onPressed: createPost, child: Text(_localizationService.trans('post__share')), @@ -161,10 +153,6 @@ class OBSharePostWithCirclesPageState } Future createPost() async { - _setCreatePostInProgress(true); - - Post createdPost; - List selectedCircles; if (_fakeWorldCircleSelected) { @@ -175,47 +163,9 @@ class OBSharePostWithCirclesPageState selectedCircles = _selectedCircles; } - try { - if (widget.sharePostData.image != null) { - createdPost = await _userService.createPost( - text: widget.sharePostData.text, - image: widget.sharePostData.image, - circles: selectedCircles); - } else if (widget.sharePostData.video != null) { - createdPost = await _userService.createPost( - text: widget.sharePostData.text, - video: widget.sharePostData.video, - circles: selectedCircles); - } else if (widget.sharePostData.text != null) { - createdPost = await _userService.createPost( - text: widget.sharePostData.text, circles: selectedCircles); - } - // Remove modal - Navigator.pop(context, createdPost); - } catch (error) { - _onError(error); - } finally { - _setCreatePostInProgress(false); - } - } + widget.createPostData.setCircles(selectedCircles); - void _onError(error) async { - if (error is HttpieConnectionRefusedError) { - _toastService.error( - message: error.toHumanReadableMessage(), context: context); - } else if (error is HttpieRequestError) { - String errorMessage = await error.toHumanReadableMessage(); - _toastService.error(message: errorMessage, context: context); - } else { - _toastService.error(message: _localizationService.trans('error__unknown_error'), context: context); - throw error; - } - } - - void _setCreatePostInProgress(bool createPostInProgress) { - setState(() { - _isCreatePostInProgress = createPostInProgress; - }); + Navigator.pop(context, widget.createPostData); } void _onCirclePressed(Circle pressedCircle) { diff --git a/lib/pages/home/modals/create_post/pages/share_post/pages/share_post_with_community.dart b/lib/pages/home/modals/save_post/pages/share_post/pages/share_post_with_community.dart similarity index 74% rename from lib/pages/home/modals/create_post/pages/share_post/pages/share_post_with_community.dart rename to lib/pages/home/modals/save_post/pages/share_post/pages/share_post_with_community.dart index ea8b884cd..c20994467 100644 --- a/lib/pages/home/modals/create_post/pages/share_post/pages/share_post_with_community.dart +++ b/lib/pages/home/modals/save_post/pages/share_post/pages/share_post_with_community.dart @@ -1,7 +1,6 @@ import 'package:Okuna/models/community.dart'; import 'package:Okuna/models/communities_list.dart'; import 'package:Okuna/models/post.dart'; -import 'package:Okuna/pages/home/modals/create_post/pages/share_post/share_post.dart'; import 'package:Okuna/provider.dart'; import 'package:Okuna/services/httpie.dart'; import 'package:Okuna/services/localization.dart'; @@ -11,15 +10,16 @@ import 'package:Okuna/widgets/buttons/button.dart'; import 'package:Okuna/widgets/http_list.dart'; import 'package:Okuna/widgets/nav_bars/themed_nav_bar.dart'; import 'package:Okuna/widgets/page_scaffold.dart'; +import 'package:Okuna/widgets/new_post_data_uploader.dart'; import 'package:Okuna/widgets/theming/primary_color_container.dart'; import 'package:Okuna/widgets/tiles/community_selectable_tile.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; class OBSharePostWithCommunityPage extends StatefulWidget { - final SharePostData sharePostData; + final OBNewPostData createPostData; - const OBSharePostWithCommunityPage({Key key, @required this.sharePostData}) + const OBSharePostWithCommunityPage({Key key, @required this.createPostData}) : super(key: key); @override @@ -31,22 +31,18 @@ class OBSharePostWithCommunityPage extends StatefulWidget { class OBSharePostWithCommunityPageState extends State { UserService _userService; - ToastService _toastService; LocalizationService _localizationService; - bool _isCreatePostInProgress; Community _chosenCommunity; @override void initState() { super.initState(); - _isCreatePostInProgress = false; } @override Widget build(BuildContext context) { var openbookProvider = OpenbookProvider.of(context); - _toastService = openbookProvider.toastService; _userService = openbookProvider.userService; _localizationService = openbookProvider.localizationService; @@ -84,7 +80,6 @@ class OBSharePostWithCommunityPageState trailing: OBButton( size: OBButtonSize.small, type: OBButtonType.primary, - isLoading: _isCreatePostInProgress, isDisabled: _chosenCommunity == null, onPressed: createPost, child: Text(_localizationService.trans('post__share_community')), @@ -107,34 +102,9 @@ class OBSharePostWithCommunityPageState } Future createPost() async { - _setCreatePostInProgress(true); - - try { - Post createdPost = await _userService.createPostForCommunity( - _chosenCommunity, - text: widget.sharePostData.text, - image: widget.sharePostData.image, - video: widget.sharePostData.video); - // Remove modal - Navigator.pop(context, createdPost); - } catch (error) { - _onError(error); - } finally { - _setCreatePostInProgress(false); - } - } + widget.createPostData.setCommunity(_chosenCommunity); - void _onError(error) async { - if (error is HttpieConnectionRefusedError) { - _toastService.error( - message: error.toHumanReadableMessage(), context: context); - } else if (error is HttpieRequestError) { - String errorMessage = await error.toHumanReadableMessage(); - _toastService.error(message: errorMessage, context: context); - } else { - _toastService.error(message: _localizationService.trans('error__unknown_error'), context: context); - throw error; - } + Navigator.pop(context, widget.createPostData); } Future> _refreshCommunities() async { @@ -160,12 +130,6 @@ class OBSharePostWithCommunityPageState return results.communities; } - void _setCreatePostInProgress(bool createPostInProgress) { - setState(() { - _isCreatePostInProgress = createPostInProgress; - }); - } - void _onCommunityPressed(Community pressedCommunity) { if (pressedCommunity == _chosenCommunity) { _clearChosenCommunity(); diff --git a/lib/pages/home/modals/create_post/pages/share_post/share_post.dart b/lib/pages/home/modals/save_post/pages/share_post/share_post.dart similarity index 83% rename from lib/pages/home/modals/create_post/pages/share_post/share_post.dart rename to lib/pages/home/modals/save_post/pages/share_post/share_post.dart index 5bac0e680..3584ef9dc 100644 --- a/lib/pages/home/modals/create_post/pages/share_post/share_post.dart +++ b/lib/pages/home/modals/save_post/pages/share_post/share_post.dart @@ -1,6 +1,3 @@ -import 'dart:io'; - -import 'package:Okuna/models/post.dart'; import 'package:Okuna/models/user.dart'; import 'package:Okuna/provider.dart'; import 'package:Okuna/services/localization.dart'; @@ -9,15 +6,16 @@ import 'package:Okuna/services/user.dart'; import 'package:Okuna/widgets/icon.dart'; import 'package:Okuna/widgets/nav_bars/themed_nav_bar.dart'; import 'package:Okuna/widgets/page_scaffold.dart'; +import 'package:Okuna/widgets/new_post_data_uploader.dart'; import 'package:Okuna/widgets/progress_indicator.dart'; import 'package:Okuna/widgets/theming/primary_color_container.dart'; import 'package:Okuna/widgets/theming/text.dart'; import 'package:flutter/material.dart'; class OBSharePostPage extends StatefulWidget { - final SharePostData sharePostData; + final OBNewPostData createPostData; - const OBSharePostPage({Key key, @required this.sharePostData}) + const OBSharePostPage({Key key, @required this.createPostData}) : super(key: key); @override @@ -88,7 +86,8 @@ class OBSharePostPageState extends State { if (latestUser.isMemberOfCommunities) { shareToTiles.add(ListTile( leading: const OBIcon(OBIcons.communities), - title: OBText(_localizationService.trans('post__share_community_title')), + title: OBText(_localizationService + .trans('post__share_community_title')), subtitle: OBText( _localizationService.trans('post__share_community_desc'), style: shareToTilesSubtitleStyle, @@ -130,22 +129,16 @@ class OBSharePostPageState extends State { } void _onWantsToSharePostToCircles() async { - Post sharedPost = await _navigationService.navigateToSharePostWithCircles( - context: context, sharePostData: widget.sharePostData); - if (sharedPost != null) Navigator.pop(context, sharedPost); + OBNewPostData createPostData = + await _navigationService.navigateToSharePostWithCircles( + context: context, createPostData: widget.createPostData); + if (createPostData != null) Navigator.pop(context, createPostData); } void _onWantsToSharePostToCommunity() async { - Post sharedPost = await _navigationService.navigateToSharePostWithCommunity( - context: context, sharePostData: widget.sharePostData); - if (sharedPost != null) Navigator.pop(context, sharedPost); + OBNewPostData createPostData = + await _navigationService.navigateToSharePostWithCommunity( + context: context, createPostData: widget.createPostData); + if (createPostData != null) Navigator.pop(context, createPostData); } } - -class SharePostData { - String text; - File image; - File video; - - SharePostData({@required this.text, this.image, this.video}); -} diff --git a/lib/pages/home/modals/create_post/widgets/create_post_text.dart b/lib/pages/home/modals/save_post/widgets/create_post_text.dart similarity index 100% rename from lib/pages/home/modals/create_post/widgets/create_post_text.dart rename to lib/pages/home/modals/save_post/widgets/create_post_text.dart diff --git a/lib/pages/home/modals/create_post/widgets/post_community_previewer.dart b/lib/pages/home/modals/save_post/widgets/post_community_previewer.dart similarity index 100% rename from lib/pages/home/modals/create_post/widgets/post_community_previewer.dart rename to lib/pages/home/modals/save_post/widgets/post_community_previewer.dart diff --git a/lib/pages/home/modals/save_post/widgets/post_image_previewer.dart b/lib/pages/home/modals/save_post/widgets/post_image_previewer.dart new file mode 100644 index 000000000..8b02716f1 --- /dev/null +++ b/lib/pages/home/modals/save_post/widgets/post_image_previewer.dart @@ -0,0 +1,124 @@ +import 'dart:io'; + +import 'package:Okuna/models/post_image.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_advanced_networkimage/provider.dart'; +import 'package:image_cropper/image_cropper.dart'; + +class OBPostImagePreviewer extends StatelessWidget { + final PostImage postImage; + final File postImageFile; + final VoidCallback onRemove; + final VoidCallback onWillEditImage; + + final ValueChanged onPostImageEdited; + + final double buttonSize = 30.0; + + OBPostImagePreviewer( + {this.onRemove, + @required this.onPostImageEdited, + this.onWillEditImage, + this.postImageFile, + this.postImage}); + + @override + Widget build(BuildContext context) { + double avatarBorderRadius = 10.0; + + bool isFileImage = postImageFile != null; + + var imagePreview = SizedBox( + height: 200.0, + width: 200, + child: ClipRRect( + borderRadius: new BorderRadius.circular(avatarBorderRadius), + child: isFileImage + ? Image.file( + postImageFile, + fit: BoxFit.cover, + ) + : Image( + fit: BoxFit.cover, + image: AdvancedNetworkImage(postImage.image, + useDiskCache: true, + fallbackAssetImage: + 'assets/images/fallbacks/post-fallback.png', + retryLimit: 0), + ))); + + if (onRemove == null) return imagePreview; + + return Stack( + children: [ + imagePreview, + Positioned( + top: 10, + right: 10, + child: _buildRemoveButton(), + ), + isFileImage + ? Positioned( + bottom: 10, + left: 10, + child: _buildEditButton(), + ) + : const SizedBox() + ], + ); + } + + Widget _buildRemoveButton() { + return GestureDetector( + onTap: onRemove, + child: SizedBox( + width: buttonSize, + height: buttonSize, + child: FloatingActionButton( + heroTag: Key('postImagePreviewerRemoveButton'), + onPressed: onRemove, + backgroundColor: Colors.black54, + child: Icon( + Icons.clear, + color: Colors.white, + size: 20.0, + ), + ), + ), + ); + } + + Widget _buildEditButton() { + return GestureDetector( + onTap: _onWantsToEditImage, + child: SizedBox( + width: buttonSize, + height: buttonSize, + child: FloatingActionButton( + heroTag: Key('postImagePreviewerEditButton'), + onPressed: _onWantsToEditImage, + backgroundColor: Colors.black54, + child: Icon( + Icons.edit, + color: Colors.white, + size: 20.0, + ), + ), + ), + ); + } + + void _onWantsToEditImage() async { + if (onWillEditImage != null) onWillEditImage(); + + File croppedFile = await ImageCropper.cropImage( + toolbarTitle: 'Edit image', + toolbarColor: Colors.black, + statusBarColor: Colors.black, + toolbarWidgetColor: Colors.white, + sourcePath: postImageFile.path, + ); + + if (croppedFile != null) onPostImageEdited(croppedFile); + } +} diff --git a/lib/pages/home/modals/save_post/widgets/post_video_previewer.dart b/lib/pages/home/modals/save_post/widgets/post_video_previewer.dart new file mode 100644 index 000000000..640278ea6 --- /dev/null +++ b/lib/pages/home/modals/save_post/widgets/post_video_previewer.dart @@ -0,0 +1,131 @@ +import 'dart:io'; + +import 'package:Okuna/models/post_video.dart'; +import 'package:Okuna/models/video_format.dart'; +import 'package:Okuna/provider.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_advanced_networkimage/provider.dart'; + +class OBPostVideoPreview extends StatelessWidget { + final File postVideoFile; + final PostVideo postVideo; + final VoidCallback onRemove; + final double buttonSize = 30.0; + final double playIconSize; + static double avatarBorderRadius = 10.0; + + OBPostVideoPreview( + {this.onRemove, this.postVideoFile, this.playIconSize, this.postVideo}); + + @override + Widget build(BuildContext context) { + bool isFileVideo = postVideoFile != null; + + OpenbookProviderState openbookProvider = OpenbookProvider.of(context); + + Widget videoPreview = isFileVideo + ? FutureBuilder( + future: openbookProvider.mediaPickerService + .getVideoThumbnail(postVideoFile), + builder: (BuildContext context, AsyncSnapshot snapshot) { + if (snapshot.data == null) return const SizedBox(); + + return _wrapImageWidgetForThumbnail(Image.file( + snapshot.data, + fit: BoxFit.cover, + )); + }) + : _wrapImageWidgetForThumbnail(Image( + fit: BoxFit.cover, + image: AdvancedNetworkImage(postVideo.thumbnail, + useDiskCache: true, + fallbackAssetImage: 'assets/images/fallbacks/post-fallback.png', + retryLimit: 0), + )); + + return Stack( + children: [ + videoPreview, + onRemove != null + ? Positioned( + top: 10, + right: 10, + child: _buildRemoveButton(), + ) + : const SizedBox(), + Positioned( + top: 0, + right: 0, + left: 0, + bottom: 0, + child: Center( + child: _buildPlayButton(context), + ), + ), + ], + ); + } + + Widget _wrapImageWidgetForThumbnail(Widget image) { + return SizedBox( + height: 200.0, + width: 200, + child: ClipRRect( + borderRadius: new BorderRadius.circular(avatarBorderRadius), + child: image), + ); + } + + Widget _buildRemoveButton() { + return GestureDetector( + onTap: onRemove, + child: SizedBox( + width: buttonSize, + height: buttonSize, + child: FloatingActionButton( + onPressed: onRemove, + backgroundColor: Colors.black54, + child: Icon( + Icons.clear, + color: Colors.white, + size: 20.0, + ), + ), + ), + ); + } + + Widget _buildPlayButton(BuildContext context) { + return GestureDetector( + onTap: () { + _onWantsToPlay(context); + }, + child: SizedBox( + width: playIconSize, + height: playIconSize, + child: Center( + child: Icon( + Icons.play_circle_filled, + color: Colors.white, + size: 50, + ), + )), + ); + } + + void _onWantsToPlay(BuildContext context) { + OpenbookProviderState openbookProvider = OpenbookProvider.of(context); + + String postVideoUrl; + + if (postVideo != null) + postVideoUrl = + postVideo.getVideoFormatOfType(OBVideoFormatType.mp4SD).file; + + openbookProvider.dialogService.showVideo( + context: context, + video: postVideoFile, + autoPlay: true, + videoUrl: postVideoUrl); + } +} diff --git a/lib/pages/home/modals/create_post/widgets/remaining_post_characters.dart b/lib/pages/home/modals/save_post/widgets/remaining_post_characters.dart similarity index 100% rename from lib/pages/home/modals/create_post/widgets/remaining_post_characters.dart rename to lib/pages/home/modals/save_post/widgets/remaining_post_characters.dart diff --git a/lib/pages/home/pages/community/community.dart b/lib/pages/home/pages/community/community.dart index f2773215f..7f7359fbc 100644 --- a/lib/pages/home/pages/community/community.dart +++ b/lib/pages/home/pages/community/community.dart @@ -1,5 +1,6 @@ import 'package:Okuna/models/community.dart'; import 'package:Okuna/models/post.dart'; +import 'package:Okuna/models/posts_list.dart'; import 'package:Okuna/models/theme.dart'; import 'package:Okuna/models/user.dart'; import 'package:Okuna/pages/home/pages/community/pages/community_staff/widgets/community_administrators.dart'; @@ -7,13 +8,14 @@ import 'package:Okuna/pages/home/pages/community/pages/community_staff/widgets/c import 'package:Okuna/pages/home/pages/community/widgets/community_card/community_card.dart'; import 'package:Okuna/pages/home/pages/community/widgets/community_cover.dart'; import 'package:Okuna/pages/home/pages/community/widgets/community_nav_bar.dart'; -import 'package:Okuna/pages/home/pages/community/widgets/community_posts.dart'; +import 'package:Okuna/pages/home/pages/community/widgets/community_posts_stream_status_indicator.dart'; import 'package:Okuna/provider.dart'; import 'package:Okuna/services/localization.dart'; import 'package:Okuna/services/user.dart'; import 'package:Okuna/widgets/alerts/alert.dart'; -import 'package:Okuna/widgets/buttons/community_floating_action_button.dart'; -import 'package:Okuna/widgets/http_list.dart'; +import 'package:Okuna/widgets/buttons/community_new_post_button.dart'; +import 'package:Okuna/widgets/new_post_data_uploader.dart'; +import 'package:Okuna/widgets/posts_stream/posts_stream.dart'; import 'package:Okuna/widgets/theming/primary_color_container.dart'; import 'package:Okuna/widgets/theming/text.dart'; import 'package:async/async.dart'; @@ -34,7 +36,7 @@ class OBCommunityPage extends StatefulWidget { class OBCommunityPageState extends State with TickerProviderStateMixin { Community _community; - OBHttpListController _httpListController; + OBPostsStreamController _obPostsStreamController; UserService _userService; LocalizationService _localizationService; @@ -42,16 +44,19 @@ class OBCommunityPageState extends State CancelableOperation _refreshCommunityOperation; + List _newPostsData; + @override void initState() { super.initState(); - _httpListController = OBHttpListController(); + _obPostsStreamController = OBPostsStreamController(); _needsBootstrap = true; _community = widget.community; + _newPostsData = []; } - void _onPostCreated(Post post) { - _httpListController.insertListItem(post); + void _onWantsToUploadNewPostData(OBNewPostData newPostData) { + _insertNewPostData(newPostData); } @override @@ -106,20 +111,31 @@ class OBCommunityPageState extends State } Widget _buildCommunityContent() { - List stackItems = [ - OBCommunityPosts( - httpListController: _httpListController, - community: _community, - httpListSecondaryRefresher: _refreshCommunity, - prependedItems: [ - OBCommunityCover(_community), - OBCommunityCard( - _community, - ) - ], + List prependedItems = [ + OBCommunityCover(_community), + OBCommunityCard( + _community, ) ]; + if (_newPostsData.isNotEmpty) { + prependedItems.addAll(_newPostsData.map((OBNewPostData newPostData) { + return _buildNewPostDataUploader(newPostData); + }).toList()); + } + + List stackItems = [ + OBPostsStream( + onScrollLoader: _loadMoreCommunityPosts, + refresher: _refreshCommunityPosts, + controller: _obPostsStreamController, + prependedItems: prependedItems, + streamIdentifier: 'community_' + widget.community.name, + secondaryRefresher: _refreshCommunity, + statusIndicatorBuilder: _buildPostsStreamStatusIndicator, + ), + ]; + OpenbookProviderState openbookProvider = OpenbookProvider.of(context); User loggedInUser = openbookProvider.userService.getLoggedInUser(); bool isMemberOfCommunity = _community.isMember(loggedInUser); @@ -130,7 +146,7 @@ class OBCommunityPageState extends State right: 20.0, child: OBCommunityNewPostButton( community: _community, - onPostCreated: _onPostCreated, + onWantsToUploadNewPostData: _onWantsToUploadNewPostData, ))); } @@ -139,6 +155,35 @@ class OBCommunityPageState extends State ); } + Widget _buildPostsStreamStatusIndicator( + {BuildContext context, + OBPostsStreamStatus streamStatus, + List streamPrependedItems, + Function streamRefresher}) { + return OBCommunityPostsStreamStatusIndicator( + streamRefresher: streamRefresher, + streamPrependedItems: streamPrependedItems, + streamStatus: streamStatus); + } + + Widget _buildNewPostDataUploader(OBNewPostData newPostData) { + return OBNewPostDataUploader( + data: newPostData, + onPostPublished: _onNewPostDataUploaderPostPublished, + onCancelled: _onNewPostDataUploaderCancelled, + ); + } + + void _onNewPostDataUploaderCancelled(OBNewPostData newPostData) { + _removeNewPostData(newPostData); + } + + void _onNewPostDataUploaderPostPublished( + Post publishedPost, OBNewPostData newPostData) { + _removeNewPostData(newPostData); + _obPostsStreamController.addPostToTop(publishedPost); + } + Widget _buildPrivateCommunityContent() { bool communityHasInvitesEnabled = _community.invitesEnabled; return ListView( @@ -162,8 +207,10 @@ class OBCommunityPageState extends State ), OBText( communityHasInvitesEnabled - ? _localizationService.trans('community__invited_by_member') - :_localizationService.trans('community__invited_by_moderator'), + ? _localizationService + .trans('community__invited_by_member') + : _localizationService + .trans('community__invited_by_moderator'), textAlign: TextAlign.center, ) ], @@ -185,11 +232,44 @@ class OBCommunityPageState extends State _setCommunity(community); } + Future> _refreshCommunityPosts() async { + debugPrint('Refreshing community posts'); + PostsList communityPosts = + await _userService.getPostsForCommunity(widget.community); + return communityPosts.posts; + } + + Future> _loadMoreCommunityPosts( + List communityPostsList) async { + debugPrint('Loading more community posts'); + var lastCommunityPost = communityPostsList.last; + var lastCommunityPostId = lastCommunityPost.id; + var moreCommunityPosts = (await _userService.getPostsForCommunity( + widget.community, + maxId: lastCommunityPostId, + count: 10, + )) + .posts; + return moreCommunityPosts; + } + void _setCommunity(Community community) { setState(() { _community = community; }); } + + void _insertNewPostData(OBNewPostData newPostData) { + setState(() { + _newPostsData.insert(0, newPostData); + }); + } + + void _removeNewPostData(OBNewPostData newPostData) { + setState(() { + _newPostsData.remove(newPostData); + }); + } } class CommunityTabBarDelegate extends SliverPersistentHeaderDelegate { diff --git a/lib/pages/home/pages/community/widgets/community_posts.dart b/lib/pages/home/pages/community/widgets/community_posts.dart deleted file mode 100644 index b892e52d2..000000000 --- a/lib/pages/home/pages/community/widgets/community_posts.dart +++ /dev/null @@ -1,108 +0,0 @@ -import 'package:Okuna/models/community.dart'; -import 'package:Okuna/models/post.dart'; -import 'package:Okuna/models/posts_list.dart'; -import 'package:Okuna/provider.dart'; -import 'package:Okuna/services/localization.dart'; -import 'package:Okuna/services/user.dart'; -import 'package:Okuna/widgets/http_list.dart'; -import 'package:Okuna/widgets/post/post.dart'; -import 'package:flutter/material.dart'; - -class OBCommunityPosts extends StatefulWidget { - final Community community; - final List prependedItems; - final OBHttpListController httpListController; - final OBHttpListSecondaryRefresher httpListSecondaryRefresher; - - const OBCommunityPosts( - {Key key, - @required this.community, - this.prependedItems, - this.httpListController, - this.httpListSecondaryRefresher}) - : super(key: key); - - @override - OBCommunityPostsState createState() { - return OBCommunityPostsState(); - } -} - -class OBCommunityPostsState extends State { - UserService _userService; - LocalizationService _localizationService; - - OBHttpListController _httpListController; - bool _needsBootstrap; - - @override - void initState() { - super.initState(); - _httpListController = widget.httpListController ?? OBHttpListController(); - _needsBootstrap = true; - } - - @override - Widget build(BuildContext context) { - if (_needsBootstrap) { - var provider = OpenbookProvider.of(context); - _userService = provider.userService; - _localizationService = provider.localizationService; - _needsBootstrap = false; - } - - return OBHttpList( - controller: _httpListController, - listItemBuilder: _buildCommunityPostListItem, - searchResultListItemBuilder: _buildCommunityPostListItem, - listRefresher: _refreshCommunityPosts, - listOnScrollLoader: _loadMoreCommunityPosts, - secondaryRefresher: widget.httpListSecondaryRefresher, - prependedItems: widget.prependedItems, - resourceSingularName: _localizationService.community__post_singular, - resourcePluralName: _localizationService.community__post_plural, - ); - } - - Widget _buildCommunityPostListItem(BuildContext context, Post post) { - return StreamBuilder( - stream: post.updateSubject, - initialData: post, - builder: (BuildContext context, AsyncSnapshot snapshot) { - Post post = snapshot.data; - return OBPost(post, - onTextExpandedChange: _onTextExpandedChange, - onPostDeleted: _onPostDeleted, - key: Key(post.id.toString())); - }); - } - - void _onPostDeleted(Post post) { - _httpListController.removeListItem(post); - } - - void _onTextExpandedChange({@required Post post, @required bool isExpanded}) { - print(isExpanded); - } - - Future> _refreshCommunityPosts() async { - debugPrint('Refreshing community posts'); - PostsList communityPosts = - await _userService.getPostsForCommunity(widget.community); - return communityPosts.posts; - } - - Future> _loadMoreCommunityPosts( - List communityPostsList) async { - debugPrint('Loading more community posts'); - var lastCommunityPost = communityPostsList.last; - var lastCommunityPostId = lastCommunityPost.id; - var moreCommunityPosts = (await _userService.getPostsForCommunity( - widget.community, - maxId: lastCommunityPostId, - count: 20, - )) - .posts; - return moreCommunityPosts; - } -} diff --git a/lib/pages/home/pages/community/widgets/community_posts_stream_status_indicator.dart b/lib/pages/home/pages/community/widgets/community_posts_stream_status_indicator.dart new file mode 100644 index 000000000..e43aaeded --- /dev/null +++ b/lib/pages/home/pages/community/widgets/community_posts_stream_status_indicator.dart @@ -0,0 +1,65 @@ +import 'package:Okuna/models/user.dart'; +import 'package:Okuna/provider.dart'; +import 'package:Okuna/services/localization.dart'; +import 'package:Okuna/services/user.dart'; +import 'package:Okuna/widgets/alerts/button_alert.dart'; +import 'package:Okuna/widgets/icon.dart'; +import 'package:Okuna/widgets/posts_stream/posts_stream.dart'; +import 'package:Okuna/widgets/tiles/loading_indicator_tile.dart'; +import 'package:Okuna/widgets/tiles/retry_tile.dart'; +import 'package:flutter/material.dart'; + +class OBCommunityPostsStreamStatusIndicator extends StatelessWidget { + final VoidCallback streamRefresher; + final OBPostsStreamStatus streamStatus; + final List streamPrependedItems; + + OBCommunityPostsStreamStatusIndicator({ + @required this.streamRefresher, + this.streamStatus, + this.streamPrependedItems, + }); + + @override + Widget build(BuildContext context) { + Widget statusIndicator; + + switch (streamStatus) { + case OBPostsStreamStatus.loadingMore: + case OBPostsStreamStatus.refreshing: + statusIndicator = const Padding( + padding: const EdgeInsets.all(20), + child: const OBLoadingIndicatorTile(), + ); + break; + case OBPostsStreamStatus.empty: + statusIndicator = _buildEmptyIndicator(context); + break; + case OBPostsStreamStatus.loadingMoreFailed: + var provider = OpenbookProvider.of(context); + statusIndicator = OBRetryTile( + text: provider.localizationService.community__retry_loading_posts, + onWantsToRetry: streamRefresher, + ); + break; + default: + statusIndicator = const SizedBox(); + } + + return statusIndicator; + } + + Widget _buildEmptyIndicator(BuildContext context) { + var provider = OpenbookProvider.of(context); + + LocalizationService localizationService = provider.localizationService; + + return OBButtonAlert( + text: localizationService.posts_stream__status_tile_empty, + onPressed: streamRefresher, + buttonText: localizationService.post__trending_posts_refresh, + buttonIcon: OBIcons.refresh, + assetImage: 'assets/images/stickers/perplexed-owl.png', + ); + } +} diff --git a/lib/pages/home/pages/menu/pages/settings/pages/application_settings.dart b/lib/pages/home/pages/menu/pages/settings/pages/application_settings.dart index fd89ee21a..976fb3405 100644 --- a/lib/pages/home/pages/menu/pages/settings/pages/application_settings.dart +++ b/lib/pages/home/pages/menu/pages/settings/pages/application_settings.dart @@ -3,26 +3,44 @@ import 'package:Okuna/services/localization.dart'; import 'package:Okuna/widgets/icon.dart'; import 'package:Okuna/widgets/nav_bars/themed_nav_bar.dart'; import 'package:Okuna/widgets/theming/primary_color_container.dart'; +import 'package:Okuna/widgets/tile_group_title.dart'; import 'package:Okuna/widgets/tiles/actions/clear_application_cache_tile.dart'; import 'package:Okuna/widgets/tiles/actions/clear_application_preferences_tile.dart'; +import 'package:Okuna/widgets/tiles/actions/link_previews_setting_tile.dart'; +import 'package:Okuna/widgets/tiles/actions/videos_autoplay_setting_tile.dart'; +import 'package:Okuna/widgets/tiles/actions/videos_sound_setting_tile.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; class OBApplicationSettingsPage extends StatelessWidget { Widget build(BuildContext context) { - LocalizationService _localizationService = OpenbookProvider.of(context).localizationService; + LocalizationService _localizationService = + OpenbookProvider.of(context).localizationService; return CupertinoPageScaffold( backgroundColor: Color.fromARGB(0, 0, 0, 0), - navigationBar: OBThemedNavigationBar(title: _localizationService.drawer__application_settings), + navigationBar: OBThemedNavigationBar( + title: _localizationService.drawer__application_settings), child: OBPrimaryColorContainer( child: ListView( physics: const ClampingScrollPhysics(), // Important: Remove any padding from the ListView. - padding: EdgeInsets.zero, children: [ - OBClearApplicationCacheTile(), - OBClearApplicationPreferencesTile(), + Padding( + padding: const EdgeInsets.symmetric(vertical: 10), + child: OBTileGroupTitle( + title: _localizationService.application_settings__videos, + ), + ), + OBVideosSoundSettingTile(), + OBVideosAutoPlaySettingTile(), + Padding( + padding: const EdgeInsets.symmetric(vertical: 10), + child: OBTileGroupTitle( + title: _localizationService.application_settings__link_previews, + ), + ), + OBLinkPreviewsSettingTile(), ], ), ), diff --git a/lib/pages/home/pages/menu/pages/settings/pages/developer_settings.dart b/lib/pages/home/pages/menu/pages/settings/pages/developer_settings.dart new file mode 100644 index 000000000..6ebf901c5 --- /dev/null +++ b/lib/pages/home/pages/menu/pages/settings/pages/developer_settings.dart @@ -0,0 +1,32 @@ +import 'package:Okuna/provider.dart'; +import 'package:Okuna/services/localization.dart'; +import 'package:Okuna/widgets/icon.dart'; +import 'package:Okuna/widgets/nav_bars/themed_nav_bar.dart'; +import 'package:Okuna/widgets/theming/primary_color_container.dart'; +import 'package:Okuna/widgets/tiles/actions/clear_application_cache_tile.dart'; +import 'package:Okuna/widgets/tiles/actions/clear_application_preferences_tile.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; + +class OBDeveloperSettingsPage extends StatelessWidget { + Widget build(BuildContext context) { + LocalizationService _localizationService = + OpenbookProvider.of(context).localizationService; + + return CupertinoPageScaffold( + backgroundColor: Color.fromARGB(0, 0, 0, 0), + navigationBar: OBThemedNavigationBar( + title: _localizationService.drawer__developer_settings), + child: OBPrimaryColorContainer( + child: ListView( + physics: const ClampingScrollPhysics(), + // Important: Remove any padding from the ListView. + padding: EdgeInsets.zero, + children: [ + OBClearApplicationCacheTile(), + ], + ), + ), + ); + } +} diff --git a/lib/pages/home/pages/menu/pages/settings/settings.dart b/lib/pages/home/pages/menu/pages/settings/settings.dart index 2eddd7b68..aed2ade1e 100644 --- a/lib/pages/home/pages/menu/pages/settings/settings.dart +++ b/lib/pages/home/pages/menu/pages/settings/settings.dart @@ -15,7 +15,8 @@ class OBSettingsPage extends StatelessWidget { return CupertinoPageScaffold( backgroundColor: Color.fromARGB(0, 0, 0, 0), - navigationBar: OBThemedNavigationBar(title: localizationService.trans('drawer__settings')), + navigationBar: OBThemedNavigationBar( + title: localizationService.trans('drawer__settings')), child: OBPrimaryColorContainer( child: ListView( physics: const ClampingScrollPhysics(), @@ -24,7 +25,8 @@ class OBSettingsPage extends StatelessWidget { children: [ ListTile( leading: const OBIcon(OBIcons.account), - title: OBText(localizationService.trans('drawer__account_settings')), + title: + OBText(localizationService.trans('drawer__account_settings')), onTap: () { navigationService.navigateToAccountSettingsPage( context: context); @@ -32,12 +34,21 @@ class OBSettingsPage extends StatelessWidget { ), ListTile( leading: const OBIcon(OBIcons.application), - title: OBText(localizationService.trans('drawer__application_settings')), + title: OBText( + localizationService.trans('drawer__application_settings')), onTap: () { navigationService.navigateToApplicationSettingsPage( context: context); }, ), + ListTile( + leading: const OBIcon(OBIcons.bug), + title: OBText(localizationService.drawer__developer_settings), + onTap: () { + navigationService.navigateToDeveloperSettingsPage( + context: context); + }, + ), ], ), ), diff --git a/lib/pages/home/pages/menu/pages/useful_links.dart b/lib/pages/home/pages/menu/pages/useful_links.dart index eb5965cb0..6c003e156 100644 --- a/lib/pages/home/pages/menu/pages/useful_links.dart +++ b/lib/pages/home/pages/menu/pages/useful_links.dart @@ -75,7 +75,7 @@ class OBUsefulLinksPage extends StatelessWidget { subtitle: OBSecondaryText( _localizationService.drawer__useful_links_guidelines_handbook_desc), onTap: () { - urlLauncherService.launchUrl('https://openbook.support/'); + urlLauncherService.launchUrl('https://okuna.support/'); }, ), ListTile( diff --git a/lib/pages/home/pages/notifications/notifications.dart b/lib/pages/home/pages/notifications/notifications.dart index c0d174eae..6db611a95 100644 --- a/lib/pages/home/pages/notifications/notifications.dart +++ b/lib/pages/home/pages/notifications/notifications.dart @@ -3,10 +3,16 @@ import 'dart:async'; import 'package:Okuna/models/notifications/notification.dart'; import 'package:Okuna/models/notifications/notifications_list.dart'; import 'package:Okuna/models/push_notification.dart'; +import 'package:Okuna/models/theme.dart'; import 'package:Okuna/pages/home/lib/poppable_page_controller.dart'; +import 'package:Okuna/pages/home/pages/notifications/pages/general_notifications.dart'; +import 'package:Okuna/pages/home/pages/notifications/pages/request_notifications.dart'; import 'package:Okuna/provider.dart'; +import 'package:Okuna/services/localization.dart'; import 'package:Okuna/services/navigation_service.dart'; import 'package:Okuna/services/push_notifications/push_notifications.dart'; +import 'package:Okuna/services/theme.dart'; +import 'package:Okuna/services/theme_value_parser.dart'; import 'package:Okuna/services/toast.dart'; import 'package:Okuna/services/user.dart'; import 'package:Okuna/widgets/http_list.dart'; @@ -20,10 +26,10 @@ import 'package:flutter/material.dart'; class OBNotificationsPage extends StatefulWidget { final OBNotificationsPageController controller; + final OBNotificationsPageTab selectedTab; - OBNotificationsPage({ - this.controller, - }); + OBNotificationsPage( + {this.controller, this.selectedTab = OBNotificationsPageTab.general}); @override OBNotificationsPageState createState() { @@ -32,14 +38,33 @@ class OBNotificationsPage extends StatefulWidget { } class OBNotificationsPageState extends State - with WidgetsBindingObserver { + with WidgetsBindingObserver, SingleTickerProviderStateMixin { + static const List _generalTypes = [ + NotificationType.postReaction, + NotificationType.postCommentReaction, + NotificationType.postComment, + NotificationType.postCommentReply, + NotificationType.postUserMention, + NotificationType.postCommentUserMention, + NotificationType.connectionConfirmed, + NotificationType.follow + ]; + + static const List _requestTypes = [ + NotificationType.connectionRequest, + NotificationType.communityInvite + ]; + UserService _userService; ToastService _toastService; NavigationService _navigationService; + LocalizationService _localizationService; PushNotificationsService _pushNotificationsService; - OBHttpListController _notificationsListController; + OBHttpListController _generalNotificationsListController; + OBHttpListController _requestsNotificationsListController; StreamSubscription _pushNotificationSubscription; OBNotificationsPageController _controller; + TabController _tabController; bool _needsBootstrap; bool _isActivePage; @@ -51,10 +76,24 @@ class OBNotificationsPageState extends State void initState() { super.initState(); WidgetsBinding.instance.addObserver(this); - _notificationsListController = OBHttpListController(); + _generalNotificationsListController = OBHttpListController(); + _requestsNotificationsListController = OBHttpListController(); _controller = widget.controller ?? OBNotificationsPage(); _controller.attach(state: this, context: context); + _tabController = new TabController(length: 2, vsync: this); + + switch (widget.selectedTab) { + case OBNotificationsPageTab.general: + _tabController.index = 0; + break; + case OBNotificationsPageTab.requests: + _tabController.index = 1; + break; + default: + throw "Unhandled tab index: ${widget.selectedTab}"; + } + _needsBootstrap = true; _shouldMarkNotificationsAsRead = true; if (_isActivePage == null) _isActivePage = false; @@ -62,30 +101,26 @@ class OBNotificationsPageState extends State @override Widget build(BuildContext context) { + var openbookProvider = OpenbookProvider.of(context); + if (_needsBootstrap) { - var openbookProvider = OpenbookProvider.of(context); _userService = openbookProvider.userService; _toastService = openbookProvider.toastService; _navigationService = openbookProvider.navigationService; + _localizationService = openbookProvider.localizationService; _pushNotificationsService = openbookProvider.pushNotificationsService; _bootstrap(); _needsBootstrap = false; } - List stackItems = [ - OBPrimaryColorContainer( - child: OBHttpList( - key: Key('notificationsList'), - controller: _notificationsListController, - listRefresher: _refreshNotifications, - listOnScrollLoader: _loadMoreNotifications, - listItemBuilder: _buildNotification, - resourceSingularName: 'notification', - resourcePluralName: 'notifications', - physics: const ClampingScrollPhysics(), - ), - ), - ]; + ThemeService themeService = openbookProvider.themeService; + ThemeValueParserService themeValueParser = + openbookProvider.themeValueParserService; + OBTheme theme = themeService.getActiveTheme(); + + Color tabIndicatorColor = + themeValueParser.parseGradient(theme.primaryAccentColor).colors[1]; + Color tabLabelColor = themeValueParser.parseColor(theme.primaryTextColor); return CupertinoPageScaffold( navigationBar: OBThemedNavigationBar( @@ -96,9 +131,59 @@ class OBNotificationsPageState extends State onPressed: _onWantsToConfigureNotifications, ), ), - child: Stack( - children: stackItems, - )); + child: OBPrimaryColorContainer( + child: Column( + children: [ + TabBar( + controller: _tabController, + tabs: [ + Padding( + padding: EdgeInsets.symmetric(vertical: 5), + child: Tab( + text: _localizationService.notifications__tab_general()), + ), + Padding( + padding: EdgeInsets.symmetric(vertical: 5), + child: Tab( + text: _localizationService.notifications__tab_requests()), + ), + ], + isScrollable: false, + indicatorColor: tabIndicatorColor, + labelColor: tabLabelColor, + ), + Expanded( + child: TabBarView( + controller: _tabController, + children: [ + _buildGeneralNotifications(), + _buildRequestNotifications(), + ], + )) + ], + ))); + } + + Widget _buildGeneralNotifications() { + return OBGeneralNotifications( + controller: _generalNotificationsListController, + refresher: _refreshGeneralNotifications, + onScrollLoader: _loadMoreGeneralNotifications, + itemBuilder: _buildNotification, + resourceSingularName: 'notification', + resourcePluralName: 'notifications', + ); + } + + Widget _buildRequestNotifications() { + return OBRequestNotifications( + controller: _requestsNotificationsListController, + refresher: _refreshRequestNotifications, + onScrollLoader: _loadMoreRequestNotifications, + itemBuilder: _buildNotification, + resourceSingularName: 'notification', + resourcePluralName: 'notifications', + ); } void dispose() { @@ -108,7 +193,10 @@ class OBNotificationsPageState extends State } void scrollToTop() { - _notificationsListController.scrollToTop(); + if (_tabController.index == 0) + _generalNotificationsListController.scrollToTop(); + if (_tabController.index == 1) + _requestsNotificationsListController.scrollToTop(); } void setIsActivePage(bool isActivePage) { @@ -126,34 +214,65 @@ class OBNotificationsPageState extends State ); } - Future> _refreshNotifications() async { - await _readNotifications(); + Future> _refreshGeneralNotifications() async { + return _refreshNotifications(_generalTypes); + } + + Future> _refreshRequestNotifications() async { + return _refreshNotifications(_requestTypes); + } + + Future> _refreshNotifications( + [List types]) async { + await _readNotifications(types: types); - NotificationsList notificationsList = await _userService.getNotifications(); + NotificationsList notificationsList = + await _userService.getNotifications(types: types); return notificationsList.notifications; } - Future _readNotifications() async { - if (_shouldMarkNotificationsAsRead && - _notificationsListController.hasItems()) { - OBNotification firstItem = _notificationsListController.firstItem(); - int maxId = firstItem.id; - await _userService.readNotifications(maxId: maxId); + Future _readNotifications({List types}) async { + if (!_shouldMarkNotificationsAsRead) return; + OBNotification firstItem; + + if (_tabController.index == 0 && + _generalNotificationsListController.hasItems()) { + firstItem = _generalNotificationsListController.firstItem(); + } else if (_tabController.index == 1 && + _requestsNotificationsListController.hasItems()) { + firstItem = _requestsNotificationsListController.firstItem(); + } else { + return; } + + int maxId = firstItem.id; + await _userService.readNotifications(maxId: maxId, types: types); } - Future> _loadMoreNotifications( + Future> _loadMoreGeneralNotifications( + List currentNotifications) async { + return _loadMoreNotifications(currentNotifications, _generalTypes); + } + + Future> _loadMoreRequestNotifications( List currentNotifications) async { + return _loadMoreNotifications(currentNotifications, _requestTypes); + } + + Future> _loadMoreNotifications( + List currentNotifications, + [List types]) async { OBNotification lastNotification = currentNotifications.last; int lastNotificationId = lastNotification.id; - NotificationsList moreNotifications = - await _userService.getNotifications(maxId: lastNotificationId); + NotificationsList moreNotifications = await _userService.getNotifications( + maxId: lastNotificationId, types: types); return moreNotifications.notifications; } void _onNotificationTileDeleted(OBNotification notification) async { await _deleteNotification(notification); - _notificationsListController.removeListItem(notification); + _generalNotificationsListController.removeListItem(notification); + _requestsNotificationsListController.removeListItem(notification); } Future _deleteNotification(OBNotification notification) async { @@ -239,7 +358,10 @@ class OBNotificationsPageState extends State bool shouldMarkNotificationsAsRead = false, }) async { _setShouldMarkNotificationsAsRead(shouldMarkNotificationsAsRead); - await _notificationsListController.refresh( + await _generalNotificationsListController?.refresh( + shouldScrollToTop: shouldScrollToTop, + shouldUseRefreshIndicator: shouldUseRefreshIndicator); + await _requestsNotificationsListController?.refresh( shouldScrollToTop: shouldScrollToTop, shouldUseRefreshIndicator: shouldUseRefreshIndicator); _setShouldMarkNotificationsAsRead(true); @@ -295,3 +417,5 @@ class OBNotificationsPageController extends PoppablePageController { _markNotificationsAsRead = markNotificationsAsRead; } } + +enum OBNotificationsPageTab { general, requests } diff --git a/lib/pages/home/pages/notifications/pages/general_notifications.dart b/lib/pages/home/pages/notifications/pages/general_notifications.dart new file mode 100644 index 000000000..6747ed07a --- /dev/null +++ b/lib/pages/home/pages/notifications/pages/general_notifications.dart @@ -0,0 +1,47 @@ +import 'package:Okuna/models/notifications/notification.dart'; +import 'package:Okuna/widgets/http_list.dart'; +import 'package:flutter/material.dart'; + +class OBGeneralNotifications extends StatefulWidget { + final OBHttpListController controller; + final OBHttpListRefresher refresher; + final OBHttpListOnScrollLoader onScrollLoader; + final OBHttpListItemBuilder itemBuilder; + final String resourceSingularName; + final String resourcePluralName; + + const OBGeneralNotifications( + {Key key, + @required @required this.controller, + @required this.refresher, + @required this.onScrollLoader, + @required this.itemBuilder, + @required this.resourceSingularName, + @required this.resourcePluralName}) + : super(key: key); + + @override + State createState() { + return OBGeneralNotificationsState(); + } +} + +class OBGeneralNotificationsState extends State + with AutomaticKeepAliveClientMixin { + @override + Widget build(BuildContext context) { + return OBHttpList( + key: Key('generalNotificationsList'), + controller: widget.controller, + listRefresher: widget.refresher, + listOnScrollLoader: widget.onScrollLoader, + listItemBuilder: widget.itemBuilder, + resourceSingularName: widget.resourceSingularName, + resourcePluralName: widget.resourcePluralName, + physics: const ClampingScrollPhysics(), + ); + } + + @override + bool get wantKeepAlive => true; +} diff --git a/lib/pages/home/pages/notifications/pages/notifications_settings.dart b/lib/pages/home/pages/notifications/pages/notifications_settings.dart index 15917b78a..4288e645c 100644 --- a/lib/pages/home/pages/notifications/pages/notifications_settings.dart +++ b/lib/pages/home/pages/notifications/pages/notifications_settings.dart @@ -48,10 +48,8 @@ class OBNotificationsSettingsPageState @override void initState() { super.initState(); - _pushNotifications = true; _needsBootstrap = true; _bootstrapInProgress = true; - _pushNotifications = true; _postCommentNotifications = true; _postCommentReactionNotifications = true; _postCommentReplyNotifications = true; diff --git a/lib/pages/home/pages/notifications/pages/request_notifications.dart b/lib/pages/home/pages/notifications/pages/request_notifications.dart new file mode 100644 index 000000000..642136dc2 --- /dev/null +++ b/lib/pages/home/pages/notifications/pages/request_notifications.dart @@ -0,0 +1,47 @@ +import 'package:Okuna/models/notifications/notification.dart'; +import 'package:Okuna/widgets/http_list.dart'; +import 'package:flutter/material.dart'; + +class OBRequestNotifications extends StatefulWidget { + final OBHttpListController controller; + final OBHttpListRefresher refresher; + final OBHttpListOnScrollLoader onScrollLoader; + final OBHttpListItemBuilder itemBuilder; + final String resourceSingularName; + final String resourcePluralName; + + const OBRequestNotifications( + {Key key, + @required @required this.controller, + @required this.refresher, + @required this.onScrollLoader, + @required this.itemBuilder, + @required this.resourceSingularName, + @required this.resourcePluralName}) + : super(key: key); + + @override + State createState() { + return OBRequestNotificationsState(); + } +} + +class OBRequestNotificationsState extends State + with AutomaticKeepAliveClientMixin { + @override + Widget build(BuildContext context) { + return OBHttpList( + key: Key('requestNotificationsList'), + controller: widget.controller, + listRefresher: widget.refresher, + listOnScrollLoader: widget.onScrollLoader, + listItemBuilder: widget.itemBuilder, + resourceSingularName: widget.resourceSingularName, + resourcePluralName: widget.resourcePluralName, + physics: const ClampingScrollPhysics(), + ); + } + + @override + bool get wantKeepAlive => true; +} diff --git a/lib/pages/home/pages/post/post.dart b/lib/pages/home/pages/post/post.dart index fdf193150..364c1425c 100644 --- a/lib/pages/home/pages/post/post.dart +++ b/lib/pages/home/pages/post/post.dart @@ -59,7 +59,7 @@ class OBPostPageState extends State { key: _refreshIndicatorKey, child: ListView( padding: const EdgeInsets.all(0), - physics: const AlwaysScrollableScrollPhysics(), + physics: const ClampingScrollPhysics(), children: [ StreamBuilder( stream: widget.post.updateSubject, @@ -79,6 +79,7 @@ class OBPostPageState extends State { return OBPost( latestPost, + key: Key(latestPost.id.toString()), onPostDeleted: _onPostDeleted, ); } diff --git a/lib/pages/home/pages/post_comments/post_comments_page.dart b/lib/pages/home/pages/post_comments/post_comments_page.dart index 415230a5a..3b39af590 100644 --- a/lib/pages/home/pages/post_comments/post_comments_page.dart +++ b/lib/pages/home/pages/post_comments/post_comments_page.dart @@ -5,12 +5,14 @@ import 'package:Okuna/pages/home/pages/post_comments/post_comments_page_controll import 'package:Okuna/pages/home/pages/post_comments/widgets/post_commenter.dart'; import 'package:Okuna/pages/home/pages/post_comments/widgets/post_comment/post_comment.dart'; import 'package:Okuna/pages/home/pages/post_comments/widgets/post_comments_header_bar.dart'; +import 'package:Okuna/services/link_preview.dart'; import 'package:Okuna/widgets/contextual_account_search_box.dart'; import 'package:Okuna/pages/home/pages/post_comments/widgets/post_preview.dart'; import 'package:Okuna/services/localization.dart'; import 'package:Okuna/services/theme.dart'; import 'package:Okuna/services/theme_value_parser.dart'; import 'package:Okuna/services/user_preferences.dart'; +import 'package:Okuna/widgets/link_preview.dart'; import 'package:Okuna/widgets/nav_bars/themed_nav_bar.dart'; import 'package:Okuna/widgets/page_scaffold.dart'; import 'package:Okuna/provider.dart'; @@ -57,6 +59,7 @@ class OBPostCommentsPageState extends State UserPreferencesService _userPreferencesService; ToastService _toastService; ThemeService _themeService; + LinkPreviewService _linkPreviewService; LocalizationService _localizationService; ThemeValueParserService _themeValueParserService; Post _post; @@ -141,6 +144,7 @@ class OBPostCommentsPageState extends State _themeValueParserService = provider.themeValueParserService; _themeService = provider.themeService; _localizationService = provider.localizationService; + _linkPreviewService = provider.linkPreviewService; _bootstrap(); _needsBootstrap = false; } @@ -653,12 +657,8 @@ class OBPostCommentsPageState extends State double screenWidth = MediaQuery.of(context).size.width; if (widget.showPostPreview && widget.post != null) { - if (_post.hasImage()) { - aspectRatio = _post.getImageWidth() / _post.getImageHeight(); - finalMediaScreenHeight = screenWidth / aspectRatio; - } - if (_post.hasVideo()) { - aspectRatio = _post.getVideoWidth() / _post.getVideoHeight(); + if (_post.hasMediaThumbnail()) { + aspectRatio = _post.mediaWidth / _post.mediaHeight; finalMediaScreenHeight = screenWidth / aspectRatio; } @@ -692,6 +692,12 @@ class OBPostCommentsPageState extends State finalTextHeight + finalMediaScreenHeight + TOTAL_FIXED_OFFSET_Y; + + if (widget.post.text != null && + _linkPreviewService.hasLinkPreviewUrl(widget.post.text)) { + // Approx height of link preview without image.. + finalPostHeight += OBLinkPreviewState.linkPreviewHeight; + } } // linked comment diff --git a/lib/pages/home/pages/post_comments/widgets/post_commenter.dart b/lib/pages/home/pages/post_comments/widgets/post_commenter.dart index 92ff23442..2996322f5 100644 --- a/lib/pages/home/pages/post_comments/widgets/post_commenter.dart +++ b/lib/pages/home/pages/post_comments/widgets/post_commenter.dart @@ -1,6 +1,6 @@ import 'package:Okuna/models/post.dart'; import 'package:Okuna/models/post_comment.dart'; -import 'package:Okuna/pages/home/modals/create_post/widgets/remaining_post_characters.dart'; +import 'package:Okuna/pages/home/modals/save_post/widgets/remaining_post_characters.dart'; import 'package:Okuna/provider.dart'; import 'package:Okuna/services/localization.dart'; import 'package:Okuna/services/text_account_autocompletion.dart'; @@ -264,11 +264,8 @@ class OBPostCommenterState extends State { debugLog('Autocompleting with username:$foundAccountUsername'); setState(() { - _textController.text = - _textAccountAutocompletionService.autocompleteTextWithUsername( - _textController.text, foundAccountUsername); - _textController.selection = - TextSelection.collapsed(offset: _textController.text.length); + _textAccountAutocompletionService.autocompleteTextWithUsername( + _textController, foundAccountUsername); }); } diff --git a/lib/pages/home/pages/profile/profile.dart b/lib/pages/home/pages/profile/profile.dart index 678b0b06c..9c8aec1b6 100644 --- a/lib/pages/home/pages/profile/profile.dart +++ b/lib/pages/home/pages/profile/profile.dart @@ -3,19 +3,13 @@ import 'package:Okuna/models/user.dart'; import 'package:Okuna/pages/home/pages/profile/widgets/profile_card/profile_card.dart'; import 'package:Okuna/pages/home/pages/profile/widgets/profile_cover.dart'; import 'package:Okuna/pages/home/pages/profile/widgets/profile_nav_bar.dart'; -import 'package:Okuna/pages/home/pages/profile/widgets/profile_no_posts.dart'; -import 'package:Okuna/widgets/loadmore/loadmore_delegate.dart'; +import 'package:Okuna/pages/home/pages/profile/widgets/profile_posts_stream_status_indicator.dart'; import 'package:Okuna/provider.dart'; -import 'package:Okuna/services/httpie.dart'; -import 'package:Okuna/services/toast.dart'; import 'package:Okuna/services/user.dart'; -import 'package:Okuna/widgets/post/post.dart'; -import 'package:Okuna/widgets/progress_indicator.dart'; +import 'package:Okuna/widgets/posts_stream/posts_stream.dart'; import 'package:Okuna/widgets/theming/primary_color_container.dart'; -import 'package:async/async.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -import 'package:Okuna/widgets/load_more.dart'; class OBProfilePage extends StatefulWidget { final OBProfilePageController controller; @@ -35,48 +29,26 @@ class OBProfilePage extends StatefulWidget { class OBProfilePageState extends State { User _user; bool _needsBootstrap; - bool _morePostsToLoad; - List _posts; UserService _userService; - ToastService _toastService; - ScrollController _scrollController; - bool _refreshPostsInProgress; - - CancelableOperation _loadMoreOperation; - CancelableOperation _refreshUserOperation; - CancelableOperation _refreshPostsOperation; - - final GlobalKey _refreshIndicatorKey = - GlobalKey(); + OBPostsStreamController _obPostsStreamController; + bool _profileCommunityPostsVisible; @override void initState() { super.initState(); - _scrollController = ScrollController(); + _obPostsStreamController = OBPostsStreamController(); _needsBootstrap = true; - _morePostsToLoad = false; _user = widget.user; - _posts = []; - _refreshPostsInProgress = false; if (widget.controller != null) widget.controller.attach(this); - } - - @override - void dispose() { - super.dispose(); - if (_loadMoreOperation != null) _loadMoreOperation.cancel(); - if (_refreshUserOperation != null) _refreshUserOperation.cancel(); - if (_refreshPostsOperation != null) _refreshPostsOperation.cancel(); + _profileCommunityPostsVisible = + widget.user.getProfileCommunityPostsVisible(); } @override Widget build(BuildContext context) { - var openbookProvider = OpenbookProvider.of(context); - _userService = openbookProvider.userService; - _toastService = openbookProvider.toastService; - if (_needsBootstrap) { - _bootstrap(); + var openbookProvider = OpenbookProvider.of(context); + _userService = openbookProvider.userService; _needsBootstrap = false; } @@ -88,173 +60,66 @@ class OBProfilePageState extends State { mainAxisSize: MainAxisSize.max, children: [ Expanded( - child: RefreshIndicator( - key: _refreshIndicatorKey, - child: LoadMore( - whenEmptyLoad: false, - isFinish: !_morePostsToLoad, - delegate: OBHomePostsLoadMoreDelegate(), - child: ListView.builder( - controller: _scrollController, - physics: const ClampingScrollPhysics(), - padding: EdgeInsets.all(0), - itemCount: _posts.length + 1, - itemBuilder: (context, index) { - if (index == 0) { - Widget postsItem; - - if (_refreshPostsInProgress && _posts.isEmpty) { - postsItem = SizedBox( - child: Center( - child: Padding( - padding: EdgeInsets.only(top: 20), - child: OBProgressIndicator(), - ), - ), - ); - } else if (_posts.length == 0) { - postsItem = OBProfileNoPosts( - _user, - onWantsToRefreshProfile: _refresh, - ); - } else { - postsItem = const SizedBox( - height: 20, - ); - } - - return Column( - children: [ - OBProfileCover(_user), - OBProfileCard( - _user, - ), - postsItem - ], - ); - } - - int postIndex = index - 1; - - var post = _posts[postIndex]; - - return OBPost(post, - onPostDeleted: _onPostDeleted, - key: Key(post.id.toString())); - }), - onLoadMore: _loadMorePosts), - onRefresh: _refresh), + child: OBPostsStream( + streamIdentifier: 'profile_${widget.user.username}', + prependedItems: [ + OBProfileCover(_user), + OBProfileCard( + _user, + onUserProfileUpdated: _onUserProfileUpdated, + ), + ], + controller: _obPostsStreamController, + secondaryRefresher: _refreshUser, + refresher: _refreshPosts, + onScrollLoader: _loadMorePosts, + statusIndicatorBuilder: _buildPostsStreamStatusIndicator), ) ], ), )); } - void scrollToTop() { - if (_scrollController.offset == 0) { - _refreshIndicatorKey.currentState.show(); - } - - _scrollController.animateTo( - 0.0, - curve: Curves.easeOut, - duration: const Duration(milliseconds: 300), + Widget _buildPostsStreamStatusIndicator( + {BuildContext context, + OBPostsStreamStatus streamStatus, + List streamPrependedItems, + Function streamRefresher}) { + return OBProfilePostsStreamStatusIndicator( + user: widget.user, + streamRefresher: streamRefresher, + streamPrependedItems: streamPrependedItems, + streamStatus: streamStatus ); } - void _bootstrap() async { - await _refresh(); + void _onUserProfileUpdated() { + if (_profileCommunityPostsVisible != + _user.getProfileCommunityPostsVisible()) { + _refreshPosts(); + } } - Future _refresh() async { - try { - await Future.wait([_refreshUser(), _refreshPosts()]); - } catch (error) { - _onError(error); - } + void scrollToTop() { + _obPostsStreamController.scrollToTop(); } Future _refreshUser() async { - if (_refreshUserOperation != null) _refreshUserOperation.cancel(); - try { - _refreshUserOperation = CancelableOperation.fromFuture( - _userService.getUserWithUsername(_user.username)); - var user = await _refreshUserOperation.value; - _setUser(user); - } catch (error) { - _onError(error); - } finally { - _refreshUserOperation = null; - } + var user = await _userService.getUserWithUsername(_user.username); + _setUser(user); } - Future _refreshPosts() async { - if (_refreshPostsOperation != null) _refreshPostsOperation.cancel(); - _setRefreshPostsInProgress(true); - - try { - _refreshPostsOperation = CancelableOperation.fromFuture( - _userService.getTimelinePosts(username: _user.username)); - _posts = (await _refreshPostsOperation.value).posts; - _setPosts(_posts); - _setMorePostsToLoad(true); - } catch (error) { - _onError(error); - } finally { - _setRefreshPostsInProgress(false); - _refreshPostsOperation = null; - } + Future> _refreshPosts() async { + return (await _userService.getTimelinePosts(username: _user.username)) + .posts; } - Future _loadMorePosts() async { - if (_loadMoreOperation != null) _loadMoreOperation.cancel(); - - var lastPostId; - if (_posts.isNotEmpty) { - Post lastPost = _posts.last; - lastPostId = lastPost.id; - } - - try { - _loadMoreOperation = CancelableOperation.fromFuture(_userService - .getTimelinePosts(maxId: lastPostId, username: _user.username)); + Future> _loadMorePosts(List posts) async { + Post lastPost = posts.last; - var morePosts = (await _loadMoreOperation.value).posts; - - if (morePosts.length == 0) { - _setMorePostsToLoad(false); - } else { - setState(() { - _posts.addAll(morePosts); - }); - } - return true; - } catch (error) { - _onError(error); - } finally { - _loadMoreOperation = null; - } - - return false; - } - - void _onPostDeleted(Post deletedPost) { - setState(() { - _posts.remove(deletedPost); - }); - } - - void _onError(error) async { - if (error is HttpieConnectionRefusedError) { - _toastService.error( - message: error.toHumanReadableMessage(), context: context); - } else if (error is HttpieRequestError) { - String errorMessage = await error.toHumanReadableMessage(); - _toastService.error(message: errorMessage, context: context); - } else { - _toastService.error(message: 'Unknown error', context: context); - throw error; - } + return (await _userService.getTimelinePosts( + maxId: lastPost.id, username: _user.username)) + .posts; } void _setUser(User user) { @@ -262,24 +127,6 @@ class OBProfilePageState extends State { _user = user; }); } - - void _setPosts(List posts) { - setState(() { - _posts = posts; - }); - } - - void _setMorePostsToLoad(bool morePostsToLoad) { - setState(() { - _morePostsToLoad = morePostsToLoad; - }); - } - - void _setRefreshPostsInProgress(bool refreshPostsInProgress) { - setState(() { - _refreshPostsInProgress = refreshPostsInProgress; - }); - } } class OBProfilePageController { diff --git a/lib/pages/home/pages/profile/widgets/profile_card/profile_card.dart b/lib/pages/home/pages/profile/widgets/profile_card/profile_card.dart index b7a631ace..dda3bca7f 100644 --- a/lib/pages/home/pages/profile/widgets/profile_card/profile_card.dart +++ b/lib/pages/home/pages/profile/widgets/profile_card/profile_card.dart @@ -18,8 +18,10 @@ import 'package:flutter/material.dart'; class OBProfileCard extends StatelessWidget { final User user; + final VoidCallback onUserProfileUpdated; + + const OBProfileCard(this.user, {Key key, this.onUserProfileUpdated}) : super(key: key); - OBProfileCard(this.user); @override Widget build(BuildContext context) { @@ -42,7 +44,7 @@ class OBProfileCard extends StatelessWidget { height: (OBAvatar.AVATAR_SIZE_EXTRA_LARGE * 0.2), width: OBAvatar.AVATAR_SIZE_EXTRA_LARGE, ), - Expanded(child: OBProfileActions(user)), + Expanded(child: OBProfileActions(user, onUserProfileUpdated: onUserProfileUpdated,)), ], ), Column( diff --git a/lib/pages/home/pages/profile/widgets/profile_card/widgets/profile_actions/profile_actions.dart b/lib/pages/home/pages/profile/widgets/profile_card/widgets/profile_actions/profile_actions.dart index d7fd2d20d..c3854b432 100644 --- a/lib/pages/home/pages/profile/widgets/profile_card/widgets/profile_actions/profile_actions.dart +++ b/lib/pages/home/pages/profile/widgets/profile_card/widgets/profile_actions/profile_actions.dart @@ -10,8 +10,9 @@ import 'package:flutter/material.dart'; class OBProfileActions extends StatelessWidget { final User user; + final VoidCallback onUserProfileUpdated; - OBProfileActions(this.user); + const OBProfileActions(this.user, {@required this.onUserProfileUpdated}); @override Widget build(BuildContext context) { @@ -67,7 +68,7 @@ class OBProfileActions extends StatelessWidget { style: TextStyle(fontWeight: FontWeight.bold), ), onPressed: () { - modalService.openEditUserProfile(user: user, context: context); + modalService.openEditUserProfile(user: user, context: context, onUserProfileUpdated: onUserProfileUpdated); }); } } diff --git a/lib/pages/home/pages/profile/widgets/profile_no_posts.dart b/lib/pages/home/pages/profile/widgets/profile_no_posts.dart deleted file mode 100644 index 7022177f8..000000000 --- a/lib/pages/home/pages/profile/widgets/profile_no_posts.dart +++ /dev/null @@ -1,31 +0,0 @@ -import 'package:Okuna/models/user.dart'; -import 'package:Okuna/provider.dart'; -import 'package:Okuna/services/localization.dart'; -import 'package:Okuna/services/user.dart'; -import 'package:Okuna/widgets/alerts/button_alert.dart'; -import 'package:Okuna/widgets/icon.dart'; -import 'package:flutter/material.dart'; - -class OBProfileNoPosts extends StatelessWidget { - final User user; - final VoidCallback onWantsToRefreshProfile; - - OBProfileNoPosts(this.user, {@required this.onWantsToRefreshProfile}); - - @override - Widget build(BuildContext context) { - var provider = OpenbookProvider.of(context); - UserService _userService = provider.userService; - bool isLoggedInUser = _userService.isLoggedInUser(user); - LocalizationService localizationService = provider.localizationService; - String name = user.getProfileName(); - - return OBButtonAlert( - text: isLoggedInUser ? localizationService.post__have_not_shared_anything: localizationService.post__user_has_not_shared_anything(name), - onPressed: onWantsToRefreshProfile, - buttonText: localizationService.post__trending_posts_refresh, - buttonIcon: OBIcons.refresh, - assetImage: 'assets/images/stickers/perplexed-owl.png', - ); - } -} diff --git a/lib/pages/home/pages/profile/widgets/profile_posts_stream_status_indicator.dart b/lib/pages/home/pages/profile/widgets/profile_posts_stream_status_indicator.dart new file mode 100644 index 000000000..153467ef6 --- /dev/null +++ b/lib/pages/home/pages/profile/widgets/profile_posts_stream_status_indicator.dart @@ -0,0 +1,72 @@ +import 'package:Okuna/models/user.dart'; +import 'package:Okuna/provider.dart'; +import 'package:Okuna/services/localization.dart'; +import 'package:Okuna/services/user.dart'; +import 'package:Okuna/widgets/alerts/button_alert.dart'; +import 'package:Okuna/widgets/icon.dart'; +import 'package:Okuna/widgets/posts_stream/posts_stream.dart'; +import 'package:Okuna/widgets/tiles/loading_indicator_tile.dart'; +import 'package:Okuna/widgets/tiles/retry_tile.dart'; +import 'package:flutter/material.dart'; + +class OBProfilePostsStreamStatusIndicator extends StatelessWidget { + final User user; + final VoidCallback streamRefresher; + final OBPostsStreamStatus streamStatus; + final List streamPrependedItems; + + OBProfilePostsStreamStatusIndicator({ + @required this.streamRefresher, + this.streamStatus, + this.streamPrependedItems, + this.user, + }); + + @override + Widget build(BuildContext context) { + Widget statusIndicator; + + switch (streamStatus) { + case OBPostsStreamStatus.loadingMore: + case OBPostsStreamStatus.refreshing: + statusIndicator = const Padding( + padding: const EdgeInsets.all(20), + child: const OBLoadingIndicatorTile(), + ); + break; + case OBPostsStreamStatus.empty: + statusIndicator = _buildEmptyIndicator(context); + break; + case OBPostsStreamStatus.loadingMoreFailed: + var provider = OpenbookProvider.of(context); + statusIndicator = OBRetryTile( + text: provider.localizationService.post__profile_retry_loading_posts, + onWantsToRetry: streamRefresher, + ); + break; + default: + statusIndicator = const SizedBox(); + } + + return statusIndicator; + } + + Widget _buildEmptyIndicator(BuildContext context) { + var provider = OpenbookProvider.of(context); + UserService _userService = provider.userService; + bool isLoggedInUser = _userService.isLoggedInUser(user); + + LocalizationService localizationService = provider.localizationService; + String name = user.getProfileName(); + + return OBButtonAlert( + text: isLoggedInUser + ? localizationService.post__have_not_shared_anything + : localizationService.post__user_has_not_shared_anything(name), + onPressed: streamRefresher, + buttonText: localizationService.post__trending_posts_refresh, + buttonIcon: OBIcons.refresh, + assetImage: 'assets/images/stickers/perplexed-owl.png', + ); + } +} diff --git a/lib/pages/home/pages/search/search.dart b/lib/pages/home/pages/search/search.dart index 422c3dbd2..37a78b06c 100644 --- a/lib/pages/home/pages/search/search.dart +++ b/lib/pages/home/pages/search/search.dart @@ -12,6 +12,7 @@ import 'package:Okuna/provider.dart'; import 'package:Okuna/services/httpie.dart'; import 'package:Okuna/services/toast.dart'; import 'package:Okuna/services/user.dart'; +import 'package:Okuna/widgets/page_scaffold.dart'; import 'package:Okuna/widgets/search_bar.dart'; import 'package:Okuna/widgets/theming/primary_color_container.dart'; import 'package:flutter/cupertino.dart'; @@ -90,7 +91,7 @@ class OBMainSearchPageState extends State { ); } - return CupertinoPageScaffold( + return OBCupertinoPageScaffold( backgroundColor: Colors.white, child: OBPrimaryColorContainer( child: Column( diff --git a/lib/pages/home/pages/search/widgets/trending_posts.dart b/lib/pages/home/pages/search/widgets/trending_posts.dart index 3648040f1..3573af202 100644 --- a/lib/pages/home/pages/search/widgets/trending_posts.dart +++ b/lib/pages/home/pages/search/widgets/trending_posts.dart @@ -9,6 +9,7 @@ import 'package:Okuna/services/user.dart'; import 'package:Okuna/widgets/alerts/button_alert.dart'; import 'package:Okuna/widgets/icon.dart'; import 'package:Okuna/widgets/post/post.dart'; +import 'package:Okuna/widgets/posts_stream/posts_stream.dart'; import 'package:Okuna/widgets/theming/primary_accent_text.dart'; import 'package:async/async.dart'; import 'package:flutter/material.dart'; @@ -28,30 +29,17 @@ class OBTrendingPosts extends StatefulWidget { class OBTrendingPostsState extends State { UserService _userService; - ToastService _toastService; LocalizationService _localizationService; - List _posts; - bool _needsBootstrap; - bool _refreshInProgress; - bool _wasBootstrapped; - CancelableOperation _getTrendingPostsOperation; - final GlobalKey _refreshIndicatorKey = - new GlobalKey(); - - ScrollController _scrollController; + OBPostsStreamController _obPostsStreamController; @override void initState() { super.initState(); + _obPostsStreamController = OBPostsStreamController(); if (widget.controller != null) widget.controller.attach(this); - _needsBootstrap = true; - _posts = []; - _scrollController = ScrollController(); - _refreshInProgress = false; - _wasBootstrapped = false; } @override @@ -60,134 +48,44 @@ class OBTrendingPostsState extends State { if (_getTrendingPostsOperation != null) _getTrendingPostsOperation.cancel(); } + Future refresh() { + return _obPostsStreamController.refreshPosts(); + } + + void scrollToTop() { + _obPostsStreamController.scrollToTop(); + } + @override Widget build(BuildContext context) { var openbookProvider = OpenbookProvider.of(context); _userService = openbookProvider.userService; - _toastService = openbookProvider.toastService; _localizationService = openbookProvider.localizationService; - if (_needsBootstrap) { - _bootstrap(); - _needsBootstrap = false; - } - return RefreshIndicator( - key: _refreshIndicatorKey, - displacement: 60, - child: _posts.isEmpty && !_refreshInProgress && !_wasBootstrapped - ? _buildNoTrendingPostsAlert() - : ListView.builder( - controller: _scrollController, - physics: const ClampingScrollPhysics(), - padding: const EdgeInsets.all(0), - itemCount: _posts.length + 1, - itemBuilder: (BuildContext context, int index) { - if (index == 0) { - return Padding( - padding: const EdgeInsets.symmetric( - horizontal: 20, vertical: 10), - child: OBPrimaryAccentText(_localizationService.post__trending_posts_title, - style: TextStyle( - fontWeight: FontWeight.bold, fontSize: 24)), - ); - } - - Post post = _posts[index - 1]; - - return OBPost( - post, - key: Key(post.id.toString()), - onPostDeleted: _onPostDeleted, - ); - }), - onRefresh: refresh, - ); - } - - Widget _buildNoTrendingPostsAlert() { - return Column( - children: [ - OBButtonAlert( - text: - _localizationService.post__trending_posts_no_trending_posts, - onPressed: refresh, - buttonText: _localizationService.post__trending_posts_refresh, - buttonIcon: OBIcons.refresh, - assetImage: 'assets/images/stickers/perplexed-owl.png', + return OBPostsStream( + streamIdentifier: 'trendingPosts', + refresher: _postsStreamRefresher, + onScrollLoader: _postsStreamOnScrollLoader, + controller: _obPostsStreamController, + prependedItems: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 10), + child: OBPrimaryAccentText( + _localizationService.post__trending_posts_title, + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 24)), ) ], ); } - void _bootstrap() { - Future.delayed(Duration(milliseconds: 0), () { - _refreshIndicatorKey.currentState.show(); - setState(() { - _wasBootstrapped = true; - }); - }); - } - - void _onPostDeleted(Post post) { - setState(() { - _posts.remove(post); - }); - } - - void scrollToTop() { - if (_scrollController.hasClients) { - if (_scrollController.offset == 0) { - _refreshIndicatorKey.currentState.show(); - } - - _scrollController.animateTo( - 0.0, - curve: Curves.easeOut, - duration: const Duration(milliseconds: 300), - ); - } - } - - Future refresh() async { - _setRefreshInProgress(true); - - try { - _getTrendingPostsOperation = - CancelableOperation.fromFuture(_userService.getTrendingPosts()); - - PostsList postsList = await _getTrendingPostsOperation.value; - _setPosts(postsList.posts); - - } catch (error) { - _onError(error); - } finally { - _setRefreshInProgress(false); - } - } - - void _onError(error) async { - if (error is HttpieConnectionRefusedError) { - _toastService.error( - message: error.toHumanReadableMessage(), context: context); - } else if (error is HttpieRequestError) { - String errorMessage = await error.toHumanReadableMessage(); - _toastService.error(message: errorMessage, context: context); - } else { - _toastService.error(message: _localizationService.error__unknown_error, context: context); - throw error; - } - } + Future> _postsStreamRefresher() async { + List posts = (await _userService.getTrendingPosts()).posts; - void _setPosts(List posts) { - setState(() { - _posts = posts; - }); + return posts; } - void _setRefreshInProgress(refreshInProgress) { - setState(() { - _refreshInProgress = refreshInProgress; - }); + Future> _postsStreamOnScrollLoader(List posts) async { + return []; } } diff --git a/lib/pages/home/pages/timeline/timeline.dart b/lib/pages/home/pages/timeline/timeline.dart index 24c1cf38d..f8844f33b 100644 --- a/lib/pages/home/pages/timeline/timeline.dart +++ b/lib/pages/home/pages/timeline/timeline.dart @@ -1,10 +1,15 @@ +import 'dart:async'; +import 'dart:io'; + import 'package:Okuna/models/circle.dart'; import 'package:Okuna/models/follows_list.dart'; import 'package:Okuna/models/post.dart'; +import 'package:Okuna/models/user.dart'; import 'package:Okuna/pages/home/lib/poppable_page_controller.dart'; -import 'package:Okuna/pages/home/pages/timeline/widgets/timeline-posts.dart'; import 'package:Okuna/provider.dart'; +import 'package:Okuna/services/localization.dart'; import 'package:Okuna/services/modal_service.dart'; +import 'package:Okuna/services/user.dart'; import 'package:Okuna/widgets/badges/badge.dart'; import 'package:Okuna/widgets/buttons/button.dart'; import 'package:Okuna/widgets/buttons/floating_action_button.dart'; @@ -12,6 +17,8 @@ import 'package:Okuna/widgets/icon.dart'; import 'package:Okuna/widgets/icon_button.dart'; import 'package:Okuna/widgets/nav_bars/themed_nav_bar.dart'; import 'package:Okuna/widgets/page_scaffold.dart'; +import 'package:Okuna/widgets/new_post_data_uploader.dart'; +import 'package:Okuna/widgets/posts_stream/posts_stream.dart'; import 'package:Okuna/widgets/theming/primary_color_container.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; @@ -30,20 +37,57 @@ class OBTimelinePage extends StatefulWidget { } class OBTimelinePageState extends State { - OBTimelinePostsController _timelinePostsController; + OBPostsStreamController _timelinePostsStreamController; ModalService _modalService; + UserService _userService; + LocalizationService _localizationService; + + List _initialPosts; + List _newPostsData; + List _filteredCircles; + List _filteredFollowsLists; + + StreamSubscription _loggedInUserChangeSubscription; + + bool _needsBootstrap; + bool _loggedInUserBootstrapped; @override void initState() { super.initState(); - _timelinePostsController = OBTimelinePostsController(); + _timelinePostsStreamController = OBPostsStreamController(); widget.controller.attach(context: context, state: this); + _needsBootstrap = true; + _loggedInUserBootstrapped = false; + _filteredCircles = []; + _filteredFollowsLists = []; + _newPostsData = []; + } + + @override + void dispose() { + super.dispose(); + _loggedInUserChangeSubscription.cancel(); + } + + void _bootstrap() async { + _loggedInUserChangeSubscription = + _userService.loggedInUserChange.listen(_onLoggedInUserChange); } @override Widget build(BuildContext context) { - var openbookProvider = OpenbookProvider.of(context); - _modalService = openbookProvider.modalService; + if (_needsBootstrap) { + var openbookProvider = OpenbookProvider.of(context); + _modalService = openbookProvider.modalService; + _localizationService = + openbookProvider.localizationService; + _userService = openbookProvider.userService; + _bootstrap(); + _needsBootstrap = false; + } + + return OBCupertinoPageScaffold( navigationBar: OBThemedNavigationBar( @@ -51,33 +95,52 @@ class OBTimelinePageState extends State { child: OBPrimaryColorContainer( child: Stack( children: [ - OBTimelinePosts( - controller: _timelinePostsController, - ), + _loggedInUserBootstrapped + ? OBPostsStream( + controller: _timelinePostsStreamController, + prependedItems: _buildPostsStreamPrependedItems(), + streamIdentifier: 'timeline', + onScrollLoader: _postsStreamOnScrollLoader, + refresher: _postsStreamRefresher, + initialPosts: _initialPosts, + ) + : const SizedBox(), Positioned( bottom: 20.0, right: 20.0, - child: OBFloatingActionButton( - type: OBButtonType.primary, - onPressed: () async { - Post createdPost = await _modalService.openCreatePost( - context: context); - if (createdPost != null) { - _timelinePostsController.addPostToTop(createdPost); - _timelinePostsController.scrollToTop(); - } - }, - child: const OBIcon(OBIcons.createPost, - size: OBIconSize.large, color: Colors.white))) + child: Semantics( + button: true, + label: _localizationService.post__create_new_post_label, + child: OBFloatingActionButton( + type: OBButtonType.primary, + onPressed: _onCreatePost, + child: const OBIcon(OBIcons.createPost, + size: OBIconSize.large, color: Colors.white)))) ], ), )); } + List _buildPostsStreamPrependedItems() { + return _buildNewPostDataUploaders(); + } + + List _buildNewPostDataUploaders() { + return _newPostsData.map(_buildNewPostDataUploader).toList(); + } + + Widget _buildNewPostDataUploader(OBNewPostData newPostData) { + return OBNewPostDataUploader( + key: Key(newPostData.getUniqueKey()), + data: newPostData, + onPostPublished: _onNewPostDataUploaderPostPublished, + onCancelled: _onNewPostDataUploaderCancelled, + ); + } + Widget _buildFiltersButton() { - int filtersCount = _timelinePostsController.isAttached() - ? _timelinePostsController.countFilters() - : 0; + int filtersCount = countFilters(); + return Row( mainAxisSize: MainAxisSize.min, children: [ @@ -96,8 +159,106 @@ class OBTimelinePageState extends State { ); } + void _onLoggedInUserChange(User newUser) async { + if (newUser == null) return; + List initialPosts = (await _userService.getStoredFirstPosts()).posts; + setState(() { + _loggedInUserBootstrapped = true; + _initialPosts = initialPosts; + _loggedInUserChangeSubscription.cancel(); + }); + } + + Future> _postsStreamRefresher() async { + bool cachePosts = _filteredCircles.isEmpty && _filteredFollowsLists.isEmpty; + + List posts = (await _userService.getTimelinePosts( + count: 10, + circles: _filteredCircles, + followsLists: _filteredFollowsLists, + cachePosts: cachePosts)) + .posts; + + return posts; + } + + Future> _postsStreamOnScrollLoader(List posts) async { + Post lastPost = posts.last; + int lastPostId = lastPost.id; + + List morePosts = (await _userService.getTimelinePosts( + maxId: lastPostId, + circles: _filteredCircles, + count: 10, + followsLists: _filteredFollowsLists)) + .posts; + + return morePosts; + } + + Future _onCreatePost({String text, File image, File video}) async { + OBNewPostData createPostData = await _modalService + .openCreatePost(text: text, image: image, video: video, context: context); + if (createPostData != null) { + addNewPostData(createPostData); + _timelinePostsStreamController.scrollToTop( + skipRefresh: true); + + return true; + } + + return false; + } + + Future setFilters( + {List circles, List followsLists}) async { + _filteredCircles = circles; + _filteredFollowsLists = followsLists; + return _timelinePostsStreamController.refreshPosts(); + } + + Future clearFilters() { + _filteredCircles = []; + _filteredFollowsLists = []; + return _timelinePostsStreamController.refreshPosts(); + } + + List getFilteredCircles() { + return _filteredCircles.toList(); + } + + List getFilteredFollowsLists() { + return _filteredFollowsLists.toList(); + } + + int countFilters() { + return _filteredCircles.length + _filteredFollowsLists.length; + } + + void _onNewPostDataUploaderCancelled(OBNewPostData newPostData) { + _removeNewPostData(newPostData); + } + + void _onNewPostDataUploaderPostPublished( + Post publishedPost, OBNewPostData newPostData) { + _timelinePostsStreamController.addPostToTop(publishedPost); + _removeNewPostData(newPostData); + } + + void addNewPostData(OBNewPostData postUploaderData) { + setState(() { + this._newPostsData.insert(0, postUploaderData); + }); + } + + void _removeNewPostData(OBNewPostData postUploaderData) { + setState(() { + this._newPostsData.remove(postUploaderData); + }); + } + void scrollToTop() { - _timelinePostsController.scrollToTop(); + _timelinePostsStreamController.scrollToTop(); } void _onWantsFilters() { @@ -116,22 +277,24 @@ class OBTimelinePageController extends PoppablePageController { Future setPostFilters( {List circles, List followsLists}) async { - return _state._timelinePostsController - .setFilters(circles: circles, followsLists: followsLists); + return _state.setFilters(circles: circles, followsLists: followsLists); } Future clearPostFilters( {List circles, List followsLists}) async { - return _state._timelinePostsController - .setFilters(circles: circles, followsLists: followsLists); + return _state.setFilters(circles: circles, followsLists: followsLists); } List getFilteredCircles() { - return _state._timelinePostsController.getFilteredCircles(); + return _state.getFilteredCircles(); } List getFilteredFollowsLists() { - return _state._timelinePostsController.getFilteredFollowsLists(); + return _state.getFilteredFollowsLists(); + } + + Future createPost({String text, File image, File video}) { + return _state._onCreatePost(text: text, image: image, video: video); } void scrollToTop() { diff --git a/lib/pages/home/pages/timeline/widgets/filters_button.dart b/lib/pages/home/pages/timeline/widgets/filters_button.dart deleted file mode 100644 index 81d29e54d..000000000 --- a/lib/pages/home/pages/timeline/widgets/filters_button.dart +++ /dev/null @@ -1,17 +0,0 @@ - -import 'package:flutter/material.dart'; - -class OBFiltersButton extends StatefulWidget{ - @override - State createState() { - return null; - } -} - -class OBFiltersButtonState extends State{ - @override - Widget build(BuildContext context) { - // TODO: implement build - return null; - } -} diff --git a/lib/pages/home/pages/timeline/widgets/timeline-posts.dart b/lib/pages/home/pages/timeline/widgets/timeline-posts.dart deleted file mode 100644 index 3493091d3..000000000 --- a/lib/pages/home/pages/timeline/widgets/timeline-posts.dart +++ /dev/null @@ -1,489 +0,0 @@ -import 'dart:async'; - -import 'package:Okuna/models/circle.dart'; -import 'package:Okuna/models/follows_list.dart'; -import 'package:Okuna/models/post.dart'; -import 'package:Okuna/models/posts_list.dart'; -import 'package:Okuna/models/user.dart'; -import 'package:Okuna/provider.dart'; -import 'package:Okuna/services/httpie.dart'; -import 'package:Okuna/services/localization.dart'; -import 'package:Okuna/services/toast.dart'; -import 'package:Okuna/services/user.dart'; -import 'package:Okuna/widgets/buttons/button.dart'; -import 'package:Okuna/widgets/icon.dart'; -import 'package:Okuna/widgets/post/post.dart'; -import 'package:Okuna/widgets/theming/secondary_text.dart'; -import 'package:Okuna/widgets/theming/text.dart'; -import 'package:Okuna/widgets/tiles/loading_indicator_tile.dart'; -import 'package:Okuna/widgets/tiles/retry_tile.dart'; -import 'package:async/async.dart'; -import 'package:flutter/material.dart'; - -class OBTimelinePosts extends StatefulWidget { - final OBTimelinePostsController controller; - - const OBTimelinePosts({ - this.controller, - }); - - @override - OBTimelinePostsState createState() { - return OBTimelinePostsState(); - } -} - -class OBTimelinePostsState extends State { - List _posts; - List _filteredCircles; - List _filteredFollowsLists; - bool _needsBootstrap; - bool _cacheLoadAttempted; - bool _isFirstLoad; - UserService _userService; - ToastService _toastService; - StreamSubscription _loggedInUserChangeSubscription; - LocalizationService _localizationService; - ScrollController _postsScrollController; - - final GlobalKey _refreshIndicatorKey = - GlobalKey(); - - OBTimelinePostsStatus _status; - CancelableOperation _timelineRequest; - - @override - void initState() { - super.initState(); - if (widget.controller != null) widget.controller.attach(this); - _posts = []; - _filteredCircles = []; - _filteredFollowsLists = []; - _needsBootstrap = true; - _cacheLoadAttempted = false; - _isFirstLoad = true; - _status = OBTimelinePostsStatus.refreshingPosts; - _postsScrollController = ScrollController(); - _postsScrollController.addListener(_onScroll); - } - - @override - void dispose() { - super.dispose(); - _loggedInUserChangeSubscription.cancel(); - _postsScrollController.removeListener(_onScroll); - } - - @override - Widget build(BuildContext context) { - if (_needsBootstrap) { - var provider = OpenbookProvider.of(context); - _userService = provider.userService; - _toastService = provider.toastService; - _localizationService = provider.localizationService; - _bootstrap(); - _needsBootstrap = false; - } - - Widget timelinePostsWidget = _posts.isEmpty && _cacheLoadAttempted - ? _buildDrHoo() - : _buildTimelinePosts(); - - return RefreshIndicator( - key: _refreshIndicatorKey, - onRefresh: _refreshPosts, - child: timelinePostsWidget, - ); - } - - Widget _buildTimelinePosts() { - return ListView.builder( - controller: _postsScrollController, - physics: const ClampingScrollPhysics(), - cacheExtent: 30, - padding: const EdgeInsets.all(0), - itemCount: _posts.length, - itemBuilder: _buildTimelinePost); - } - - Widget _buildTimelinePost(BuildContext context, int index) { - Post post = _posts[index]; - - OBPost postWidget = OBPost( - post, - onPostDeleted: _onPostDeleted, - key: Key( - post.id.toString(), - ), - ); - - bool isLastItem = index == _posts.length - 1; - - if (isLastItem && _status != OBTimelinePostsStatus.idle) { - switch (_status) { - case OBTimelinePostsStatus.loadingMorePosts: - return Column( - mainAxisSize: MainAxisSize.min, - children: [ - postWidget, - OBLoadingIndicatorTile(), - ], - ); - break; - case OBTimelinePostsStatus.loadingMorePostsFailed: - return Column( - mainAxisSize: MainAxisSize.min, - children: [ - postWidget, - OBRetryTile( - onWantsToRetry: _loadMorePosts, - ), - ], - ); - break; - case OBTimelinePostsStatus.noMorePostsToLoad: - return Column( - mainAxisSize: MainAxisSize.min, - children: [ - postWidget, - ListTile( - title: OBSecondaryText( - _localizationService.post__timeline_posts_all_loaded, - textAlign: TextAlign.center, - ), - ), - ], - ); - default: - } - } - - return postWidget; - } - - Widget _buildDrHoo() { - String drHooTitle; - String drHooSubtitle; - bool hasRefreshButton = !_isFirstLoad; - Function refreshFunction = _refreshPosts; - - switch (_status) { - case OBTimelinePostsStatus.refreshingPosts: - drHooTitle = _localizationService.post__timeline_posts_refreshing_drhoo_title; - drHooSubtitle = _localizationService.post__timeline_posts_refreshing_drhoo_subtitle; - break; - case OBTimelinePostsStatus.noMorePostsToLoad: - drHooTitle = _localizationService.post__timeline_posts_no_more_drhoo_title; - drHooSubtitle = _localizationService.post__timeline_posts_no_more_drhoo_subtitle; - break; - case OBTimelinePostsStatus.loadingMorePostsFailed: - drHooTitle = _localizationService.post__timeline_posts_failed_drhoo_title; - drHooSubtitle = _localizationService.post__timeline_posts_failed_drhoo_subtitle; - refreshFunction = _bootstrapPosts; - hasRefreshButton = true; - break; - default: - drHooTitle =_localizationService.post__timeline_posts_default_drhoo_title; - drHooSubtitle = _localizationService.post__timeline_posts_default_drhoo_subtitle; - hasRefreshButton = true; - } - - List drHooColumnItems = [ - Image.asset( - 'assets/images/stickers/owl-instructor.png', - height: 100, - ), - const SizedBox( - height: 20.0, - ), - OBText( - drHooTitle, - style: TextStyle( - fontWeight: FontWeight.bold, - fontSize: 18.0, - ), - textAlign: TextAlign.center, - ), - const SizedBox( - height: 10.0, - ), - OBText( - drHooSubtitle, - textAlign: TextAlign.center, - ) - ]; - - if (hasRefreshButton) { - drHooColumnItems.addAll([ - const SizedBox( - height: 30, - ), - OBButton( - icon: const OBIcon( - OBIcons.refresh, - size: OBIconSize.small, - ), - type: OBButtonType.highlight, - child: OBText(_localizationService.post__timeline_posts_refresh_posts), - onPressed: refreshFunction, - isLoading: _timelineRequest != null, - ) - ]); - } - - return SizedBox( - child: Center( - child: ConstrainedBox( - constraints: BoxConstraints(maxWidth: 200), - child: Column( - mainAxisAlignment: MainAxisAlignment.center, - children: drHooColumnItems, - ), - ), - ), - ); - } - - void scrollToTop() { - if (_postsScrollController.hasClients) { - if (_postsScrollController.offset == 0) { - _refreshIndicatorKey.currentState.show(); - } - - _postsScrollController.animateTo( - 0.0, - curve: Curves.easeOut, - duration: const Duration(milliseconds: 300), - ); - } - } - - void addPostToTop(Post post) { - setState(() { - this._posts.insert(0, post); - }); - } - - Future setFilters( - {List circles, List followsLists}) async { - _filteredCircles = circles; - _filteredFollowsLists = followsLists; - return _refreshPosts(); - } - - Future clearFilters() { - _filteredCircles = []; - _filteredFollowsLists = []; - return _refreshPosts(); - } - - List getFilteredCircles() { - return _filteredCircles.toList(); - } - - List getFilteredFollowsLists() { - return _filteredFollowsLists.toList(); - } - - void _bootstrap() async { - _loggedInUserChangeSubscription = - _userService.loggedInUserChange.listen(_onLoggedInUserChange); - } - - void _onScroll() { - if (_status == OBTimelinePostsStatus.loadingMorePosts || - _status == OBTimelinePostsStatus.noMorePostsToLoad) return; - if (_postsScrollController.position.pixels > - _postsScrollController.position.maxScrollExtent * 0.1) { - _loadMorePosts(); - } - } - - void _cancelPreviousTimelineRequest() { - if (_timelineRequest != null) { - _timelineRequest.cancel(); - _timelineRequest = null; - } - } - - void _onLoggedInUserChange(User newUser) async { - if (newUser == null) return; - _bootstrapPosts(); - _loggedInUserChangeSubscription.cancel(); - } - - Future _bootstrapPosts() async { - PostsList storedPosts = await _userService.getStoredFirstPosts(); - if (storedPosts.posts != null) _setPosts(storedPosts.posts); - _setCacheLoadAttempted(true); - _refreshIndicatorKey.currentState.show(); - } - - Future _refreshPosts() async { - _cancelPreviousTimelineRequest(); - _setStatus(OBTimelinePostsStatus.refreshingPosts); - try { - bool areFirstPosts = _isFirstLoad; - bool cachePosts = - _filteredCircles.isEmpty && _filteredFollowsLists.isEmpty; - - Future postsListFuture = _userService.getTimelinePosts( - count: 10, - circles: _filteredCircles, - followsLists: _filteredFollowsLists, - cachePosts: cachePosts, - areFirstPosts: areFirstPosts); - - _timelineRequest = CancelableOperation.fromFuture(postsListFuture); - - List posts = (await postsListFuture).posts; - - if (_isFirstLoad) _isFirstLoad = false; - - if (posts.length == 0) { - _setStatus(OBTimelinePostsStatus.noMorePostsToLoad); - } else { - _setStatus(OBTimelinePostsStatus.idle); - } - _setPosts(posts); - } catch (error) { - _setStatus(OBTimelinePostsStatus.loadingMorePostsFailed); - _onError(error); - } finally { - _timelineRequest = null; - } - } - - Future _loadMorePosts() async { - if (_status == OBTimelinePostsStatus.refreshingPosts || - _status == OBTimelinePostsStatus.noMorePostsToLoad) return null; - _cancelPreviousTimelineRequest(); - _setStatus(OBTimelinePostsStatus.loadingMorePosts); - - var lastPost = _posts.last; - var lastPostId = lastPost.id; - try { - Future morePostsListFuture = _userService.getTimelinePosts( - maxId: lastPostId, - circles: _filteredCircles, - count: 10, - followsLists: _filteredFollowsLists); - - _timelineRequest = CancelableOperation.fromFuture(morePostsListFuture); - - List morePosts = (await morePostsListFuture).posts; - - if (morePosts.length == 0) { - _setStatus(OBTimelinePostsStatus.noMorePostsToLoad); - } else { - _setStatus(OBTimelinePostsStatus.idle); - _addPosts(morePosts); - } - } catch (error) { - _setStatus(OBTimelinePostsStatus.loadingMorePostsFailed); - _onError(error); - } finally { - _timelineRequest = null; - } - } - - void _onPostDeleted(Post deletedPost) { - setState(() { - _posts.remove(deletedPost); - }); - } - - void _onError(error) async { - if (error is HttpieConnectionRefusedError) { - _toastService.error( - message: error.toHumanReadableMessage(), context: context); - } else if (error is HttpieRequestError) { - String errorMessage = await error.toHumanReadableMessage(); - _toastService.error(message: errorMessage, context: context); - } else { - _toastService.error(message: _localizationService.error__unknown_error, context: context); - throw error; - } - } - - void _setPosts(List posts) { - setState(() { - _posts = posts; - }); - } - - void _addPosts(List posts) { - setState(() { - _posts.addAll(posts); - }); - } - - void _setStatus(OBTimelinePostsStatus status) { - setState(() { - _status = status; - }); - } - - void _setCacheLoadAttempted(bool cacheLoadAttempted) { - setState(() { - _cacheLoadAttempted = cacheLoadAttempted; - }); - } -} - -class OBTimelinePostsController { - OBTimelinePostsState _homePostsState; - - /// Register the OBHomePostsState to the controller - void attach(OBTimelinePostsState homePostsState) { - assert(homePostsState != null, 'Cannot attach to empty state'); - _homePostsState = homePostsState; - } - - void addPostToTop(Post post) { - _homePostsState.addPostToTop(post); - } - - void scrollToTop() { - _homePostsState.scrollToTop(); - } - - void refreshPosts() { - _homePostsState._refreshPosts(); - } - - bool isAttached() { - return _homePostsState != null; - } - - Future setFilters( - {List circles, List followsLists}) async { - return _homePostsState.setFilters( - circles: circles, followsLists: followsLists); - } - - Future clearFilters() { - return _homePostsState.clearFilters(); - } - - List getFilteredCircles() { - return _homePostsState.getFilteredCircles(); - } - - List getFilteredFollowsLists() { - return _homePostsState.getFilteredFollowsLists(); - } - - int countFilters() { - return _homePostsState.getFilteredCircles().length + - _homePostsState.getFilteredFollowsLists().length; - } -} - -enum OBTimelinePostsStatus { - refreshingPosts, - loadingMorePosts, - loadingMorePostsFailed, - noMorePostsToLoad, - idle -} diff --git a/lib/plugins/share/receive_share_state.dart b/lib/plugins/share/receive_share_state.dart index 5f5d5e817..f573f3f8c 100644 --- a/lib/plugins/share/receive_share_state.dart +++ b/lib/plugins/share/receive_share_state.dart @@ -9,9 +9,19 @@ import 'share.dart'; abstract class ReceiveShareState extends State { static const stream = const EventChannel('openbook.social/receive_share'); - StreamSubscription shareReceiveSubscription = null; + StreamSubscription shareReceiveSubscription; + bool queueShares; + List shareQueue; + + @override + void initState() { + super.initState(); + shareQueue = []; + queueShares = true; + _activateShareListener(); + } - void enableSharing() { + void _activateShareListener() { if(Platform.isAndroid){ if (shareReceiveSubscription == null) { shareReceiveSubscription = @@ -20,6 +30,15 @@ abstract class ReceiveShareState extends State { } } + Future enableShareProcessing() async { + queueShares = false; + await Future.forEach(shareQueue, onShare); + } + + void disableShareProcessing() { + queueShares = false; + } + void disableSharing() { if (shareReceiveSubscription != null) { shareReceiveSubscription.cancel(); @@ -28,8 +47,14 @@ abstract class ReceiveShareState extends State { } void _onReceiveShare(dynamic shared) { - onShare(Share.fromReceived(shared)); + var share = Share.fromReceived(shared); + + if (queueShares) { + shareQueue.add(share); + } else { + onShare(share); + } } - void onShare(Share share); + Future onShare(Share share); } diff --git a/lib/plugins/share/share.dart b/lib/plugins/share/share.dart index 9cdf04775..afb7a367c 100644 --- a/lib/plugins/share/share.dart +++ b/lib/plugins/share/share.dart @@ -1,24 +1,38 @@ class Share { - static const String PATH = 'path'; + static const String IMAGE = 'image'; + static const String VIDEO = 'video'; static const String TEXT = 'text'; + static const String ERROR = 'error'; - final String path; + final String image; + final String video; final String text; + final String error; const Share({ - this.path, + this.image, + this.video, this.text, + this.error }); static Share fromReceived(Map received) { String text; - String path; + String image; + String video; + String error; if (received.containsKey(TEXT)) { text = received[TEXT]; } - if (received.containsKey(PATH)) { - path = received[PATH]; + if (received.containsKey(IMAGE)) { + image = received[IMAGE]; } - return Share(path: path, text: text); + if (received.containsKey(VIDEO)) { + video = received[VIDEO]; + } + if (received.containsKey(ERROR)) { + error = received[ERROR]; + } + return Share(image: image, video: video, text: text, error: error); } } diff --git a/lib/provider.dart b/lib/provider.dart index 00184ca6f..78fa531bf 100644 --- a/lib/provider.dart +++ b/lib/provider.dart @@ -5,11 +5,13 @@ import 'package:Okuna/services/categories_api.dart'; import 'package:Okuna/services/communities_api.dart'; import 'package:Okuna/services/connections_circles_api.dart'; import 'package:Okuna/services/connections_api.dart'; +import 'package:Okuna/services/connectivity.dart'; import 'package:Okuna/services/date_picker.dart'; import 'package:Okuna/services/devices_api.dart'; import 'package:Okuna/services/dialog.dart'; import 'package:Okuna/services/documents.dart'; import 'package:Okuna/services/intercom.dart'; +import 'package:Okuna/services/link_preview.dart'; import 'package:Okuna/services/moderation_api.dart'; import 'package:Okuna/services/notifications_api.dart'; import 'package:Okuna/services/push_notifications/push_notifications.dart'; @@ -20,7 +22,7 @@ import 'package:Okuna/services/emojis_api.dart'; import 'package:Okuna/services/environment_loader.dart'; import 'package:Okuna/services/follows_api.dart'; import 'package:Okuna/services/httpie.dart'; -import 'package:Okuna/services/image_picker.dart'; +import 'package:Okuna/services/media.dart'; import 'package:Okuna/services/follows_lists_api.dart'; import 'package:Okuna/services/localization.dart'; import 'package:Okuna/services/modal_service.dart'; @@ -75,7 +77,7 @@ class OpenbookProviderState extends State { StringTemplateService stringTemplateService = StringTemplateService(); EmojisApiService emojisApiService = EmojisApiService(); ThemeService themeService = ThemeService(); - ImagePickerService imagePickerService = ImagePickerService(); + MediaService mediaPickerService = MediaService(); DatePickerService datePickerService = DatePickerService(); EmojiPickerService emojiPickerService = EmojiPickerService(); FollowsApiService followsApiService = FollowsApiService(); @@ -105,6 +107,8 @@ class OpenbookProviderState extends State { DocumentsService documentsService = DocumentsService(); TextAccountAutocompletionService textAccountAutocompletionService = TextAccountAutocompletionService(); + ConnectivityService connectivityService = ConnectivityService(); + LinkPreviewService linkPreviewService = LinkPreviewService(); SentryClient sentryClient; @@ -114,6 +118,7 @@ class OpenbookProviderState extends State { initAsyncState(); imageCache.maximumSize = 200 << 20; // 200MB userPreferencesService.setStorageService(storageService); + userPreferencesService.setConnectivityService(connectivityService); connectionsCirclesApiService.setHttpService(httpService); httpService.setUtilsService(utilsService); connectionsCirclesApiService @@ -166,10 +171,14 @@ class OpenbookProviderState extends State { intercomService.setUserService(userService); dialogService.setThemeService(themeService); dialogService.setThemeValueParserService(themeValueParserService); - imagePickerService.setValidationService(validationService); + mediaPickerService.setValidationService(validationService); + mediaPickerService.setBottomSheetService(bottomSheetService); documentsService.setHttpService(httpService); moderationApiService.setStringTemplateService(stringTemplateService); moderationApiService.setHttpieService(httpService); + linkPreviewService.setHttpieService(httpService); + linkPreviewService.setUtilsService(utilsService); + linkPreviewService.setValidationService(validationService); } void initAsyncState() async { @@ -197,7 +206,11 @@ class OpenbookProviderState extends State { androidApiKey: environment.intercomAndroidKey, appId: environment.intercomAppId); + userPreferencesService.bootstrap(); + sentryClient = SentryClient(dsn: environment.sentryDsn); + linkPreviewService + .setTrustedProxyUrl(environment.linkPreviewsTrustedProxyUrl); } @override @@ -213,6 +226,8 @@ class OpenbookProviderState extends State { super.dispose(); universalLinksService.dispose(); pushNotificationsService.dispose(); + connectivityService.dispose(); + userPreferencesService.dispose(); } setLocalizationService(LocalizationService newLocalizationService) { @@ -220,6 +235,8 @@ class OpenbookProviderState extends State { createAccountBloc.setLocalizationService(localizationService); httpService.setLocalizationService(localizationService); userService.setLocalizationsService(localizationService); + modalService.setLocalizationService(localizationService); + userPreferencesService.setLocalizationService(localizationService); } setValidationService(ValidationService newValidationService) { diff --git a/lib/services/auth_api.dart b/lib/services/auth_api.dart index 5a58232ab..bed7b154e 100644 --- a/lib/services/auth_api.dart +++ b/lib/services/auth_api.dart @@ -98,6 +98,7 @@ class AuthApiService { String username, String url, bool followersCountVisible, + bool communityPostsVisible, String bio, String location, }) { @@ -128,6 +129,9 @@ class AuthApiService { if (followersCountVisible != null) body['followers_count_visible'] = followersCountVisible; + if (communityPostsVisible != null) + body['community_posts_visible'] = communityPostsVisible; + if (location != null) body['location'] = location; return _httpService.patchMultiform('$apiURL$UPDATE_AUTHENTICATED_USER_PATH', @@ -294,7 +298,6 @@ class AuthApiService { Future loginWithCredentials( {@required String username, @required String password}) { - print('$apiURL$LOGIN_PATH'); return this._httpService.postJSON('$apiURL$LOGIN_PATH', body: {'username': username, 'password': password}); } diff --git a/lib/services/bottom_sheet.dart b/lib/services/bottom_sheet.dart index 67788c629..96aa4ae56 100644 --- a/lib/services/bottom_sheet.dart +++ b/lib/services/bottom_sheet.dart @@ -10,16 +10,23 @@ import 'package:Okuna/models/post_reaction.dart'; import 'package:Okuna/pages/home/bottom_sheets/community_actions.dart'; import 'package:Okuna/pages/home/bottom_sheets/community_type_picker.dart'; import 'package:Okuna/pages/home/bottom_sheets/connection_circles_picker.dart'; +import 'package:Okuna/pages/home/bottom_sheets/image_picker.dart'; +import 'package:Okuna/pages/home/bottom_sheets/link_previews_setting_picker.dart'; import 'package:Okuna/pages/home/bottom_sheets/post_comment_more_actions.dart'; import 'package:Okuna/pages/home/bottom_sheets/follows_lists_picker.dart'; import 'package:Okuna/pages/home/bottom_sheets/post_actions.dart'; import 'package:Okuna/pages/home/bottom_sheets/video_picker.dart'; import 'package:Okuna/pages/home/bottom_sheets/react_to_post.dart'; import 'package:Okuna/pages/home/bottom_sheets/react_to_post_comment.dart'; +import 'package:Okuna/pages/home/bottom_sheets/videos_autoplay_setting_picker.dart'; +import 'package:Okuna/pages/home/bottom_sheets/videos_sound_setting_picker.dart'; +import 'package:Okuna/services/user_preferences.dart'; import 'package:flutter/material.dart'; import 'dart:async'; import 'package:meta/meta.dart'; +import 'media.dart'; + class BottomSheetService { Future showReactToPost( {@required Post post, @required BuildContext context}) async { @@ -76,6 +83,42 @@ class BottomSheetService { }); } + Future showVideosSoundSettingPicker( + {@required BuildContext context, + ValueChanged onChanged, + VideosSoundSetting initialValue}) { + return showModalBottomSheetApp( + context: context, + builder: (BuildContext context) { + return OBVideosSoundSettingPickerBottomSheet( + onTypeChanged: onChanged, initialValue: initialValue); + }); + } + + Future showVideosAutoPlaySettingPicker( + {@required BuildContext context, + ValueChanged onChanged, + VideosAutoPlaySetting initialValue}) { + return showModalBottomSheetApp( + context: context, + builder: (BuildContext context) { + return OBVideosAutoPlaySettingPickerBottomSheet( + onTypeChanged: onChanged, initialValue: initialValue); + }); + } + + Future showLinkPreviewsSettingPicker( + {@required BuildContext context, + ValueChanged onChanged, + LinkPreviewsSetting initialValue}) { + return showModalBottomSheetApp( + context: context, + builder: (BuildContext context) { + return OBLinkPreviewsSettingPickerBottomSheet( + onTypeChanged: onChanged, initialValue: initialValue); + }); + } + Future> showFollowsListsPicker( {@required BuildContext context, @required String title, @@ -148,6 +191,14 @@ class BottomSheetService { return OBVideoPickerBottomSheet(); }); } + + Future showImagePicker({@required BuildContext context}) { + return showModalBottomSheetApp( + context: context, + builder: (BuildContext context) { + return OBImagePickerBottomSheet(); + }); + } } //Flutter Modal Bottom Sheet diff --git a/lib/services/communities_api.dart b/lib/services/communities_api.dart index 2da264a5c..4d73328cb 100644 --- a/lib/services/communities_api.dart +++ b/lib/services/communities_api.dart @@ -112,7 +112,8 @@ class CommunitiesApiService { String communityName, {String text, File image, - File video}) { + File video, + bool isDraft = false}) { Map body = {}; if (image != null) { @@ -123,6 +124,10 @@ class CommunitiesApiService { body['video'] = video; } + if (isDraft != null) { + body['is_draft'] = isDraft; + } + if (text != null && text.length > 0) { body['text'] = text; } @@ -578,13 +583,16 @@ class CommunitiesApiService { String description}) { String path = _makeReportCommunityPath(communityName); - Map body = {'category_id': moderationCategoryId.toString()}; + Map body = { + 'category_id': moderationCategoryId.toString() + }; if (description != null && description.isNotEmpty) { body['description'] = description; } - return _httpService.post(_makeApiUrl(path), body: body, appendAuthorizationToken: true); + return _httpService.post(_makeApiUrl(path), + body: body, appendAuthorizationToken: true); } Future getModeratedObjects({ diff --git a/lib/services/connectivity.dart b/lib/services/connectivity.dart new file mode 100644 index 000000000..083f2c659 --- /dev/null +++ b/lib/services/connectivity.dart @@ -0,0 +1,34 @@ +import 'dart:async'; + +import 'package:connectivity/connectivity.dart'; + +class ConnectivityService { + StreamSubscription _connectivityChangeSubscription; + ConnectivityResult _connectivity; + + ConnectivityService() { + _bootstrapConectivity(); + } + + void _bootstrapConectivity() async { + _connectivity = await Connectivity().checkConnectivity(); + _connectivityChangeSubscription = + onConnectivityChange(_onConnectivityChange); + } + + void dispose() { + _connectivityChangeSubscription.cancel(); + } + + StreamSubscription onConnectivityChange(onConnectivityChange) { + return Connectivity().onConnectivityChanged.listen(onConnectivityChange); + } + + ConnectivityResult getConnectivity() { + return _connectivity; + } + + void _onConnectivityChange(ConnectivityResult connectivity) { + _connectivity = connectivity; + } +} diff --git a/lib/services/dialog.dart b/lib/services/dialog.dart index df28a2a71..adac3f1c7 100644 --- a/lib/services/dialog.dart +++ b/lib/services/dialog.dart @@ -1,10 +1,16 @@ +import 'dart:io'; + import 'package:Okuna/models/theme.dart'; +import 'package:Okuna/pages/home/dialogs/video_dialog.dart'; import 'package:Okuna/services/theme.dart'; import 'package:Okuna/services/theme_value_parser.dart'; import 'package:Okuna/pages/home/modals/zoomable_photo.dart'; +import 'package:Okuna/widgets/video_player/widgets/chewie/chewie_player.dart'; import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; import 'package:flutter_colorpicker/flutter_colorpicker.dart'; import 'package:tinycolor/tinycolor.dart'; +import 'package:video_player/video_player.dart'; class DialogService { ThemeService _themeService; @@ -46,26 +52,62 @@ class DialogService { Animation secondaryAnimation) { final ThemeData theme = Theme.of(context, shadowThemeOnly: true); final Widget pageChild = OBZoomablePhotoModal(imageUrl); - return Builder( - builder: (BuildContext context) { - return theme != null - ? Theme(data: theme, child: pageChild) - : pageChild; - } - ); + return Builder(builder: (BuildContext context) { + return theme != null + ? Theme(data: theme, child: pageChild) + : pageChild; + }); }, barrierDismissible: true, - barrierLabel: MaterialLocalizations - .of(context) - .modalBarrierDismissLabel, + barrierLabel: MaterialLocalizations.of(context).modalBarrierDismissLabel, barrierColor: Colors.black87, transitionDuration: const Duration(milliseconds: 100), transitionBuilder: _buildMaterialDialogTransitions, ); } - Widget _buildMaterialDialogTransitions(BuildContext context, - Animation animation, Animation secondaryAnimation, + Future showVideo( + {String videoUrl, + File video, + VideoPlayerController videoPlayerController, + ChewieController chewieController, + bool autoPlay: true, + @required BuildContext context}) async { + SystemChrome.setEnabledSystemUIOverlays([]); + await showGeneralDialog( + context: context, + pageBuilder: (BuildContext buildContext, Animation animation, + Animation secondaryAnimation) { + final ThemeData theme = Theme.of(context, shadowThemeOnly: true); + final Widget pageChild = Material( + child: OBVideoDialog( + autoPlay: autoPlay, + video: video, + videoUrl: videoUrl, + videoPlayerController: videoPlayerController, + chewieController: chewieController, + ), + ); + return Builder(builder: (BuildContext context) { + return theme != null + ? Theme(data: theme, child: pageChild) + : pageChild; + }); + }, + barrierDismissible: true, + barrierLabel: MaterialLocalizations.of(context).modalBarrierDismissLabel, + barrierColor: Colors.black, + transitionDuration: const Duration(milliseconds: 100), + transitionBuilder: _buildMaterialDialogTransitions, + ); + SystemChrome.setEnabledSystemUIOverlays( + [SystemUiOverlay.top, SystemUiOverlay.bottom]); + } + + Widget _buildMaterialDialogTransitions( + BuildContext context, + Animation animation, + Animation secondaryAnimation, Widget child) { return FadeTransition( opacity: CurvedAnimation( diff --git a/lib/services/environment_loader.dart b/lib/services/environment_loader.dart index 995c8ecc0..07bb814be 100644 --- a/lib/services/environment_loader.dart +++ b/lib/services/environment_loader.dart @@ -25,6 +25,7 @@ class Environment { final String intercomAppId; final String sentryDsn; final String openbookSocialApiUrl; + final String linkPreviewsTrustedProxyUrl; const Environment( {this.sentryDsn = '', @@ -34,6 +35,7 @@ class Environment { this.magicHeaderValue = '', this.intercomAndroidKey = '', this.intercomAppId = '', + this.linkPreviewsTrustedProxyUrl = '', this.intercomIosKey = ''}); factory Environment.fromJson(Map jsonMap) { @@ -45,7 +47,8 @@ class Environment { intercomIosKey: jsonMap["INTERCOM_IOS_KEY"], intercomAndroidKey: jsonMap["INTERCOM_ANDROID_KEY"], sentryDsn: jsonMap["SENTRY_DSN"], - openbookSocialApiUrl: jsonMap["OPENBOOK_SOCIAL_API_URL"] + openbookSocialApiUrl: jsonMap["OPENBOOK_SOCIAL_API_URL"], + linkPreviewsTrustedProxyUrl: jsonMap["LINK_PREVIEWS_TRUSTED_PROXY_URL"], ); } } diff --git a/lib/services/httpie.dart b/lib/services/httpie.dart index f004dbba8..dea173e55 100644 --- a/lib/services/httpie.dart +++ b/lib/services/httpie.dart @@ -8,6 +8,7 @@ import 'package:http/http.dart'; import 'package:http/http.dart' as http; import 'package:http/io_client.dart'; import 'package:http_parser/http_parser.dart'; +import 'package:http_retry/http_retry.dart'; export 'package:http/http.dart'; class HttpieService { @@ -23,12 +24,26 @@ class HttpieService { // This doesn't pick up proxy settings on Android and iOS httpClient.findProxy = HttpClient.findProxyFromEnvironment; client = IOClient(httpClient); + client = RetryClient(client, + when: _retryWhenResponse, whenError: _retryWhenError); + } + + bool _retryWhenResponse(BaseResponse response) { + return response.statusCode >= 503 && response.statusCode < 600; + } + + bool _retryWhenError(error, StackTrace stackTrace) { + return error is SocketException || error is ClientException; } void setAuthorizationToken(String token) { authorizationToken = token; } + String getAuthorizationToken() { + return authorizationToken; + } + void removeAuthorizationToken() { authorizationToken = null; } @@ -367,6 +382,7 @@ class HttpieService { errorCode == 104 || errorCode == 51 || errorCode == 8 || + errorCode == 113 || errorCode == 7 || errorCode == 64) { // Connection refused. diff --git a/lib/services/image_picker.dart b/lib/services/image_picker.dart deleted file mode 100644 index 45f2d53b1..000000000 --- a/lib/services/image_picker.dart +++ /dev/null @@ -1,106 +0,0 @@ -import 'dart:io'; -import 'dart:typed_data'; -import 'package:flutter/material.dart'; -import 'package:flutter_exif_rotation/flutter_exif_rotation.dart'; -import 'package:image_cropper/image_cropper.dart'; -import 'package:image_picker/image_picker.dart'; -import 'package:meta/meta.dart'; -import 'package:Okuna/plugins/image_converter/image_converter.dart'; -import 'package:Okuna/services/validation.dart'; -import 'package:multi_image_picker/multi_image_picker.dart'; -import 'package:path_provider/path_provider.dart'; -import 'package:uuid/uuid.dart'; -export 'package:image_picker/image_picker.dart'; - -class ImagePickerService { - static Uuid uuid = new Uuid(); - - static const Map IMAGE_RATIOS = { - OBImageType.avatar: {'x': 1.0, 'y': 1.0}, - OBImageType.cover: {'x': 16.0, 'y': 9.0} - }; - - ValidationService _validationService; - - void setValidationService(ValidationService validationService) { - _validationService = validationService; - } - - Future pickImage( - {@required OBImageType imageType}) async { - List pickedAssets = - await MultiImagePicker.pickImages(maxImages: 1, enableCamera: true); - - if (pickedAssets.isEmpty) { - return null; - } - - Asset pickedAsset = pickedAssets.first; - - String tmpImageName = uuid.v4() + '.jpg'; - final path = await _getTempPath(); - final file = File('$path/$tmpImageName'); - ByteData byteData = await pickedAsset.requestOriginal(); - List imageData = byteData.buffer.asUint8List(); - imageData = await ImageConverter.convertImage(imageData); - file.writeAsBytesSync(imageData); - - if (!await _validationService.isImageAllowedSize(file, imageType)) { - throw ImageTooLargeException( - _validationService.getAllowedImageSize(imageType)); - } - - File processedImage = await processImage(file); - - double ratioX = - imageType != OBImageType.post ? IMAGE_RATIOS[imageType]['x'] : null; - double ratioY = - imageType != OBImageType.post ? IMAGE_RATIOS[imageType]['y'] : null; - - File croppedFile = await ImageCropper.cropImage( - toolbarTitle: 'Edit image', - toolbarColor: Colors.black, - statusBarColor: Colors.black, - toolbarWidgetColor: Colors.white, - sourcePath: processedImage.path, - ratioX: ratioX, - ratioY: ratioY, - ); - - return croppedFile; - } - - Future pickVideo({ImageSource source = ImageSource.gallery}) async { - var video = await ImagePicker.pickVideo(source: source); - - return video; - } - - Future processImage(File image) async { - /// Fix rotation issue on android - if (Platform.isAndroid) - return FlutterExifRotation.rotateImage(path: image.path); - return image; - } - - Future _getTempPath() async { - final directory = await getTemporaryDirectory(); - - return directory.path; - } -} - -class ImageTooLargeException implements Exception { - final int limit; - - const ImageTooLargeException(this.limit); - - String toString() => - 'ImageToLargeException: Images can\'t be larger than $limit'; - - int getLimitInMB() { - return limit ~/ 1048576; - } -} - -enum OBImageType { avatar, cover, post } diff --git a/lib/services/link_preview.dart b/lib/services/link_preview.dart new file mode 100644 index 000000000..7ca698b71 --- /dev/null +++ b/lib/services/link_preview.dart @@ -0,0 +1,253 @@ +import 'package:Okuna/models/post_preview_link_data.dart'; +import 'package:Okuna/services/httpie.dart'; +import 'package:Okuna/services/utils_service.dart'; +import 'package:Okuna/services/validation.dart'; +import 'package:Okuna/widgets/theming/smart_text.dart'; +import 'package:flutter/material.dart'; +import 'package:html/parser.dart' as parser; +import 'package:html/dom.dart'; +import 'package:flutter/services.dart' show rootBundle; +import 'package:public_suffix/public_suffix_io.dart'; + +class LinkPreviewService { + ValidationService _validationService; + HttpieService _httpieService; + UtilsService _utilsService; + + String _trustedProxyUrl = ''; + + static RegExp allowedProtocolsPattern = + RegExp('http|https', caseSensitive: false); + + LinkPreviewService() { + _initPublicSuffixes(); + } + + void _initPublicSuffixes() async { + String publicSuffixes = + await rootBundle.loadString('assets/other/public_suffix_list.dat'); + SuffixRules.initFromString(publicSuffixes); + } + + void setTrustedProxyUrl(String proxyUrl) { + _trustedProxyUrl = proxyUrl; + } + + void setHttpieService(httpieService) { + _httpieService = httpieService; + } + + void setUtilsService(utilsService) { + _utilsService = utilsService; + } + + void setValidationService(validationService) { + _validationService = validationService; + } + + bool hasLinkPreviewUrl(String text) { + return checkForLinkPreviewUrl(text) != null; + } + + String checkForLinkPreviewUrl(String text) { + List matches = []; + String previewUrl; + matches.addAll(linkRegex.allMatches(text).map((match) { + return match.group(0); + })); + + if (matches.length > 0) { + String urlMimeType = _utilsService.geFileNameMimeType(matches.first); + if (urlMimeType != null) { + String urlFirstType = urlMimeType.split('/').first; + if (urlFirstType != 'image' && urlFirstType != 'text') return null; + } + previewUrl = matches.first; + } + return previewUrl; + } + + Future previewLink(String link) async { + String normalisedLink = _normaliseLink(link); + + if (!_validationService.isUrl(normalisedLink.toLowerCase())) + throw InvalidLinkToPreview(normalisedLink); + + bool appendAuthorizationHeader = _trustedProxyUrl.isNotEmpty; + + HttpieResponse response; + + if (!normalisedLink.startsWith('https://')) { + try { + String secureLink = normalisedLink.replaceFirst('http', 'https'); + response = await _httpieService.get(getProxiedLink(secureLink), + appendAuthorizationToken: appendAuthorizationHeader); + normalisedLink = secureLink; + } on HttpieRequestError { + response = await _httpieService.get(getProxiedLink(normalisedLink), + appendAuthorizationToken: appendAuthorizationHeader); + } + } else { + response = await _httpieService.get(getProxiedLink(normalisedLink), + appendAuthorizationToken: appendAuthorizationHeader); + } + + _checkResponseIsOk(response); + + String contentType = response.httpResponse.headers['content-type']; + + String mimeFirstType = contentType.split('/').first; + + LinkPreview result; + + if (mimeFirstType == 'image') { + result = LinkPreview(image: response.httpResponse.bodyBytes); + } else if (mimeFirstType == 'text') { + result = _getLinkPreviewFromResponseBody( + link: normalisedLink, responseBody: response.body); + } + + return result; + } + + LinkPreview _getLinkPreviewFromResponseBody( + {@required String link, @required String responseBody}) { + Document document = parser.parse(responseBody); + + // Assigned with iterated og tags + String linkPreviewTitle; + String linkPreviewDescription; + String linkPreviewImageUrl; + String linkPreviewSiteName; + String linkPreviewDomainUrl = Uri.parse(link).host; + // Assigned separately + String linkPreviewFaviconUrl = + _getLinkPreviewFaviconUrl(document, derivedFromLink: link); + + var openGraphMetaTags = document.head.querySelectorAll("[property*='og:']"); + + openGraphMetaTags.forEach((openGraphMetaTag) { + String ogTagName = + openGraphMetaTag.attributes['property'].split("og:")[1]; + String ogTagValue = openGraphMetaTag.attributes['content']; + + if (ogTagName == 'title') { + linkPreviewTitle = ogTagValue; + } else if (ogTagName == 'description') { + linkPreviewDescription = ogTagValue; + } else if (ogTagName == 'image') { + linkPreviewImageUrl = ogTagValue; + } else if (ogTagName == 'site_name') { + linkPreviewSiteName = ogTagValue; + } + }); + + if (linkPreviewTitle == null) { + // Fallback + var titleElement = document.head.getElementsByTagName("title"); + if (titleElement != null && titleElement.isNotEmpty) + linkPreviewTitle = titleElement[0]?.text; + } + + if (linkPreviewImageUrl == null) { + // Fallback + var imgElements = document.getElementsByTagName("img"); + if (imgElements != null && imgElements.isNotEmpty) { + try { + linkPreviewImageUrl = imgElements.firstWhere((var imgElement) { + String imgSrc = imgElement.attributes['src']; + if (imgSrc == null) return false; + return imgSrc.endsWith('jpg') || + imgSrc.endsWith('gif') || + imgSrc.endsWith('png'); + }).attributes["src"]; + } catch (error) {} + } + } + + if (linkPreviewImageUrl != null) + linkPreviewImageUrl = + _normaliseLink(linkPreviewImageUrl, derivedFromLink: link); + + if (linkPreviewFaviconUrl != null) + linkPreviewFaviconUrl = + _normaliseLink(linkPreviewFaviconUrl, derivedFromLink: link); + + print(linkPreviewImageUrl); + + return LinkPreview( + title: linkPreviewTitle, + description: linkPreviewDescription, + imageUrl: linkPreviewImageUrl, + faviconUrl: linkPreviewFaviconUrl, + domainUrl: linkPreviewDomainUrl, + siteName: linkPreviewSiteName, + url: link); + } + + String _getLinkPreviewFaviconUrl(Document document, + {String derivedFromLink}) { + var faviconElement = document.querySelector("link[rel*='shortcut icon']"); + + String linkPreviewFaviconUrl = + faviconElement != null ? faviconElement.attributes['href'] : null; + + if (linkPreviewFaviconUrl == null) { + var shortcutIconElement = document.querySelector("link[rel*='icon']"); + if (shortcutIconElement != null) { + linkPreviewFaviconUrl = shortcutIconElement?.attributes['href']; + } + } + + if (linkPreviewFaviconUrl != null) + linkPreviewFaviconUrl = _normaliseLink(linkPreviewFaviconUrl, + derivedFromLink: derivedFromLink); + + return linkPreviewFaviconUrl; + } + + String _normaliseLink(String link, {String derivedFromLink}) { + if (link.startsWith(allowedProtocolsPattern)) { + return link; + } else if (link.startsWith('//')) { + return 'http:$link'; + } else if (link.startsWith('/')) { + // Absolute path + Uri parsedDerivedFromLink = Uri.parse(derivedFromLink); + return '${parsedDerivedFromLink.scheme}://${parsedDerivedFromLink.host}$link'; + } if(derivedFromLink != null){ + return derivedFromLink.endsWith('/') + ? '$derivedFromLink$link' + : '$derivedFromLink/$link'; + } + + return 'http://$link'; + } + + String getProxiedLink(String link) { + return '$_trustedProxyUrl?$link'; + } + + void _checkResponseIsOk(HttpieBaseResponse response) { + if (response.isOk()) return; + throw HttpieRequestError(response); + } +} + +class InvalidLinkToPreview implements Exception { + String link; + + InvalidLinkToPreview(this.link); + + String toString() => + 'InvalidLinkToPreview: $link is not a valid link to preview.'; +} + +class EmptyLinkToPreview implements Exception { + String link; + + EmptyLinkToPreview(this.link); + + String toString() => + 'EmptyLinkToPreview: $link was empty, could not be previewed.'; +} diff --git a/lib/services/localization.dart b/lib/services/localization.dart index 96e6b3f50..f366b2e70 100644 --- a/lib/services/localization.dart +++ b/lib/services/localization.dart @@ -16,16 +16,18 @@ class LocalizationService { LocalizationService(this.locale); final Locale locale; + /// See README 7.c for a word on localizedLocales. /// These are locales where we have custom crowdin language codes like pt-BR /// to support Brazilian Portuguese with a particular country, say Brazil. static const localizedLocales = ['pt-BR', 'es-ES', 'sv-SE']; Future load() { - final String name = locale.countryCode == null ? locale.languageCode : locale.toString(); + final String name = + locale.countryCode == null ? locale.languageCode : locale.toString(); String localeName = Intl.canonicalizedLocale(name); - if(localizedLocales.contains(locale.languageCode)) { + if (localizedLocales.contains(locale.languageCode)) { localeName = locale.languageCode; } @@ -40,13 +42,17 @@ class LocalizationService { var openbookProvider = OpenbookProvider.of(context); _onLoggedInUserChangeSubscription = openbookProvider.userService.loggedInUserChange.listen((User newUser) { - String _userLanguageCode = newUser != null && newUser.hasLanguage() ? newUser.language.code: null; + String _userLanguageCode = newUser != null && newUser.hasLanguage() + ? newUser.language.code + : null; Locale _currentLocale = Localizations.localeOf(context); - if (_userLanguageCode != null - && supportedLanguages.contains(_userLanguageCode) - && _userLanguageCode != _currentLocale.languageCode) { - Locale supportedMatchedLocale = supportedLocales.firstWhere((Locale locale) => locale.languageCode == _userLanguageCode); - print('Overriding locale $_currentLocale with user locale: $supportedMatchedLocale'); + if (_userLanguageCode != null && + supportedLanguages.contains(_userLanguageCode) && + _userLanguageCode != _currentLocale.languageCode) { + Locale supportedMatchedLocale = supportedLocales.firstWhere( + (Locale locale) => locale.languageCode == _userLanguageCode); + print( + 'Overriding locale $_currentLocale with user locale: $supportedMatchedLocale'); MyApp.setLocale(context, supportedMatchedLocale); } _onLoggedInUserChangeSubscription.cancel(); @@ -62,496 +68,717 @@ class LocalizationService { String get auth__headline { return Intl.message("Better social.", name: 'auth__headline'); } + String get auth__login { return Intl.message("Log in", name: 'auth__login'); } + String get auth__email_empty_error { return Intl.message("Email cannot be empty.", name: 'auth__email_empty_error'); } + String get auth__email_invalid_error { return Intl.message("Please provide a valid email.", name: 'auth__email_invalid_error'); } + String get auth__username_empty_error { return Intl.message("Username cannot be empty.", name: 'auth__username_empty_error'); } + String get auth__username_characters_error { - return Intl.message("A username can only contain alphanumeric characters and underscores.", + return Intl.message( + "A username can only contain alphanumeric characters and underscores.", name: 'auth__username_characters_error'); } + String auth__username_maxlength_error(int maxLength) { - return Intl.message("A username can't be longer than $maxLength characters.", + return Intl.message( + "A username can't be longer than $maxLength characters.", args: [maxLength], name: 'auth__username_maxlength_error'); } + String get auth__create_account { return Intl.message("Sign up", name: 'auth__create_account'); } + String get auth__create_acc__lets_get_started { - return Intl.message("Let's get started", name: 'auth__create_acc__lets_get_started'); + return Intl.message("Let's get started", + name: 'auth__create_acc__lets_get_started'); } + String get auth__create_acc__welcome_to_beta { - return Intl.message("Welcome to the Beta!", name: 'auth__create_acc__welcome_to_beta'); + return Intl.message("Welcome to the Beta!", + name: 'auth__create_acc__welcome_to_beta'); } + String get auth__create_acc__previous { return Intl.message("Back", name: 'auth__create_acc__previous'); } + String get auth__create_acc__next { return Intl.message("Next", name: 'auth__create_acc__next'); } + String get auth__create_acc__create_account { - return Intl.message("Create account", name: 'auth__create_acc__create_account'); + return Intl.message("Create account", + name: 'auth__create_acc__create_account'); } + String get auth__create_acc__paste_link { - return Intl.message("Paste your registration link below", name: 'auth__create_acc__paste_link'); + return Intl.message("Paste your registration link below", + name: 'auth__create_acc__paste_link'); } + String get auth__create_acc__paste_password_reset_link { - return Intl.message("Paste your password reset link below", name: 'auth__create_acc__paste_password_reset_link'); + return Intl.message("Paste your password reset link below", + name: 'auth__create_acc__paste_password_reset_link'); } + String get auth__create_acc__paste_link_help_text { - return Intl.message("Use the link from the Join Openbook button in your invitation email.", name: 'auth__create_acc__paste_link_help_text'); + return Intl.message( + "Use the link from the Join Openbook button in your invitation email.", + name: 'auth__create_acc__paste_link_help_text'); } + String get auth__create_acc__link_empty_error { return Intl.message("Link cannot be empty.", name: 'auth__create_acc__link_empty_error'); } + String get auth__create_acc__link_invalid_error { return Intl.message("This link appears to be invalid.", name: 'auth__create_acc__link_invalid_error'); } + String get auth__password_empty_error { return Intl.message("Password cannot be empty.", name: 'auth__password_empty_error'); } + String auth__password_range_error(int minLength, int maxLength) { - return Intl.message("Password must be between $minLength and $maxLength characters.", + return Intl.message( + "Password must be between $minLength and $maxLength characters.", args: [minLength, maxLength], name: 'auth__password_range_error'); } + String get auth__name_empty_error { return Intl.message("Name cannot be empty.", name: 'auth__name_empty_error'); } + String auth__name_range_error(int minLength, int maxLength) { - return Intl.message("Name must be between $minLength and $maxLength characters.", + return Intl.message( + "Name must be between $minLength and $maxLength characters.", args: [minLength, maxLength], name: 'auth__name_range_error'); } + String get auth__description_empty_error { return Intl.message("Description cannot be empty.", name: 'auth__description_empty_error'); } + String auth__description_range_error(int minLength, int maxLength) { - return Intl.message("Description must be between $minLength and $maxLength characters.", + return Intl.message( + "Description must be between $minLength and $maxLength characters.", args: [minLength, maxLength], name: 'auth__description_range_error'); } + String get auth__reset_password_success_title { - return Intl.message("All set!", - name: 'auth__reset_password_success_title'); + return Intl.message("All set!", name: 'auth__reset_password_success_title'); } + String get auth__reset_password_success_info { return Intl.message("Your password has been updated successfully", name: 'auth__reset_password_success_info'); } + String get auth__create_acc__request_invite { - return Intl.message("No invite? Request one here.", name: 'auth__create_acc__request_invite'); + return Intl.message("No invite? Request one here.", + name: 'auth__create_acc__request_invite'); } + String get auth__create_acc__subscribe { return Intl.message("Request", name: 'auth__create_acc__subscribe'); } + String get auth__create_acc__subscribe_to_waitlist_text { - return Intl.message("Request an invite!", name: 'auth__create_acc__subscribe_to_waitlist_text'); + return Intl.message("Request an invite!", + name: 'auth__create_acc__subscribe_to_waitlist_text'); } + String get auth__create_acc__congratulations { - return Intl.message("Congratulations!", name: 'auth__create_acc__congratulations'); + return Intl.message("Congratulations!", + name: 'auth__create_acc__congratulations'); } + String get auth__create_acc__your_subscribed { - return Intl.message("You're {0} on the waitlist.", name: 'auth__create_acc__your_subscribed'); + return Intl.message("You're {0} on the waitlist.", + name: 'auth__create_acc__your_subscribed'); } + String get auth__create_acc__almost_there { - return Intl.message("Almost there...", name: 'auth__create_acc__almost_there'); + return Intl.message("Almost there...", + name: 'auth__create_acc__almost_there'); } + String get auth__create_acc__what_name { - return Intl.message("What's your name?", name: 'auth__create_acc__what_name'); + return Intl.message("What's your name?", + name: 'auth__create_acc__what_name'); } + String get auth__create_acc__name_placeholder { - return Intl.message("James Bond", name: 'auth__create_acc__name_placeholder'); + return Intl.message("James Bond", + name: 'auth__create_acc__name_placeholder'); } + String get auth__create_acc__name_empty_error { - return Intl.message("😱 Your name can't be empty.", name: 'auth__create_acc__name_empty_error'); + return Intl.message("😱 Your name can't be empty.", + name: 'auth__create_acc__name_empty_error'); } + String get auth__create_acc__name_length_error { - return Intl.message("😱 Your name can't be longer than 50 characters. (If it is, we're very sorry.)", name: 'auth__create_acc__name_length_error'); + return Intl.message( + "😱 Your name can't be longer than 50 characters. (If it is, we're very sorry.)", + name: 'auth__create_acc__name_length_error'); } + String get auth__create_acc__name_characters_error { - return Intl.message("😅 A name can only contain alphanumeric characters (for now).", name: 'auth__create_acc__name_characters_error'); + return Intl.message( + "😅 A name can only contain alphanumeric characters (for now).", + name: 'auth__create_acc__name_characters_error'); } + String get auth__create_acc__what_username { - return Intl.message("Choose a username", name: 'auth__create_acc__what_username'); + return Intl.message("Choose a username", + name: 'auth__create_acc__what_username'); } + String get auth__create_acc__username_placeholder { - return Intl.message("pablopicasso", name: 'auth__create_acc__username_placeholder'); + return Intl.message("pablopicasso", + name: 'auth__create_acc__username_placeholder'); } + String get auth__create_acc__username_empty_error { - return Intl.message("😱 The username can't be empty.", name: 'auth__create_acc__username_empty_error'); + return Intl.message("😱 The username can't be empty.", + name: 'auth__create_acc__username_empty_error'); } + String get auth__create_acc__username_length_error { - return Intl.message("😅 A username can't be longer than 30 characters.", name: 'auth__create_acc__username_length_error'); + return Intl.message("😅 A username can't be longer than 30 characters.", + name: 'auth__create_acc__username_length_error'); } + String get auth__create_acc__username_characters_error { - return Intl.message("😅 A username can only contain alphanumeric characters and underscores.", name: 'auth__create_acc__username_characters_error'); + return Intl.message( + "😅 A username can only contain alphanumeric characters and underscores.", + name: 'auth__create_acc__username_characters_error'); } + String get auth__create_acc__username_taken_error { - return Intl.message("😩 The username @%s is taken.", name: 'auth__create_acc__username_taken_error'); + return Intl.message("😩 The username @%s is taken.", + name: 'auth__create_acc__username_taken_error'); } + String get auth__create_acc__username_server_error { - return Intl.message("😭 We're experiencing issues with our servers, please try again in a couple of minutes.", name: 'auth__create_acc__username_server_error'); + return Intl.message( + "😭 We're experiencing issues with our servers, please try again in a couple of minutes.", + name: 'auth__create_acc__username_server_error'); } + String get auth__create_acc__what_email { - return Intl.message("What's your email?", name: 'auth__create_acc__what_email'); + return Intl.message("What's your email?", + name: 'auth__create_acc__what_email'); } + String get auth__create_acc__email_placeholder { - return Intl.message("john_travolta@mail.com", name: 'auth__create_acc__email_placeholder'); + return Intl.message("john_travolta@mail.com", + name: 'auth__create_acc__email_placeholder'); } + String get auth__create_acc__email_empty_error { - return Intl.message("😱 Your email can't be empty", name: 'auth__create_acc__email_empty_error'); + return Intl.message("😱 Your email can't be empty", + name: 'auth__create_acc__email_empty_error'); } + String get auth__create_acc__email_invalid_error { - return Intl.message("😅 Please provide a valid email address.", name: 'auth__create_acc__email_invalid_error'); + return Intl.message("😅 Please provide a valid email address.", + name: 'auth__create_acc__email_invalid_error'); } + String get auth__create_acc__email_taken_error { - return Intl.message("🤔 An account already exists for that email.", name: 'auth__create_acc__email_taken_error'); + return Intl.message("🤔 An account already exists for that email.", + name: 'auth__create_acc__email_taken_error'); } + String get auth__create_acc__email_server_error { - return Intl.message("😭 We're experiencing issues with our servers, please try again in a couple of minutes.", name: 'auth__create_acc__email_server_error'); + return Intl.message( + "😭 We're experiencing issues with our servers, please try again in a couple of minutes.", + name: 'auth__create_acc__email_server_error'); } + String get auth__create_acc__what_password { - return Intl.message("Choose a password", name: 'auth__create_acc__what_password'); + return Intl.message("Choose a password", + name: 'auth__create_acc__what_password'); } + String auth__create_acc_password_hint_text(int minLength, int maxLength) { return Intl.message("($minLength-$maxLength characters)", args: [minLength, maxLength], name: 'auth__create_acc_password_hint_text'); } + String get auth__create_acc__what_password_subtext { - return Intl.message("(min 10 chars.)", name: 'auth__create_acc__what_password_subtext'); + return Intl.message("(min 10 chars.)", + name: 'auth__create_acc__what_password_subtext'); } + String get auth__create_acc__password_empty_error { - return Intl.message("😱 Your password can't be empty", name: 'auth__create_acc__password_empty_error'); + return Intl.message("😱 Your password can't be empty", + name: 'auth__create_acc__password_empty_error'); } + String get auth__create_acc__password_length_error { - return Intl.message("😅 A password must be between 8 and 64 characters.", name: 'auth__create_acc__password_length_error'); + return Intl.message("😅 A password must be between 8 and 64 characters.", + name: 'auth__create_acc__password_length_error'); } + String get auth__create_acc__what_avatar { - return Intl.message("Choose a profile picture", name: 'auth__create_acc__what_avatar'); + return Intl.message("Choose a profile picture", + name: 'auth__create_acc__what_avatar'); } + String get auth__create_acc__avatar_tap_to_change { - return Intl.message("Tap to change", name: 'auth__create_acc__avatar_tap_to_change'); + return Intl.message("Tap to change", + name: 'auth__create_acc__avatar_tap_to_change'); } + String get auth__create_acc__avatar_choose_camera { - return Intl.message("Take a photo", name: 'auth__create_acc__avatar_choose_camera'); + return Intl.message("Take a photo", + name: 'auth__create_acc__avatar_choose_camera'); } + String get auth__create_acc__avatar_choose_gallery { - return Intl.message("Use an existing photo", name: 'auth__create_acc__avatar_choose_gallery'); + return Intl.message("Use an existing photo", + name: 'auth__create_acc__avatar_choose_gallery'); } + String get auth__create_acc__avatar_remove_photo { - return Intl.message("Remove photo", name: 'auth__create_acc__avatar_remove_photo'); + return Intl.message("Remove photo", + name: 'auth__create_acc__avatar_remove_photo'); } + String get auth__create_acc__done { return Intl.message("Create account", name: 'auth__create_acc__done'); } + String get auth__create_acc__done_subtext { - return Intl.message("You can change this in your profile settings.", name: 'auth__create_acc__done_subtext'); + return Intl.message("You can change this in your profile settings.", + name: 'auth__create_acc__done_subtext'); } + String get auth__create_acc__done_created { - return Intl.message("Your account has been created with username ", name: 'auth__create_acc__done_created'); + return Intl.message("Your account has been created with username ", + name: 'auth__create_acc__done_created'); } + String get auth__create_acc__submit_loading_title { - return Intl.message("Hang in there!", name: 'auth__create_acc__submit_loading_title'); + return Intl.message("Hang in there!", + name: 'auth__create_acc__submit_loading_title'); } + String get auth__create_acc__submit_loading_desc { - return Intl.message("We're creating your account.", name: 'auth__create_acc__submit_loading_desc'); + return Intl.message("We're creating your account.", + name: 'auth__create_acc__submit_loading_desc'); } + String get auth__create_acc__submit_error_title { - return Intl.message("Oh no...", name: 'auth__create_acc__submit_error_title'); + return Intl.message("Oh no...", + name: 'auth__create_acc__submit_error_title'); } + String get auth__create_acc__submit_error_desc_server { - return Intl.message("😭 We're experiencing issues with our servers, please try again in a couple of minutes.", name: 'auth__create_acc__submit_error_desc_server'); + return Intl.message( + "😭 We're experiencing issues with our servers, please try again in a couple of minutes.", + name: 'auth__create_acc__submit_error_desc_server'); } + String get auth__create_acc__submit_error_desc_validation { - return Intl.message("😅 It looks like some of the information was not right, please check and try again.", name: 'auth__create_acc__submit_error_desc_validation'); + return Intl.message( + "😅 It looks like some of the information was not right, please check and try again.", + name: 'auth__create_acc__submit_error_desc_validation'); } + String get auth__create_acc__done_title { return Intl.message("Hooray!", name: 'auth__create_acc__done_title'); } + String get auth__create_acc__done_description { - return Intl.message("Your account has been created.", name: 'auth__create_acc__done_description'); + return Intl.message("Your account has been created.", + name: 'auth__create_acc__done_description'); } + String get auth__create_acc__your_username_is { - return Intl.message("Your user name is ", name: 'auth__create_acc__your_username_is'); + return Intl.message("Your user name is ", + name: 'auth__create_acc__your_username_is'); } + String get auth__create_acc__can_change_username { - return Intl.message("If you wish, you can change it anytime via your profile page.", name: 'auth__create_acc__can_change_username'); + return Intl.message( + "If you wish, you can change it anytime via your profile page.", + name: 'auth__create_acc__can_change_username'); } + String get auth__create_acc__done_continue { return Intl.message("Login", name: 'auth__create_acc__done_continue'); } + String get auth__create_acc__one_last_thing { - return Intl.message("One last thing...", name: 'auth__create_acc__one_last_thing'); + return Intl.message("One last thing...", + name: 'auth__create_acc__one_last_thing'); } + String get auth__create_acc__register { return Intl.message("Register", name: 'auth__create_acc__register'); } + String get auth__create_acc__are_you_legal_age { - return Intl.message("Are you older than 16 years?", name: 'auth__create_acc__are_you_legal_age'); + return Intl.message("Are you older than 16 years?", + name: 'auth__create_acc__are_you_legal_age'); } + String get auth__login__login { return Intl.message("Continue", name: 'auth__login__login'); } + String get auth__login__previous { return Intl.message("Previous", name: 'auth__login__previous'); } + String get auth__login__title { return Intl.message("Welcome back!", name: 'auth__login__title'); } + String get auth__login__subtitle { - return Intl.message("Enter your credentials to continue.", name: 'auth__login__subtitle'); + return Intl.message("Enter your credentials to continue.", + name: 'auth__login__subtitle'); } + String get auth__login__forgot_password { - return Intl.message("Forgot password", name: 'auth__login__forgot_password'); + return Intl.message("Forgot password", + name: 'auth__login__forgot_password'); } + String get auth__login__forgot_password_subtitle { - return Intl.message("Enter your username or email", name: 'auth__login__forgot_password_subtitle'); + return Intl.message("Enter your username or email", + name: 'auth__login__forgot_password_subtitle'); } + String get auth__login__username_label { return Intl.message("Username", name: 'auth__login__username_label'); } + String get auth__login__password_label { return Intl.message("Password", name: 'auth__login__password_label'); } + String get auth__login__email_label { return Intl.message("Email", name: 'auth__login__email_label'); } + String get auth__login__or_text { return Intl.message("Or", name: 'auth__login__or_text'); } + String get auth__login__password_empty_error { - return Intl.message("Password is required.", name: 'auth__login__password_empty_error'); + return Intl.message("Password is required.", + name: 'auth__login__password_empty_error'); } + String get auth__login__password_length_error { - return Intl.message("Password must be between 8 and 64 characters.", name: 'auth__login__password_length_error'); + return Intl.message("Password must be between 8 and 64 characters.", + name: 'auth__login__password_length_error'); } + String get auth__login__username_empty_error { - return Intl.message("Username is required.", name: 'auth__login__username_empty_error'); + return Intl.message("Username is required.", + name: 'auth__login__username_empty_error'); } + String get auth__login__username_length_error { - return Intl.message("Username can't be longer than 30 characters.", name: 'auth__login__username_length_error'); + return Intl.message("Username can't be longer than 30 characters.", + name: 'auth__login__username_length_error'); } + String get auth__login__username_characters_error { - return Intl.message("Username can only contain alphanumeric characters and underscores.", name: 'auth__login__username_characters_error'); + return Intl.message( + "Username can only contain alphanumeric characters and underscores.", + name: 'auth__login__username_characters_error'); } + String get auth__login__credentials_mismatch_error { - return Intl.message("The provided credentials do not match.", name: 'auth__login__credentials_mismatch_error'); + return Intl.message("The provided credentials do not match.", + name: 'auth__login__credentials_mismatch_error'); } + String get auth__login__server_error { - return Intl.message("Uh oh.. We're experiencing server issues. Please try again in a few minutes.", name: 'auth__login__server_error'); + return Intl.message( + "Uh oh.. We're experiencing server issues. Please try again in a few minutes.", + name: 'auth__login__server_error'); } + String get auth__login__connection_error { - return Intl.message("We can't reach our servers. Are you connected to the internet?", name: 'auth__login__connection_error'); + return Intl.message( + "We can't reach our servers. Are you connected to the internet?", + name: 'auth__login__connection_error'); } + String get auth__change_password_title { - return Intl.message("Change password", - name: 'auth__change_password_title'); + return Intl.message("Change password", name: 'auth__change_password_title'); } + String get auth__change_password_current_pwd { return Intl.message("Current password", name: 'auth__change_password_current_pwd'); } + String get auth__change_password_current_pwd_hint { return Intl.message("Enter your current password", name: 'auth__change_password_current_pwd_hint'); } + String get auth__change_password_current_pwd_incorrect { return Intl.message("Entered password was incorrect", name: 'auth__change_password_current_pwd_incorrect'); } + String get auth__change_password_new_pwd { - return Intl.message("New password", - name: 'auth__change_password_new_pwd'); + return Intl.message("New password", name: 'auth__change_password_new_pwd'); } + String get auth__change_password_new_pwd_hint { return Intl.message("Enter your new password", name: 'auth__change_password_new_pwd_hint'); } + String get auth__change_password_new_pwd_error { - return Intl.message("Please ensure password is between 10 and 100 characters long", + return Intl.message( + "Please ensure password is between 10 and 100 characters long", name: 'auth__change_password_new_pwd_error'); } + String get auth__change_password_save_text { - return Intl.message("Save", - name: 'auth__change_password_save_text'); + return Intl.message("Save", name: 'auth__change_password_save_text'); } + String get auth__change_password_save_success { return Intl.message("All good! Your password has been updated", name: 'auth__change_password_save_success'); } String get drawer__menu_title { - return Intl.message("Menu", - name: 'drawer__menu_title'); + return Intl.message("Menu", name: 'drawer__menu_title'); } + String get drawer__main_title { - return Intl.message("My Okuna", - name: 'drawer__main_title'); + return Intl.message("My Okuna", name: 'drawer__main_title'); } + String get drawer__my_circles { - return Intl.message("My circles", - name: 'drawer__my_circles'); + return Intl.message("My circles", name: 'drawer__my_circles'); } + String get drawer__my_lists { - return Intl.message("My lists", - name: 'drawer__my_lists'); + return Intl.message("My lists", name: 'drawer__my_lists'); } + String get drawer__my_followers { - return Intl.message("My followers", - name: 'drawer__my_followers'); + return Intl.message("My followers", name: 'drawer__my_followers'); } + String get drawer__my_following { - return Intl.message("My following", - name: 'drawer__my_following'); + return Intl.message("My following", name: 'drawer__my_following'); } + String get drawer__my_invites { - return Intl.message("My invites", - name: 'drawer__my_invites'); + return Intl.message("My invites", name: 'drawer__my_invites'); } + String get drawer__my_pending_mod_tasks { return Intl.message("My pending moderation tasks", name: 'drawer__my_pending_mod_tasks'); } + String get drawer__my_mod_penalties { return Intl.message("My moderation penalties", name: 'drawer__my_mod_penalties'); } + String get drawer__app_account_text { - return Intl.message("App & Account", - name: 'drawer__app_account_text'); + return Intl.message("App & Account", name: 'drawer__app_account_text'); } + String get drawer__themes { - return Intl.message("Themes", - name: 'drawer__themes'); + return Intl.message("Themes", name: 'drawer__themes'); } + String get drawer__global_moderation { - return Intl.message("Global moderation", - name: 'drawer__global_moderation'); + return Intl.message("Global moderation", name: 'drawer__global_moderation'); } + String get drawer__profile { return Intl.message("Profile", name: 'drawer__profile'); } + String get drawer__connections { return Intl.message("My connections", name: 'drawer__connections'); } + String get drawer__lists { return Intl.message("My lists", name: 'drawer__lists'); } + String get drawer__settings { return Intl.message("Settings", name: 'drawer__settings'); } + String get drawer__application_settings { - return Intl.message("Application Settings", name: 'drawer__application_settings'); + return Intl.message("Application Settings", + name: 'drawer__application_settings'); } + String get drawer__account_settings { return Intl.message("Account Settings", name: 'drawer__account_settings'); } + + String get drawer__developer_settings { + return Intl.message("Developer Settings", + name: 'drawer__developer_settings'); + } + String get drawer__account_settings_change_email { - return Intl.message("Change Email", name: 'drawer__account_settings_change_email'); + return Intl.message("Change Email", + name: 'drawer__account_settings_change_email'); } + String get drawer__account_settings_change_password { - return Intl.message("Change Password", name: 'drawer__account_settings_change_password'); + return Intl.message("Change Password", + name: 'drawer__account_settings_change_password'); } + String get drawer__account_settings_notifications { - return Intl.message("Notifications", name: 'drawer__account_settings_notifications'); + return Intl.message("Notifications", + name: 'drawer__account_settings_notifications'); } + String get drawer__account_settings_language_text { - return Intl.message("Language", name: 'drawer__account_settings_language_text'); + return Intl.message("Language", + name: 'drawer__account_settings_language_text'); } + String drawer__account_settings_language(String currentUserLanguage) { return Intl.message("Language ($currentUserLanguage)", - args: [currentUserLanguage], - name: 'drawer__account_settings_language'); + args: [currentUserLanguage], name: 'drawer__account_settings_language'); } + String get drawer__account_settings_blocked_users { - return Intl.message("Blocked users", name: 'drawer__account_settings_blocked_users'); + return Intl.message("Blocked users", + name: 'drawer__account_settings_blocked_users'); } + String get drawer__account_settings_delete_account { - return Intl.message("Delete account", name: 'drawer__account_settings_delete_account'); + return Intl.message("Delete account", + name: 'drawer__account_settings_delete_account'); } + String get drawer__help { return Intl.message("Support & Feedback", name: 'drawer__help'); } + String get drawer__customize { return Intl.message("Customize", name: 'drawer__customize'); } + String get drawer__logout { return Intl.message("Log out", name: 'drawer__logout'); } + String get drawer__useful_links_title { return Intl.message("Useful links", name: 'drawer__useful_links_title'); } + String get drawer__useful_links_guidelines { return Intl.message("Okuna guidelines", name: 'drawer__useful_links_guidelines'); } + String get drawer__useful_links_guidelines_desc { - return Intl.message("The guidelines we're all expected to follow for a healthy and friendly co-existence.", + return Intl.message( + "The guidelines we're all expected to follow for a healthy and friendly co-existence.", name: 'drawer__useful_links_guidelines_desc'); } + String get drawer__useful_links_guidelines_github { return Intl.message("Github project board", name: 'drawer__useful_links_guidelines_github'); } + String get drawer__useful_links_guidelines_github_desc { return Intl.message("Take a look at what we're currently working on", name: 'drawer__useful_links_guidelines_github_desc'); } + String get drawer__useful_links_guidelines_feature_requests { return Intl.message("Feature requests", name: 'drawer__useful_links_guidelines_feature_requests'); } + String get drawer__useful_links_guidelines_feature_requests_desc { return Intl.message("Request a feature or upvote existing requests", name: 'drawer__useful_links_guidelines_feature_requests_desc'); } + String get drawer__useful_links_guidelines_bug_tracker { return Intl.message("Bug tracker", name: 'drawer__useful_links_guidelines_bug_tracker'); } + String get drawer__useful_links_guidelines_bug_tracker_desc { return Intl.message("Report a bug or upvote existing bugs", name: 'drawer__useful_links_guidelines_bug_tracker_desc'); } + String get drawer__useful_links_guidelines_handbook { return Intl.message("Okuna user guide", name: 'drawer__useful_links_guidelines_handbook'); } + String get drawer__useful_links_guidelines_handbook_desc { - return Intl.message("A book with everything there is to know about using the platform", + return Intl.message( + "A book with everything there is to know about using the platform", name: 'drawer__useful_links_guidelines_handbook_desc'); } + String get drawer__useful_links_support { - return Intl.message("Support Okuna", - name: 'drawer__useful_links_support'); + return Intl.message("Support Okuna", name: 'drawer__useful_links_support'); } + String get drawer__useful_links_support_desc { return Intl.message("Find a way you can support us on our journey!", name: 'drawer__useful_links_support_desc'); } + String get drawer__useful_links_slack_channel { return Intl.message("Community Slack channel", name: 'drawer__useful_links_slack_channel'); } + String get drawer__useful_links_slack_channel_desc { return Intl.message("A place to discuss everything about Okuna", name: 'drawer__useful_links_slack_channel_desc'); @@ -561,8 +788,30 @@ class LocalizationService { return Intl.message("Unknown error", name: 'error__unknown_error'); } + String get error__receive_share_temp_write_failed { + return Intl.message('Failed to copy shared file to temporary location', + name: 'error__receive_share_temp_write_failed'); + } + + String get error__receive_share_temp_write_denied { + return Intl.message( + 'Denied permission to copy shared file to temporary location', + name: 'error__receive_share_temp_write_denied'); + } + + String get error__receive_share_invalid_uri_scheme { + return Intl.message('Failed to receive share', + name: 'error__receive_share_invalid_uri_scheme'); + } + + String get error__receive_share_file_not_found { + return Intl.message('Shared file could not be found', + name: 'error__receive_share_file_not_found'); + } + String get error__no_internet_connection { - return Intl.message("No internet connection", name: 'error__no_internet_connection'); + return Intl.message("No internet connection", + name: 'error__no_internet_connection'); } String get community__no { @@ -598,65 +847,69 @@ class LocalizationService { } String get community__member_capitalized { - return Intl.message("Member", - name: 'community__member_capitalized'); + return Intl.message("Member", name: 'community__member_capitalized'); } String get community__members_capitalized { - return Intl.message("Members", - name: 'community__members_capitalized'); + return Intl.message("Members", name: 'community__members_capitalized'); } String get community__admin_desc { - return Intl.message("This will allow the member to edit the community details, administrators, moderators and banned users.", + return Intl.message( + "This will allow the member to edit the community details, administrators, moderators and banned users.", name: 'community__admin_desc'); } String get community__confirmation_title { - return Intl.message("Confirmation", - name: 'community__confirmation_title'); + return Intl.message("Confirmation", name: 'community__confirmation_title'); + } + + String get community__retry_loading_posts { + return Intl.message("Tap to retry", name: 'community__retry_loading_posts'); } String community__admin_add_confirmation(String username) { - return Intl.message("Are you sure you want to add @$username as a community administrator?", + return Intl.message( + "Are you sure you want to add @$username as a community administrator?", args: [username], name: 'community__admin_add_confirmation'); } String community__ban_confirmation(String username) { return Intl.message("Are you sure you want to ban @$username?", - args: [username], - name: 'community__ban_confirmation'); + args: [username], name: 'community__ban_confirmation'); } String get community__ban_desc { - return Intl.message("This will remove the user from the community and disallow them from joining again.", + return Intl.message( + "This will remove the user from the community and disallow them from joining again.", name: 'community__ban_desc'); } String community__moderator_add_confirmation(String username) { - return Intl.message("Are you sure you want to add @$username as a community moderator?", + return Intl.message( + "Are you sure you want to add @$username as a community moderator?", args: [username], name: 'community__moderator_add_confirmation'); } String get community__moderator_desc { - return Intl.message("This will allow the member to edit the community details, moderators and banned users.", + return Intl.message( + "This will allow the member to edit the community details, moderators and banned users.", name: 'community__moderator_desc'); } String get community__moderators_you { - return Intl.message("You", - name: 'community__moderators_you'); + return Intl.message("You", name: 'community__moderators_you'); } String get community__moderators_title { - return Intl.message("Moderators", - name: 'community__moderators_title'); + return Intl.message("Moderators", name: 'community__moderators_title'); } String get community__leave_desc { - return Intl.message("You won't see its posts in your timeline nor will be able to post to it anymore.", + return Intl.message( + "You won't see its posts in your timeline nor will be able to post to it anymore.", name: 'community__leave_desc'); } @@ -686,23 +939,21 @@ class LocalizationService { } String get community__delete_desc { - return Intl.message("You won't see it's posts in your timeline nor will be able to post to it anymore.", + return Intl.message( + "You won't see it's posts in your timeline nor will be able to post to it anymore.", name: 'community__delete_desc'); } String get community__actions_manage_text { - return Intl.message("Manage", - name: 'community__actions_manage_text'); + return Intl.message("Manage", name: 'community__actions_manage_text'); } String get community__manage_title { - return Intl.message("Manage community", - name: 'community__manage_title'); + return Intl.message("Manage community", name: 'community__manage_title'); } String get community__manage_details_title { - return Intl.message("Details", - name: 'community__manage_details_title'); + return Intl.message("Details", name: 'community__manage_details_title'); } String get community__manage_details_desc { @@ -721,8 +972,7 @@ class LocalizationService { } String get community__manage_mods_title { - return Intl.message("Moderators", - name: 'community__manage_mods_title'); + return Intl.message("Moderators", name: 'community__manage_mods_title'); } String get community__manage_mods_desc { @@ -731,8 +981,7 @@ class LocalizationService { } String get community__manage_banned_title { - return Intl.message("Banned users", - name: 'community__manage_banned_title'); + return Intl.message("Banned users", name: 'community__manage_banned_title'); } String get community__manage_banned_desc { @@ -766,7 +1015,8 @@ class LocalizationService { } String get community__manage_invite_desc { - return Intl.message("Invite your connections and followers to join the community.", + return Intl.message( + "Invite your connections and followers to join the community.", name: 'community__manage_invite_desc'); } @@ -776,7 +1026,7 @@ class LocalizationService { } String get community__manage_delete_desc { - return Intl.message("Delete the community, forever." , + return Intl.message("Delete the community, forever.", name: 'community__manage_delete_desc'); } @@ -786,7 +1036,7 @@ class LocalizationService { } String get community__manage_leave_desc { - return Intl.message("Leave the community." , + return Intl.message("Leave the community.", name: 'community__manage_leave_desc'); } @@ -816,28 +1066,23 @@ class LocalizationService { } String get community__refreshing { - return Intl.message("Refreshing community", - name: 'community__refreshing'); + return Intl.message("Refreshing community", name: 'community__refreshing'); } String get community__posts { - return Intl.message("Posts", - name: 'community__posts'); + return Intl.message("Posts", name: 'community__posts'); } String get community__about { - return Intl.message("About", - name: 'community__about'); + return Intl.message("About", name: 'community__about'); } String get community__category { - return Intl.message("category.", - name: 'community__category'); + return Intl.message("category.", name: 'community__category'); } String get community__categories { - return Intl.message("categories.", - name: 'community__categories'); + return Intl.message("categories.", name: 'community__categories'); } String get community__add_administrators_title { @@ -852,7 +1097,8 @@ class LocalizationService { String get community__member { return Intl.message("member", - desc: 'Currently not used in app, reserved for potential use. Could be used as: Showing 1 member', + desc: + 'Currently not used in app, reserved for potential use. Could be used as: Showing 1 member', name: 'community__member'); } @@ -869,82 +1115,83 @@ class LocalizationService { String get community__administrator_text { return Intl.message("administrator", - desc: 'Currently unsused, reserved for potential use. Could be used as Showing 1 administrator', + desc: + 'Currently unsused, reserved for potential use. Could be used as Showing 1 administrator', name: 'community__administrator_text'); } String get community__administrator_plural { return Intl.message("administrators", - desc: 'Egs. Search administrators, See list_search_text in user_search.arb ', + desc: + 'Egs. Search administrators, See list_search_text in user_search.arb ', name: 'community__administrator_plural'); } String get community__administrator_you { - return Intl.message("You", - name: 'community__administrator_you'); + return Intl.message("You", name: 'community__administrator_you'); } String get community__user_you_text { - return Intl.message("You", - name: 'community__user_you_text'); + return Intl.message("You", name: 'community__user_you_text'); } String community__pick_upto_max(int max) { return Intl.message("Pick up to $max categories", - args:[max], - name: 'community__pick_upto_max'); + args: [max], name: 'community__pick_upto_max'); } String community__pick_atleast_min_category(int min) { return Intl.message("You must pick at least $min category.", - args:[min], + args: [min], desc: 'You must pick at least 1 category', name: 'community__pick_atleast_min_category'); } String community__pick_atleast_min_categories(int min) { return Intl.message("You must pick at least $min categories.", - args:[min], - desc: 'Eg. Variable min will be 3-5. You must pick at least (3-5) categories', + args: [min], + desc: + 'Eg. Variable min will be 3-5. You must pick at least (3-5) categories', name: 'community__pick_atleast_min_categories'); } String get community__ban_user_title { - return Intl.message("Ban user", - name: 'community__ban_user_title'); + return Intl.message("Ban user", name: 'community__ban_user_title'); } String get community__banned_users_title { - return Intl.message("Banned users", - name: 'community__banned_users_title'); + return Intl.message("Banned users", name: 'community__banned_users_title'); } String get community__banned_user_text { return Intl.message("banned user", - desc: 'Currently unsused, reserved for potential use. Could be used as Showing 1 banned user', + desc: + 'Currently unsused, reserved for potential use. Could be used as Showing 1 banned user', name: 'community__banned_user_text'); } String get community__banned_users_text { return Intl.message("banned users", - desc: 'Egs. Search banned users, See list_search_text in user_search.arb ', + desc: + 'Egs. Search banned users, See list_search_text in user_search.arb ', name: 'community__banned_users_text'); } String get community__favorites_title { - return Intl.message("Favorites", - name: 'community__favorites_title'); + return Intl.message("Favorites", name: 'community__favorites_title'); } String get community__favorite_community { return Intl.message("favorite community", - desc: 'Currently unsused, reserved for potential use. Could be used as Showing 1 favorite community', + desc: + 'Currently unsused, reserved for potential use. Could be used as Showing 1 favorite community', name: 'community__favorite_community'); } String get community__favorite_communities { return Intl.message("favorite communities", - desc: 'Egs. Search favorite communities, See list_search_text in user_search.arb ', + desc: + 'Egs. Search favorite communities, See list_search_text in user_search.arb ', name: 'community__favorite_communities'); } @@ -955,47 +1202,51 @@ class LocalizationService { String get community__administrated_community { return Intl.message("administrated community", - desc: 'Currently unsused, reserved for potential use. Could be used as Showing 1 administrated community', + desc: + 'Currently unsused, reserved for potential use. Could be used as Showing 1 administrated community', name: 'community__administrated_community'); } String get community__administrated_communities { return Intl.message("administrated communities", - desc: 'Egs. Search administrated communities, See list_search_text in user_search.arb ', + desc: + 'Egs. Search administrated communities, See list_search_text in user_search.arb ', name: 'community__administrated_communities'); } String get community__moderated_title { - return Intl.message("Moderated", - name: 'community__moderated_title'); + return Intl.message("Moderated", name: 'community__moderated_title'); } String get community__moderated_community { return Intl.message("moderated community", - desc: 'Currently unsused, reserved for potential use. Could be used as Showing 1 moderated community', + desc: + 'Currently unsused, reserved for potential use. Could be used as Showing 1 moderated community', name: 'community__moderated_community'); } String get community__moderated_communities { return Intl.message("moderated communities", - desc: 'Egs. Search moderated communities, See list_search_text in user_search.arb ', + desc: + 'Egs. Search moderated communities, See list_search_text in user_search.arb ', name: 'community__moderated_communities'); } String get community__joined_title { - return Intl.message("Joined", - name: 'community__joined_title'); + return Intl.message("Joined", name: 'community__joined_title'); } String get community__joined_community { return Intl.message("joined community", - desc: 'Currently unsused, reserved for potential use. Could be used as Showing 1 joined community', + desc: + 'Currently unsused, reserved for potential use. Could be used as Showing 1 joined community', name: 'community__joined_community'); } String get community__joined_communities { return Intl.message("joined communities", - desc: 'Egs. Search joined communities, See list_search_text in user_search.arb ', + desc: + 'Egs. Search joined communities, See list_search_text in user_search.arb ', name: 'community__joined_communities'); } @@ -1005,18 +1256,17 @@ class LocalizationService { } String get community__refresh_text { - return Intl.message("Refresh", - name: 'community__refresh_text'); + return Intl.message("Refresh", name: 'community__refresh_text'); } String get community__trending_none_found { - return Intl.message("No trending communities found. Try again in a few minutes.", + return Intl.message( + "No trending communities found. Try again in a few minutes.", name: 'community__trending_none_found'); } String get community__trending_refresh { - return Intl.message("Refresh", - name: 'community__trending_refresh'); + return Intl.message("Refresh", name: 'community__trending_refresh'); } String get community__trending_in_all { @@ -1026,28 +1276,25 @@ class LocalizationService { String community__trending_in_category(String categoryName) { return Intl.message("Trending in $categoryName", - args: [categoryName], - name: 'community__trending_in_category'); + args: [categoryName], name: 'community__trending_in_category'); } String get community__communities_title { - return Intl.message("Communities", - name: 'community__communities_title'); + return Intl.message("Communities", name: 'community__communities_title'); } String get community__communities_no_category_found { - return Intl.message("No categories found. Please try again in a few minutes.", + return Intl.message( + "No categories found. Please try again in a few minutes.", name: 'community__communities_no_category_found'); } String get community__communities_refresh_text { - return Intl.message("Refresh", - name: 'community__communities_refresh_text'); + return Intl.message("Refresh", name: 'community__communities_refresh_text'); } String get community__communities_all_text { - return Intl.message("All", - name: 'community__communities_all_text'); + return Intl.message("All", name: 'community__communities_all_text'); } String get community__invite_to_community_title { @@ -1057,13 +1304,15 @@ class LocalizationService { String get community__invite_to_community_resource_singular { return Intl.message("connection or follower", - desc: 'Currently unsused, reserved for potential use. Could be used as Showing 1 connection or follower', + desc: + 'Currently unsused, reserved for potential use. Could be used as Showing 1 connection or follower', name: 'community__invite_to_community_resource_singular'); } String get community__invite_to_community_resource_plural { return Intl.message("connections and followers", - desc: 'Egs. Search connections and followers, See list_search_text in user_search.arb ', + desc: + 'Egs. Search connections and followers, See list_search_text in user_search.arb ', name: 'community__invite_to_community_resource_plural'); } @@ -1078,8 +1327,7 @@ class LocalizationService { } String get community__save_community_label_title { - return Intl.message("Title", - name: 'community__save_community_label_title'); + return Intl.message("Title", name: 'community__save_community_label_title'); } String get community__save_community_label_title_hint_text { @@ -1088,8 +1336,7 @@ class LocalizationService { } String get community__save_community_name_title { - return Intl.message("Name", - name: 'community__save_community_name_title'); + return Intl.message("Name", name: 'community__save_community_name_title'); } String get community__save_community_name_title_hint_text { @@ -1099,8 +1346,7 @@ class LocalizationService { String community__save_community_name_taken(String takenName) { return Intl.message("Community name '$takenName' is taken", - args: [takenName], - name: 'community__save_community_name_taken'); + args: [takenName], name: 'community__save_community_name_taken'); } String get community__save_community_name_label_color { @@ -1165,7 +1411,8 @@ class LocalizationService { String get community__save_community_name_label_member_adjective_hint_text { return Intl.message("e.g. traveler, photographer, gamer.", - name: 'community__save_community_name_label_member_adjective_hint_text'); + name: + 'community__save_community_name_label_member_adjective_hint_text'); } String get community__save_community_name_label_members_adjective { @@ -1175,7 +1422,8 @@ class LocalizationService { String get community__save_community_name_label_members_adjective_hint_text { return Intl.message("e.g. travelers, photographers, gamers.", - name: 'community__save_community_name_label_members_adjective_hint_text'); + name: + 'community__save_community_name_label_members_adjective_hint_text'); } String get community__save_community_edit_community { @@ -1189,8 +1437,7 @@ class LocalizationService { } String get community__save_community_save_text { - return Intl.message("Save", - name: 'community__save_community_save_text'); + return Intl.message("Save", name: 'community__save_community_save_text'); } String get community__save_community_create_text { @@ -1204,49 +1451,42 @@ class LocalizationService { } String get community__join_community { - return Intl.message("Join", - name: 'community__join_community'); + return Intl.message("Join", name: 'community__join_community'); } String get community__leave_community { - return Intl.message("Leave", - name: 'community__leave_community'); + return Intl.message("Leave", name: 'community__leave_community'); } String get community__community_staff { - return Intl.message("Community staff", - name: 'community__community_staff'); + return Intl.message("Community staff", name: 'community__community_staff'); } String get community__post_singular { - return Intl.message("post", - name: 'community__post_singular'); + return Intl.message("post", name: 'community__post_singular'); } String get community__post_plural { - return Intl.message("posts", - name: 'community__post_plural'); + return Intl.message("posts", name: 'community__post_plural'); } String get community__rules_title { - return Intl.message("Community rules", - name: 'community__rules_title'); + return Intl.message("Community rules", name: 'community__rules_title'); } String get community__rules_text { - return Intl.message("Rules", - name: 'community__rules_text'); + return Intl.message("Rules", name: 'community__rules_text'); } String get community__name_characters_error { - return Intl.message("Name can only contain alphanumeric characters and underscores.", + return Intl.message( + "Name can only contain alphanumeric characters and underscores.", name: 'community__name_characters_error'); } String community__name_range_error(int maxLength) { return Intl.message("Name can't be longer than $maxLength characters.", - args: [maxLength], - name: 'community__name_range_error'); + args: [maxLength], name: 'community__name_range_error'); } String get community__name_empty_error { @@ -1256,8 +1496,7 @@ class LocalizationService { String community__title_range_error(int maxLength) { return Intl.message("Title can't be longer than $maxLength characters.", - args: [maxLength], - name: 'community__title_range_error'); + args: [maxLength], name: 'community__title_range_error'); } String get community__title_empty_error { @@ -1267,8 +1506,7 @@ class LocalizationService { String community__rules_range_error(int maxLength) { return Intl.message("Rules can't be longer than $maxLength characters.", - args: [maxLength], - name: 'community__rules_range_error'); + args: [maxLength], name: 'community__rules_range_error'); } String get community__rules_empty_error { @@ -1277,104 +1515,95 @@ class LocalizationService { } String community__description_range_error(int maxLength) { - return Intl.message("Description can't be longer than $maxLength characters.", + return Intl.message( + "Description can't be longer than $maxLength characters.", args: [maxLength], name: 'community__description_range_error'); } String community__adjectives_range_error(int maxLength) { - return Intl.message("Adjectives can't be longer than $maxLength characters.", + return Intl.message( + "Adjectives can't be longer than $maxLength characters.", args: [maxLength], - desc: 'This refers to the customisable adjectives assigned to community members,eg. 1k travellers,5k photographers', + desc: + 'This refers to the customisable adjectives assigned to community members,eg. 1k travellers,5k photographers', name: 'community__adjectives_range_error'); } String get user_search__search_text { - return Intl.message("Search...", - name: 'user_search__search_text'); + return Intl.message("Search...", name: 'user_search__search_text'); } String get user_search__communities { - return Intl.message("Communities", - name: 'user_search__communities'); + return Intl.message("Communities", name: 'user_search__communities'); } String get user_search__users { - return Intl.message("Users", - name: 'user_search__users'); + return Intl.message("Users", name: 'user_search__users'); } String user_search__list_search_text(String resourcePluralName) { return Intl.message("Search $resourcePluralName ...", args: [resourcePluralName], - desc: 'resourcePluralName can take many forms foreg. Search members... , Search accepted invites, Search communities.. etc.', + desc: + 'resourcePluralName can take many forms foreg. Search members... , Search accepted invites, Search communities.. etc.', name: 'user_search__list_search_text'); } String user_search__list_no_results_found(String resourcePluralName) { return Intl.message("No $resourcePluralName found.", args: [resourcePluralName], - desc: 'Used in a generic list widget. Can be No users found. No communities found. No pending invites found. Its always a plural. ', + desc: + 'Used in a generic list widget. Can be No users found. No communities found. No pending invites found. Its always a plural. ', name: 'user_search__list_no_results_found'); } String get user_search__list_refresh_text { - return Intl.message("Refresh", - name: 'user_search__list_refresh_text'); + return Intl.message("Refresh", name: 'user_search__list_refresh_text'); } String get user_search__list_retry { - return Intl.message("Tap to retry.", - name: 'user_search__list_retry'); + return Intl.message("Tap to retry.", name: 'user_search__list_retry'); } String get user_search__cancel { - return Intl.message("Cancel", - name: 'user_search__cancel'); + return Intl.message("Cancel", name: 'user_search__cancel'); } String user_search__searching_for(String searchQuery) { return Intl.message("Searching for '$searchQuery'", - args: [searchQuery], - name: 'user_search__searching_for'); + args: [searchQuery], name: 'user_search__searching_for'); } String user_search__no_results_for(String searchQuery) { return Intl.message("No results for '$searchQuery'.", - args: [searchQuery], - name: 'user_search__no_results_for'); + args: [searchQuery], name: 'user_search__no_results_for'); } String user_search__no_communities_for(String searchQuery) { return Intl.message("No communities found for '$searchQuery'.", - args: [searchQuery], - name: 'user_search__no_communities_for'); + args: [searchQuery], name: 'user_search__no_communities_for'); } String user_search__no_users_for(String searchQuery) { return Intl.message("No users found for '$searchQuery'.", - args: [searchQuery], - name: 'user_search__no_users_for'); + args: [searchQuery], name: 'user_search__no_users_for'); } String get post__open_post { - return Intl.message("Open post", - name: 'post__open_post'); + return Intl.message("Open post", name: 'post__open_post'); } String get post__close_post { - return Intl.message("Close post", - name: 'post__close_post'); + return Intl.message("Close post", name: 'post__close_post'); } String get post__post_opened { - return Intl.message("Post opened", - name: 'post__post_opened'); + return Intl.message("Post opened", name: 'post__post_opened'); } String get post__post_closed { - return Intl.message("Post closed ", - name: 'post__post_closed'); + return Intl.message("Post closed ", name: 'post__post_closed'); } String get post__comment_required_error { @@ -1384,8 +1613,7 @@ class LocalizationService { String post__comment_maxlength_error(int maxLength) { return Intl.message("A comment can't be longer than $maxLength characters.", - args: [maxLength], - name: 'post__comment_maxlength_error'); + args: [maxLength], name: 'post__comment_maxlength_error'); } String get post__timeline_posts_all_loaded { @@ -1398,16 +1626,6 @@ class LocalizationService { name: 'post__timeline_posts_refreshing_drhoo_title'); } - String get post__timeline_posts_refreshing_drhoo_subtitle { - return Intl.message("Loading your timeline.", - name: 'post__timeline_posts_refreshing_drhoo_subtitle'); - } - - String get post__timeline_posts_no_more_drhoo_title { - return Intl.message("Your timeline is empty.", - name: 'post__timeline_posts_no_more_drhoo_title'); - } - String get post__timeline_posts_no_more_drhoo_subtitle { return Intl.message("Follow users or join a community to get started!", name: 'post__timeline_posts_no_more_drhoo_subtitle'); @@ -1440,100 +1658,88 @@ class LocalizationService { String post__no_circles_for(String circlesSearchQuery) { return Intl.message("No circles found matching '$circlesSearchQuery'.", - args: [circlesSearchQuery], - name: 'post__no_circles_for'); + args: [circlesSearchQuery], name: 'post__no_circles_for'); } String get post__share_to_circles { - return Intl.message("Share to circles", - name: 'post__share_to_circles'); + return Intl.message("Share to circles", name: 'post__share_to_circles'); } String get post__profile_counts_post { - return Intl.message(" Post", - name: 'post__profile_counts_post'); + return Intl.message(" Post", name: 'post__profile_counts_post'); } String get post__profile_counts_posts { - return Intl.message(" Posts", - name: 'post__profile_counts_posts'); + return Intl.message(" Posts", name: 'post__profile_counts_posts'); } String get post__profile_counts_followers { - return Intl.message(" Followers", - name: 'post__profile_counts_followers'); + return Intl.message(" Followers", name: 'post__profile_counts_followers'); } String get post__profile_counts_following { - return Intl.message(" Following", - name: 'post__profile_counts_following'); + return Intl.message(" Following", name: 'post__profile_counts_following'); } String get post__profile_counts_follower { - return Intl.message(" Follower", - name: 'post__profile_counts_follower'); + return Intl.message(" Follower", name: 'post__profile_counts_follower'); + } + + String get post__profile_retry_loading_posts { + return Intl.message("Tap to retry", + name: 'post__profile_retry_loading_posts'); } String get post__action_comment { - return Intl.message("Comment", - name: 'post__action_comment'); + return Intl.message("Comment", name: 'post__action_comment'); } String get post__action_react { - return Intl.message("React", - name: 'post__action_react'); + return Intl.message("React", name: 'post__action_react'); } String get post__action_reply { - return Intl.message("Reply", - name: 'post__action_reply'); + return Intl.message("Reply", name: 'post__action_reply'); } String get post__share { - return Intl.message("Share", - name: 'post__share'); + return Intl.message("Share", name: 'post__share'); } String get post__share_to { - return Intl.message("Share to", - name: 'post__share_to'); + return Intl.message("Share to", name: 'post__share_to'); } String get post__sharing_post_to { - return Intl.message("Sharing post to", - name: 'post__sharing_post_to'); + return Intl.message("Sharing post to", name: 'post__sharing_post_to'); } String get post__you_shared_with { - return Intl.message("You shared with", - name: 'post__you_shared_with'); + return Intl.message("You shared with", name: 'post__you_shared_with'); } String get post__shared_privately_on { return Intl.message("Shared privately on", - desc: 'Eg. Shared privately on @shantanu\'s circles. See following string, usernames_circles . Will combine this in future, needs refactoring.', + desc: + 'Eg. Shared privately on @shantanu\'s circles. See following string, usernames_circles . Will combine this in future, needs refactoring.', name: 'post__shared_privately_on'); } String post__usernames_circles(String postCreatorUsername) { return Intl.message("@$postCreatorUsername's circles", - args: [postCreatorUsername], - name: 'post__usernames_circles'); + args: [postCreatorUsername], name: 'post__usernames_circles'); } String get post__share_community { - return Intl.message("Share", - name: 'post__share_community'); + return Intl.message("Share", name: 'post__share_community'); } String get post__share_to_community { - return Intl.message("Share to community", - name: 'post__share_to_community'); + return Intl.message("Share to community", name: 'post__share_to_community'); } String get post__share_community_title { - return Intl.message("A community", - name: 'post__share_community_title'); + return Intl.message("A community", name: 'post__share_community_title'); } String get post__share_community_desc { @@ -1542,8 +1748,7 @@ class LocalizationService { } String get post__my_circles { - return Intl.message("My circles", - name: 'post__my_circles'); + return Intl.message("My circles", name: 'post__my_circles'); } String get post__my_circles_desc { @@ -1552,13 +1757,11 @@ class LocalizationService { } String get post__world_circle_name { - return Intl.message("World", - name: 'post__world_circle_name'); + return Intl.message("World", name: 'post__world_circle_name'); } String get post__search_circles { - return Intl.message("Search circles...", - name: 'post__search_circles'); + return Intl.message("Search circles...", name: 'post__search_circles'); } String get post__reaction_list_tap_retry { @@ -1567,23 +1770,37 @@ class LocalizationService { } String get post__create_new { - return Intl.message("New post", - name: 'post__create_new'); + return Intl.message("New post", name: 'post__create_new'); + } + + String get post__create_new_post_label { + return Intl.message("Create new post", name: 'post__create_new_post_label'); + } + + String get post__create_new_community_post_label { + return Intl.message("Create new communtiy post", + name: 'post__create_new_community_post_label'); + } + + String get post__close_create_post_label { + return Intl.message("Close create new post", + name: 'post__close_create_post_label'); } String get post__create_next { - return Intl.message("Next", - name: 'post__create_next'); + return Intl.message("Next", name: 'post__create_next'); } String get post__create_photo { - return Intl.message("Photo", - name: 'post__create_photo'); + return Intl.message("Photo", name: 'post__create_photo'); + } + + String get post__create_video { + return Intl.message("Video", name: 'post__create_video'); } String get post__commenter_post_text { - return Intl.message("Post", - name: 'post__commenter_post_text'); + return Intl.message("Post", name: 'post__commenter_post_text'); } String get post__commenter_write_something { @@ -1592,18 +1809,15 @@ class LocalizationService { } String get post__edit_title { - return Intl.message("Edit post", - name: 'post__edit_title'); + return Intl.message("Edit post", name: 'post__edit_title'); } String get post__edit_save { - return Intl.message("Save", - name: 'post__edit_save'); + return Intl.message("Save", name: 'post__edit_save'); } String get post__commenter_expanded_save { - return Intl.message("Save", - name: 'post__commenter_expanded_save'); + return Intl.message("Save", name: 'post__commenter_expanded_save'); } String get post__commenter_expanded_join_conversation { @@ -1622,8 +1836,7 @@ class LocalizationService { } String get post__is_closed { - return Intl.message("Closed post", - name: 'post__is_closed'); + return Intl.message("Closed post", name: 'post__is_closed'); } String get post__comment_reply_expanded_reply_comment { @@ -1632,8 +1845,7 @@ class LocalizationService { } String get post__comment_reply_expanded_post { - return Intl.message("Post", - name: 'post__comment_reply_expanded_post'); + return Intl.message("Post", name: 'post__comment_reply_expanded_post'); } String get post__comment_reply_expanded_reply_hint_text { @@ -1642,44 +1854,38 @@ class LocalizationService { } String get post__trending_posts_title { - return Intl.message("Trending posts", - name: 'post__trending_posts_title'); + return Intl.message("Trending posts", name: 'post__trending_posts_title'); } String get post__trending_posts_no_trending_posts { - return Intl.message("There are no trending posts. Try refreshing in a couple seconds.", + return Intl.message( + "There are no trending posts. Try refreshing in a couple seconds.", name: 'post__trending_posts_no_trending_posts'); } String get post__trending_posts_refresh { - return Intl.message("Refresh", - name: 'post__trending_posts_refresh'); + return Intl.message("Refresh", name: 'post__trending_posts_refresh'); } String post__comments_view_all_comments(int commentsCount) { return Intl.message("View all $commentsCount comments", - args: [commentsCount], - name: 'post__comments_view_all_comments'); + args: [commentsCount], name: 'post__comments_view_all_comments'); } String get post__comments_closed_post { - return Intl.message("Closed post", - name: 'post__comments_closed_post'); + return Intl.message("Closed post", name: 'post__comments_closed_post'); } String get post__comments_disabled { - return Intl.message("Comments disabled", - name: 'post__comments_disabled'); + return Intl.message("Comments disabled", name: 'post__comments_disabled'); } String get post__text_copied { - return Intl.message("Text copied!", - name: 'post__text_copied'); + return Intl.message("Text copied!", name: 'post__text_copied'); } String get post__post_reactions_title { - return Intl.message("Post reactions", - name: 'post__post_reactions_title'); + return Intl.message("Post reactions", name: 'post__post_reactions_title'); } String get post__have_not_shared_anything { @@ -1689,8 +1895,7 @@ class LocalizationService { String post__user_has_not_shared_anything(String name) { return Intl.message("$name has not shared anything yet.", - args: [name], - name: 'post__user_has_not_shared_anything'); + args: [name], name: 'post__user_has_not_shared_anything'); } String get post__comments_header_newest_replies { @@ -1699,8 +1904,7 @@ class LocalizationService { } String get post__comments_header_newer { - return Intl.message("Newer", - name: 'post__comments_header_newer'); + return Intl.message("Newer", name: 'post__comments_header_newer'); } String get post__comments_header_view_newest_replies { @@ -1719,8 +1923,7 @@ class LocalizationService { } String get post__comments_header_older { - return Intl.message("Older", - name: 'post__comments_header_older'); + return Intl.message("Older", name: 'post__comments_header_older'); } String get post__comments_header_view_oldest_replies { @@ -1774,8 +1977,7 @@ class LocalizationService { } String get post__comments_page_title { - return Intl.message("Post comments", - name: 'post__comments_page_title'); + return Intl.message("Post comments", name: 'post__comments_page_title'); } String get post__comments_page_no_more_to_load { @@ -1824,23 +2026,19 @@ class LocalizationService { } String get post__actions_delete { - return Intl.message("Delete post", - name: 'post__actions_delete'); + return Intl.message("Delete post", name: 'post__actions_delete'); } String get post__actions_deleted { - return Intl.message("Post deleted", - name: 'post__actions_deleted'); + return Intl.message("Post deleted", name: 'post__actions_deleted'); } String get post__actions_delete_comment { - return Intl.message("Delete comment", - name: 'post__actions_delete_comment'); + return Intl.message("Delete comment", name: 'post__actions_delete_comment'); } String get post__actions_edit_comment { - return Intl.message("Edit comment", - name: 'post__actions_edit_comment'); + return Intl.message("Edit comment", name: 'post__actions_edit_comment'); } String get post__actions_comment_deleted { @@ -1849,13 +2047,11 @@ class LocalizationService { } String get post__actions_report_text { - return Intl.message("Report", - name: 'post__actions_report_text'); + return Intl.message("Report", name: 'post__actions_report_text'); } String get post__actions_reported_text { - return Intl.message("Reported", - name: 'post__actions_reported_text'); + return Intl.message("Reported", name: 'post__actions_reported_text'); } String get post__actions_show_more_text { @@ -1866,73 +2062,85 @@ class LocalizationService { String get post__time_short_years { return Intl.message("y", - desc: 'Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3y. Keep it as short as possible', + desc: + 'Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3y. Keep it as short as possible', name: 'post__time_short_years'); } String get post__time_short_one_year { return Intl.message("1y", - desc: "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", + desc: + "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", name: 'post__time_short_one_year'); } String get post__time_short_weeks { return Intl.message("w", - desc: 'Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 5w.Keep it as short as possible ', + desc: + 'Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 5w.Keep it as short as possible ', name: 'post__time_short_weeks'); } String get post__time_short_one_week { return Intl.message("1w", - desc: "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", + desc: + "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", name: 'post__time_short_one_week'); } String get post__time_short_days { return Intl.message("d", - desc: 'Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3d. Keep it as short as possible ', + desc: + 'Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3d. Keep it as short as possible ', name: 'post__time_short_days'); } String get post__time_short_one_day { return Intl.message("1d", - desc: "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", + desc: + "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", name: 'post__time_short_one_day'); } String get post__time_short_hours { return Intl.message("h", - desc: 'Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3h.Keep it as short as possible ', + desc: + 'Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 3h.Keep it as short as possible ', name: 'post__time_short_hours'); } String get post__time_short_one_hour { return Intl.message("1h", - desc: "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", + desc: + "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", name: 'post__time_short_one_hour'); } String get post__time_short_minutes { return Intl.message("m", - desc: 'Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 13m.Keep it as short as possible ', + desc: + 'Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 13m.Keep it as short as possible ', name: 'post__time_short_minutes'); } String get post__time_short_seconds { return Intl.message("s", - desc: 'Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 13s Keep it as short as possible ', + desc: + 'Shown in timestamps next to post to indicate how long ago the post/notification was created for.eg 13s Keep it as short as possible ', name: 'post__time_short_seconds'); } String get post__time_short_one_minute { return Intl.message("1m", - desc: "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", + desc: + "No space is intentional, should be as few characters as possible. Since there is not much space where we show this", name: 'post__time_short_one_minute'); } String get post__time_short_now_text { return Intl.message("now", - desc: "Shown when a post was immediately posted, as in time posted is 'now'.Should be as few characters as possible.", + desc: + "Shown when a post was immediately posted, as in time posted is 'now'.Should be as few characters as possible.", name: 'post__time_short_now_text'); } @@ -1944,8 +2152,7 @@ class LocalizationService { String get user__million_postfix { return Intl.message("m", - desc: 'For eg. user has 3m followers', - name: 'user__million_postfix'); + desc: 'For eg. user has 3m followers', name: 'user__million_postfix'); } String get user__billion_postfix { @@ -1955,7 +2162,8 @@ class LocalizationService { } String get user__translate_see_translation { - return Intl.message("See translation", name: 'user__translate_see_translation'); + return Intl.message("See translation", + name: 'user__translate_see_translation'); } String get user__translate_show_original { @@ -1963,21 +2171,20 @@ class LocalizationService { } String get user__follows_lists_account { - return Intl.message("1 Account", - name: 'user__follows_lists_account'); + return Intl.message("1 Account", name: 'user__follows_lists_account'); } String user__follows_lists_accounts(String prettyUsersCount) { return Intl.message("$prettyUsersCount Accounts", args: [prettyUsersCount], - desc: 'prettyUsersCount will be 3m, 50k etc.. so we endup with final string 3k Accounts', + desc: + 'prettyUsersCount will be 3m, 50k etc.. so we endup with final string 3k Accounts', name: 'user__follows_lists_accounts'); } String user__edit_profile_user_name_taken(String username) { return Intl.message("Username @$username is taken", - args: [username], - name: 'user__edit_profile_user_name_taken'); + args: [username], name: 'user__edit_profile_user_name_taken'); } String get user__profile_action_deny_connection { @@ -2007,29 +2214,24 @@ class LocalizationService { String user__profile_location_length_error(int maxLength) { return Intl.message("Location can't be longer than $maxLength characters.", - args: [maxLength], - name: 'user__profile_location_length_error'); + args: [maxLength], name: 'user__profile_location_length_error'); } String user__profile_bio_length_error(int maxLength) { return Intl.message("Bio can't be longer than $maxLength characters.", - args: [maxLength], - name: 'user__profile_bio_length_error'); + args: [maxLength], name: 'user__profile_bio_length_error'); } String get user__follow_button_follow_text { - return Intl.message("Follow", - name: 'user__follow_button_follow_text'); + return Intl.message("Follow", name: 'user__follow_button_follow_text'); } String get user__follow_button_unfollow_text { - return Intl.message("Unfollow", - name: 'user__follow_button_unfollow_text'); + return Intl.message("Unfollow", name: 'user__follow_button_unfollow_text'); } String get user__edit_profile_username { - return Intl.message("Username", - name: 'user__edit_profile_username'); + return Intl.message("Username", name: 'user__edit_profile_username'); } String get user__add_account_update_account_lists { @@ -2043,23 +2245,19 @@ class LocalizationService { } String get user__add_account_update_lists { - return Intl.message("Update lists", - name: 'user__add_account_update_lists'); + return Intl.message("Update lists", name: 'user__add_account_update_lists'); } String get user__add_account_save { - return Intl.message("Save", - name: 'user__add_account_save'); + return Intl.message("Save", name: 'user__add_account_save'); } String get user__add_account_done { - return Intl.message("Done", - name: 'user__add_account_done'); + return Intl.message("Done", name: 'user__add_account_done'); } String get user__add_account_success { - return Intl.message("Success", - name: 'user__add_account_success'); + return Intl.message("Success", name: 'user__add_account_success'); } String get user__emoji_field_none_selected { @@ -2069,13 +2267,11 @@ class LocalizationService { String user__emoji_search_none_found(String searchQuery) { return Intl.message("No emoji found matching '$searchQuery'.", - args: [searchQuery], - name: 'user__emoji_search_none_found'); + args: [searchQuery], name: 'user__emoji_search_none_found'); } String get user__follow_lists_title { - return Intl.message("My lists", - name: 'user__follow_lists_title'); + return Intl.message("My lists", name: 'user__follow_lists_title'); } String get user__follow_lists_search_for { @@ -2090,8 +2286,7 @@ class LocalizationService { String user__follow_lists_no_list_found_for(String searchQuery) { return Intl.message("No list found for '$searchQuery'", - args: [searchQuery], - name: 'user__follow_lists_no_list_found_for'); + args: [searchQuery], name: 'user__follow_lists_no_list_found_for'); } String get user__list_name_empty_error { @@ -2100,7 +2295,8 @@ class LocalizationService { } String user__list_name_range_error(int maxLength) { - return Intl.message("List name must be no longer than $maxLength characters.", + return Intl.message( + "List name must be no longer than $maxLength characters.", args: [maxLength], name: 'user__list_name_range_error'); } @@ -2111,14 +2307,14 @@ class LocalizationService { } String user__circle_name_range_error(int maxLength) { - return Intl.message("Circle name must be no longer than $maxLength characters.", + return Intl.message( + "Circle name must be no longer than $maxLength characters.", args: [maxLength], name: 'user__circle_name_range_error'); } String get user__save_follows_list_name { - return Intl.message("Name", - name: 'user__save_follows_list_name'); + return Intl.message("Name", name: 'user__save_follows_list_name'); } String get user__save_follows_list_hint_text { @@ -2126,35 +2322,29 @@ class LocalizationService { name: 'user__save_follows_list_hint_text'); } - String user__save_follows_list_name_taken (String listName){ + String user__save_follows_list_name_taken(String listName) { return Intl.message("List name '$listName' is taken", - args: [listName], - name: 'user__save_follows_list_name_taken'); + args: [listName], name: 'user__save_follows_list_name_taken'); } String get user__save_follows_list_emoji { - return Intl.message("Emoji", - name: 'user__save_follows_list_emoji'); + return Intl.message("Emoji", name: 'user__save_follows_list_emoji'); } String get user__save_follows_list_users { - return Intl.message("Users", - name: 'user__save_follows_list_users'); + return Intl.message("Users", name: 'user__save_follows_list_users'); } String get user__save_follows_list_edit { - return Intl.message("Edit list", - name: 'user__save_follows_list_edit'); + return Intl.message("Edit list", name: 'user__save_follows_list_edit'); } String get user__save_follows_list_create { - return Intl.message("Create list", - name: 'user__save_follows_list_create'); + return Intl.message("Create list", name: 'user__save_follows_list_create'); } String get user__save_follows_list_save { - return Intl.message("Save", - name: 'user__save_follows_list_save'); + return Intl.message("Save", name: 'user__save_follows_list_save'); } String get user__save_follows_list_emoji_required_error { @@ -2163,33 +2353,27 @@ class LocalizationService { } String get user__follows_list_edit { - return Intl.message("Edit", - name: 'user__follows_list_edit'); + return Intl.message("Edit", name: 'user__follows_list_edit'); } String get user__follows_list_header_title { - return Intl.message("Users", - name: 'user__follows_list_header_title'); + return Intl.message("Users", name: 'user__follows_list_header_title'); } String get user__edit_profile_name { - return Intl.message("Name", - name: 'user__edit_profile_name'); + return Intl.message("Name", name: 'user__edit_profile_name'); } String get user__edit_profile_url { - return Intl.message("Url", - name: 'user__edit_profile_url'); + return Intl.message("Url", name: 'user__edit_profile_url'); } String get user__edit_profile_location { - return Intl.message("Location", - name: 'user__edit_profile_location'); + return Intl.message("Location", name: 'user__edit_profile_location'); } String get user__edit_profile_bio { - return Intl.message("Bio", - name: 'user__edit_profile_bio'); + return Intl.message("Bio", name: 'user__edit_profile_bio'); } String get user__edit_profile_followers_count { @@ -2197,40 +2381,38 @@ class LocalizationService { name: 'user__edit_profile_followers_count'); } + String get user__edit_profile_community_posts { + return Intl.message("Community posts", + name: 'user__edit_profile_community_posts'); + } + String get user__edit_profile_title { - return Intl.message("Edit profile", - name: 'user__edit_profile_title'); + return Intl.message("Edit profile", name: 'user__edit_profile_title'); } String get user__edit_profile_save_text { - return Intl.message("Save", - name: 'user__edit_profile_save_text'); + return Intl.message("Save", name: 'user__edit_profile_save_text'); } String get user__edit_profile_pick_image { - return Intl.message("Pick image", - name: 'user__edit_profile_pick_image'); + return Intl.message("Pick image", name: 'user__edit_profile_pick_image'); } String get user__edit_profile_delete { - return Intl.message("Delete", - name: 'user__edit_profile_delete'); + return Intl.message("Delete", name: 'user__edit_profile_delete'); } String user__edit_profile_pick_image_error_too_large(int limit) { return Intl.message("Image too large (limit: $limit MB)", - args: [limit], - name: 'user__edit_profile_pick_image_error_too_large'); + args: [limit], name: 'user__edit_profile_pick_image_error_too_large'); } String get user__tile_following { - return Intl.message(" · Following", - name: 'user__tile_following'); + return Intl.message(" · Following", name: 'user__tile_following'); } String get user__following_text { - return Intl.message("Following", - name: 'user__following_text'); + return Intl.message("Following", name: 'user__following_text'); } String get user__following_resource_name { @@ -2240,27 +2422,25 @@ class LocalizationService { } String get user__tile_delete { - return Intl.message("Delete", - name: 'user__tile_delete'); + return Intl.message("Delete", name: 'user__tile_delete'); } String get user__invite { - return Intl.message("Invite", - name: 'user__invite'); + return Intl.message("Invite", name: 'user__invite'); } String get user__uninvite { - return Intl.message("Uninvite", - name: 'user__uninvite'); + return Intl.message("Uninvite", name: 'user__uninvite'); } String get user__invite_member { - return Intl.message("Member", - name: 'user__invite_member'); + return Intl.message("Member", name: 'user__invite_member'); } - String user__invite_someone_message(String iosLink, String androidLink, String inviteLink) { - return Intl.message("Hey, I'd like to invite you to Okuna. First, Download the app on iTunes ($iosLink) or the Play store ($androidLink). " + String user__invite_someone_message( + String iosLink, String androidLink, String inviteLink) { + return Intl.message( + "Hey, I'd like to invite you to Okuna. First, Download the app on iTunes ($iosLink) or the Play store ($androidLink). " "Second, paste this personalised invite link in the 'Sign up' form in the Okuna App: $inviteLink", args: [iosLink, androidLink, inviteLink], name: 'user__invite_someone_message'); @@ -2272,28 +2452,23 @@ class LocalizationService { } String get user__connections_header_users { - return Intl.message("Users", - name: 'user__connections_header_users'); + return Intl.message("Users", name: 'user__connections_header_users'); } String get user__connection_pending { - return Intl.message("Pending", - name: 'user__connection_pending'); + return Intl.message("Pending", name: 'user__connection_pending'); } String get user__connection_circle_edit { - return Intl.message("Edit", - name: 'user__connection_circle_edit'); + return Intl.message("Edit", name: 'user__connection_circle_edit'); } String get user__connections_circle_delete { - return Intl.message("Delete", - name: 'user__connections_circle_delete'); + return Intl.message("Delete", name: 'user__connections_circle_delete'); } String get user__save_connection_circle_name { - return Intl.message("Name", - name: 'user__save_connection_circle_name'); + return Intl.message("Name", name: 'user__save_connection_circle_name'); } String get user__save_connection_circle_hint { @@ -2312,8 +2487,7 @@ class LocalizationService { } String get user__save_connection_circle_users { - return Intl.message("Users", - name: 'user__save_connection_circle_users'); + return Intl.message("Users", name: 'user__save_connection_circle_users'); } String get user__save_connection_circle_edit { @@ -2327,13 +2501,11 @@ class LocalizationService { } String get user__save_connection_circle_save { - return Intl.message("Save", - name: 'user__save_connection_circle_save'); + return Intl.message("Save", name: 'user__save_connection_circle_save'); } String get user__update_connection_circle_save { - return Intl.message("Save", - name: 'user__update_connection_circle_save'); + return Intl.message("Save", name: 'user__update_connection_circle_save'); } String get user__update_connection_circle_updated { @@ -2348,8 +2520,7 @@ class LocalizationService { String user__confirm_connection_with(String userName) { return Intl.message("Confirm connection with $userName", - args: [userName], - name: 'user__confirm_connection_with'); + args: [userName], name: 'user__confirm_connection_with'); } String get user__confirm_connection_add_connection { @@ -2367,10 +2538,9 @@ class LocalizationService { name: 'user__confirm_connection_confirm_text'); } - String user__connect_to_user_connect_with_username (String userName) { + String user__connect_to_user_connect_with_username(String userName) { return Intl.message("Connect with $userName", - args: [userName], - name: 'user__connect_to_user_connect_with_username'); + args: [userName], name: 'user__connect_to_user_connect_with_username'); } String get user__connect_to_user_add_connection { @@ -2379,8 +2549,7 @@ class LocalizationService { } String get user__connect_to_user_done { - return Intl.message("Done", - name: 'user__connect_to_user_done'); + return Intl.message("Done", name: 'user__connect_to_user_done'); } String get user__connect_to_user_request_sent { @@ -2399,23 +2568,21 @@ class LocalizationService { } String get user__confirm_block_user_title { - return Intl.message("Confirmation", - name: 'user__confirm_block_user_title'); + return Intl.message("Confirmation", name: 'user__confirm_block_user_title'); } String get user__confirm_block_user_info { - return Intl.message("You won't see each other posts nor be able to interact in any way.", + return Intl.message( + "You won't see each other posts nor be able to interact in any way.", name: 'user__confirm_block_user_info'); } String get user__confirm_block_user_yes { - return Intl.message("Yes", - name: 'user__confirm_block_user_yes'); + return Intl.message("Yes", name: 'user__confirm_block_user_yes'); } String get user__confirm_block_user_no { - return Intl.message("No", - name: 'user__confirm_block_user_no'); + return Intl.message("No", name: 'user__confirm_block_user_no'); } String get user__confirm_block_user_blocked { @@ -2425,11 +2592,11 @@ class LocalizationService { String user__confirm_block_user_question(String username) { return Intl.message("Are you sure you want to block @$username?", - args: [username], - name: 'user__confirm_block_user_question'); + args: [username], name: 'user__confirm_block_user_question'); } - String user__save_connection_circle_name_taken(String takenConnectionsCircleName) { + String user__save_connection_circle_name_taken( + String takenConnectionsCircleName) { return Intl.message("Circle name '$takenConnectionsCircleName' is taken", args: [takenConnectionsCircleName], name: 'user__save_connection_circle_name_taken'); @@ -2446,8 +2613,7 @@ class LocalizationService { } String get user__timeline_filters_clear_all { - return Intl.message("Clear all", - name: 'user__timeline_filters_clear_all'); + return Intl.message("Clear all", name: 'user__timeline_filters_clear_all'); } String get user__timeline_filters_apply_all { @@ -2456,33 +2622,27 @@ class LocalizationService { } String get user__timeline_filters_circles { - return Intl.message("Circles", - name: 'user__timeline_filters_circles'); + return Intl.message("Circles", name: 'user__timeline_filters_circles'); } String get user__timeline_filters_lists { - return Intl.message("Lists", - name: 'user__timeline_filters_lists'); + return Intl.message("Lists", name: 'user__timeline_filters_lists'); } String get user__followers_title { - return Intl.message("Followers", - name: 'user__followers_title'); + return Intl.message("Followers", name: 'user__followers_title'); } String get user__follower_singular { - return Intl.message("follower", - name: 'user__follower_singular'); + return Intl.message("follower", name: 'user__follower_singular'); } String get user__follower_plural { - return Intl.message("followers", - name: 'user__follower_plural'); + return Intl.message("followers", name: 'user__follower_plural'); } String get user__delete_account_title { - return Intl.message("Delete account", - name: 'user__delete_account_title'); + return Intl.message("Delete account", name: 'user__delete_account_title'); } String get user__delete_account_current_pwd { @@ -2496,8 +2656,7 @@ class LocalizationService { } String get user__delete_account_next { - return Intl.message("Next", - name: 'user__delete_account_next'); + return Intl.message("Next", name: 'user__delete_account_next'); } String get user__delete_account_confirmation_title { @@ -2516,13 +2675,11 @@ class LocalizationService { } String get user__delete_account_confirmation_no { - return Intl.message("No", - name: 'user__delete_account_confirmation_no'); + return Intl.message("No", name: 'user__delete_account_confirmation_no'); } String get user__delete_account_confirmation_yes { - return Intl.message("Yes", - name: 'user__delete_account_confirmation_yes'); + return Intl.message("Yes", name: 'user__delete_account_confirmation_yes'); } String get user__delete_account_confirmation_goodbye { @@ -2536,23 +2693,19 @@ class LocalizationService { } String get user__invites_create_edit_title { - return Intl.message("Edit invite", - name: 'user__invites_create_edit_title'); + return Intl.message("Edit invite", name: 'user__invites_create_edit_title'); } String get user__invites_create_save { - return Intl.message("Save", - name: 'user__invites_create_save'); + return Intl.message("Save", name: 'user__invites_create_save'); } String get user__invites_create_create { - return Intl.message("Create", - name: 'user__invites_create_create'); + return Intl.message("Create", name: 'user__invites_create_create'); } String get user__invites_create_name_title { - return Intl.message("Nickname", - name: 'user__invites_create_name_title'); + return Intl.message("Nickname", name: 'user__invites_create_name_title'); } String get user__invites_create_name_hint { @@ -2561,18 +2714,15 @@ class LocalizationService { } String get user__invites_pending { - return Intl.message("Pending", - name: 'user__invites_pending'); + return Intl.message("Pending", name: 'user__invites_pending'); } String get user__invites_delete { - return Intl.message("Delete", - name: 'user__invites_delete'); + return Intl.message("Delete", name: 'user__invites_delete'); } String get user__invites_invite_text { - return Intl.message("Invite", - name: 'user__invites_invite_text'); + return Intl.message("Invite", name: 'user__invites_invite_text'); } String get user__invites_share_yourself { @@ -2591,8 +2741,7 @@ class LocalizationService { } String get user__invites_email_text { - return Intl.message("Email", - name: 'user__invites_email_text'); + return Intl.message("Email", name: 'user__invites_email_text'); } String get user__invites_email_hint { @@ -2606,8 +2755,7 @@ class LocalizationService { } String get user__invites_email_send_text { - return Intl.message("Send", - name: 'user__invites_email_send_text'); + return Intl.message("Send", name: 'user__invites_email_send_text'); } String get user__invites_email_sent_text { @@ -2616,28 +2764,27 @@ class LocalizationService { } String get user__invites_share_email_desc { - return Intl.message("We will send an invitation email with instructions on your behalf", + return Intl.message( + "We will send an invitation email with instructions on your behalf", name: 'user__invites_share_email_desc'); } String get user__invites_edit_text { - return Intl.message("Edit", - name: 'user__invites_edit_text'); + return Intl.message("Edit", name: 'user__invites_edit_text'); } String get user__invites_title { - return Intl.message("My invites", - name: 'user__invites_title'); + return Intl.message("My invites", name: 'user__invites_title'); } String get user__invites_accepted_title { - return Intl.message("Accepted", - name: 'user__invites_accepted_title'); + return Intl.message("Accepted", name: 'user__invites_accepted_title'); } String get user__invites_accepted_group_name { return Intl.message("accepted invites", - desc: 'Egs where this will end up: Accepted invites (capitalised title), Search accepted invites, See all accepted invites ', + desc: + 'Egs where this will end up: Accepted invites (capitalised title), Search accepted invites, See all accepted invites ', name: 'user__invites_accepted_group_name'); } @@ -2672,12 +2819,12 @@ class LocalizationService { } String get user__invites_refresh { - return Intl.message("Refresh", - name: 'user__invites_refresh'); + return Intl.message("Refresh", name: 'user__invites_refresh'); } String get user__language_settings_title { - return Intl.message("Language settings", name: 'user__language_settings_title'); + return Intl.message("Language settings", + name: 'user__language_settings_title'); } String get user__language_settings_save { @@ -2685,52 +2832,56 @@ class LocalizationService { } String get user__language_settings_saved_success { - return Intl.message("Language changed successfully", name: 'user__language_settings_saved_success'); + return Intl.message("Language changed successfully", + name: 'user__language_settings_saved_success'); } String user__groups_see_all(String groupName) { return Intl.message("See all $groupName", args: [groupName], - desc: 'Can be, See all joined communities, See all pending invites, See all moderated communities etc. ', + desc: + 'Can be, See all joined communities, See all pending invites, See all moderated communities etc. ', name: 'user__groups_see_all'); } String user__invites_joined_with(String username) { return Intl.message("Joined with username @$username", - args: [username], - name: 'user__invites_joined_with'); + args: [username], name: 'user__invites_joined_with'); } String user__invites_pending_email(String email) { return Intl.message("Pending, invite email sent to $email", - args: [email], - name: 'user__invites_pending_email'); + args: [email], name: 'user__invites_pending_email'); } String user__timeline_filters_no_match(String searchQuery) { return Intl.message("No match for '$searchQuery'.", - args: [searchQuery], - name: 'user__timeline_filters_no_match'); + args: [searchQuery], name: 'user__timeline_filters_no_match'); } String get user__clear_application_cache_text { - return Intl.message("Clear cache", name: 'user__clear_application_cache_text'); + return Intl.message("Clear cache", + name: 'user__clear_application_cache_text'); } String get user__clear_application_cache_desc { - return Intl.message("Clear cached posts, accounts, images & more.", name: 'user__clear_application_cache_desc'); + return Intl.message("Clear cached posts, accounts, images & more.", + name: 'user__clear_application_cache_desc'); } String get user__clear_application_cache_success { - return Intl.message("Cleared cache successfully", name: 'user__clear_application_cache_success'); + return Intl.message("Cleared cache successfully", + name: 'user__clear_application_cache_success'); } String get user__clear_application_cache_failure { - return Intl.message("Could not clear cache", name: 'user__clear_application_cache_failure'); + return Intl.message("Could not clear cache", + name: 'user__clear_application_cache_failure'); } String get user__confirm_guidelines_reject_title { - return Intl.message("Guidelines Rejection", name: 'user__confirm_guidelines_reject_title'); + return Intl.message("Guidelines Rejection", + name: 'user__confirm_guidelines_reject_title'); } String get user__confirm_guidelines_reject_info { @@ -2753,44 +2904,41 @@ class LocalizationService { name: 'user__confirm_guidelines_reject_chat_community'); } - String get user__confirm_guidelines_reject_join_slack{ + String get user__confirm_guidelines_reject_join_slack { return Intl.message("Join the Slack channel.", name: 'user__confirm_guidelines_reject_join_slack'); } - String get user__confirm_guidelines_reject_go_back{ + String get user__confirm_guidelines_reject_go_back { return Intl.message("Go back", name: 'user__confirm_guidelines_reject_go_back'); } - String get user__confirm_guidelines_reject_delete_account{ + String get user__confirm_guidelines_reject_delete_account { return Intl.message("Delete account", name: 'user__confirm_guidelines_reject_delete_account'); } String get user__guidelines_desc { - return Intl.message("Please take a moment to read and accept our guidelines.", + return Intl.message( + "Please take a moment to read and accept our guidelines.", name: 'user__guidelines_desc'); } String get user__guidelines_accept { - return Intl.message("Accept", - name: 'user__guidelines_accept'); + return Intl.message("Accept", name: 'user__guidelines_accept'); } String get user__guidelines_reject { - return Intl.message("Reject", - name: 'user__guidelines_reject'); + return Intl.message("Reject", name: 'user__guidelines_reject'); } String get user__change_email_title { - return Intl.message("Change Email", - name: 'user__change_email_title'); + return Intl.message("Change Email", name: 'user__change_email_title'); } String get user__change_email_email_text { - return Intl.message("Email", - name: 'user__change_email_email_text'); + return Intl.message("Email", name: 'user__change_email_email_text'); } String get user__change_email_hint_text { @@ -2804,12 +2952,12 @@ class LocalizationService { } String get user__change_email_save { - return Intl.message("Save", - name: 'user__change_email_save'); + return Intl.message("Save", name: 'user__change_email_save'); } String get user__change_email_success_info { - return Intl.message("We've sent a confirmation link to your new email address, click it to verify your new email", + return Intl.message( + "We've sent a confirmation link to your new email address, click it to verify your new email", name: 'user__change_email_success_info'); } @@ -2819,7 +2967,8 @@ class LocalizationService { } String get user__clear_app_preferences_desc { - return Intl.message("Clear the application preferences. Currently this is only the preferred order of comments.", + return Intl.message( + "Clear the application preferences. Currently this is only the preferred order of comments.", name: 'user__clear_app_preferences_desc'); } @@ -2834,7 +2983,8 @@ class LocalizationService { } String get user__email_verification_error { - return Intl.message("Oops! Your token was not valid or expired, please try again", + return Intl.message( + "Oops! Your token was not valid or expired, please try again", name: 'user__email_verification_error'); } @@ -2849,31 +2999,34 @@ class LocalizationService { } String get user__block_user { - return Intl.message("Block user", - name: 'user__block_user'); + return Intl.message("Block user", name: 'user__block_user'); } String get user__unblock_user { - return Intl.message("Unblock user", - name: 'user__unblock_user'); + return Intl.message("Unblock user", name: 'user__unblock_user'); } String user__disconnect_from_user(String userName) { return Intl.message("Disconnect from $userName", - args: [userName], - name: 'user__disconnect_from_user'); + args: [userName], name: 'user__disconnect_from_user'); } String user__circle_peoples_count(String prettyUsersCount) { return Intl.message("$prettyUsersCount people", - args: [prettyUsersCount], - name: 'user__circle_peoples_count'); + args: [prettyUsersCount], name: 'user__circle_peoples_count'); } String user__follows_list_accounts_count(String prettyUsersCount) { return Intl.message("$prettyUsersCount accounts", - args: [prettyUsersCount], - name: 'user__follows_list_accounts_count'); + args: [prettyUsersCount], name: 'user__follows_list_accounts_count'); + } + + String notifications__tab_general() { + return Intl.message("General", name: 'notifications__tab_general'); + } + + String notifications__tab_requests() { + return Intl.message("Requests", name: 'notifications__tab_requests'); } String get notifications__settings_title { @@ -2882,8 +3035,7 @@ class LocalizationService { } String get notifications__general_title { - return Intl.message("Notifications", - name: 'notifications__general_title'); + return Intl.message("Notifications", name: 'notifications__general_title'); } String get notifications__general_desc { @@ -2892,8 +3044,7 @@ class LocalizationService { } String get notifications__follow_title { - return Intl.message("Follow", - name: 'notifications__follow_title'); + return Intl.message("Follow", name: 'notifications__follow_title'); } String get notifications__follow_desc { @@ -2912,12 +3063,12 @@ class LocalizationService { } String get notifications__comment_title { - return Intl.message("Post comment", - name: 'notifications__comment_title'); + return Intl.message("Post comment", name: 'notifications__comment_title'); } String get notifications__comment_desc { - return Intl.message("Be notified when someone comments on one of your posts or one you also commented", + return Intl.message( + "Be notified when someone comments on one of your posts or one you also commented", name: 'notifications__comment_desc'); } @@ -2927,7 +3078,8 @@ class LocalizationService { } String get notifications__comment_reply_desc { - return Intl.message("Be notified when someone replies to one of your comments or one you also replied to", + return Intl.message( + "Be notified when someone replies to one of your comments or one you also replied to", name: 'notifications__comment_reply_desc'); } @@ -2937,7 +3089,8 @@ class LocalizationService { } String get notifications__comment_user_mention_desc { - return Intl.message("Be notified when someone mentions you on one of their comments", + return Intl.message( + "Be notified when someone mentions you on one of their comments", name: 'notifications__comment_user_mention_desc'); } @@ -2947,7 +3100,8 @@ class LocalizationService { } String get notifications__post_user_mention_desc { - return Intl.message("Be notified when someone mentions you on one of their posts", + return Intl.message( + "Be notified when someone mentions you on one of their posts", name: 'notifications__post_user_mention_desc'); } @@ -2957,7 +3111,8 @@ class LocalizationService { } String get notifications__comment_reaction_desc { - return Intl.message("Be notified when someone reacts to one of your post commments", + return Intl.message( + "Be notified when someone reacts to one of your post commments", name: 'notifications__comment_reaction_desc'); } @@ -2977,7 +3132,8 @@ class LocalizationService { } String get notifications__community_invite_desc { - return Intl.message("Be notified when someone invites you to join a community", + return Intl.message( + "Be notified when someone invites you to join a community", name: 'notifications__community_invite_desc'); } @@ -3032,35 +3188,44 @@ class LocalizationService { } String notifications__user_community_invite_tile(String communityName) { - return Intl.message("[name] [username] has invited you to join community /c/$communityName.", + return Intl.message( + "[name] [username] has invited you to join community /c/$communityName.", args: [communityName], desc: "Eg.: James @jamest has invited you to join community /c/okuna.", name: 'notifications__user_community_invite_tile'); } - String notifications__comment_reply_notification_tile_user_replied(String postCommentText) { + String notifications__comment_reply_notification_tile_user_replied( + String postCommentText) { return Intl.message("[name] [username] replied: $postCommentText", desc: 'For.eg. James @jamest replied.', args: [postCommentText], name: 'notifications__comment_reply_notification_tile_user_replied'); } - String notifications__comment_reply_notification_tile_user_also_replied(String postCommentText) { + String notifications__comment_reply_notification_tile_user_also_replied( + String postCommentText) { return Intl.message("[name] [username] also replied: $postCommentText", args: [postCommentText], - name: 'notifications__comment_reply_notification_tile_user_also_replied'); + name: + 'notifications__comment_reply_notification_tile_user_also_replied'); } - String notifications__comment_comment_notification_tile_user_commented(String postCommentText) { - return Intl.message("[name] [username] commented on your post: $postCommentText", + String notifications__comment_comment_notification_tile_user_commented( + String postCommentText) { + return Intl.message( + "[name] [username] commented on your post: $postCommentText", args: [postCommentText], - name: 'notifications__comment_comment_notification_tile_user_commented'); + name: + 'notifications__comment_comment_notification_tile_user_commented'); } - String notifications__comment_comment_notification_tile_user_also_commented(String postCommentText) { + String notifications__comment_comment_notification_tile_user_also_commented( + String postCommentText) { return Intl.message("[name] [username] also commented: $postCommentText", args: [postCommentText], - name: 'notifications__comment_comment_notification_tile_user_also_commented'); + name: + 'notifications__comment_comment_notification_tile_user_also_commented'); } String get moderation__filters_title { @@ -3069,38 +3234,31 @@ class LocalizationService { } String get moderation__filters_reset { - return Intl.message("Reset", - name: 'moderation__filters_reset'); + return Intl.message("Reset", name: 'moderation__filters_reset'); } String get moderation__filters_verified { - return Intl.message("Verified", - name: 'moderation__filters_verified'); + return Intl.message("Verified", name: 'moderation__filters_verified'); } String get moderation__filters_apply { - return Intl.message("Apply filters", - name: 'moderation__filters_apply'); + return Intl.message("Apply filters", name: 'moderation__filters_apply'); } String get moderation__filters_type { - return Intl.message("Type", - name: 'moderation__filters_type'); + return Intl.message("Type", name: 'moderation__filters_type'); } String get moderation__filters_status { - return Intl.message("Status", - name: 'moderation__filters_status'); + return Intl.message("Status", name: 'moderation__filters_status'); } String get moderation__filters_other { - return Intl.message("Other", - name: 'moderation__filters_other'); + return Intl.message("Other", name: 'moderation__filters_other'); } String get moderation__actions_review { - return Intl.message("Review", - name: 'moderation__actions_review'); + return Intl.message("Review", name: 'moderation__actions_review'); } String get moderation__actions_chat_with_team { @@ -3114,13 +3272,11 @@ class LocalizationService { } String get moderation__update_category_save { - return Intl.message("Save", - name: 'moderation__update_category_save'); + return Intl.message("Save", name: 'moderation__update_category_save'); } String get moderation__update_description_save { - return Intl.message("Save", - name: 'moderation__update_description_save'); + return Intl.message("Save", name: 'moderation__update_description_save'); } String get moderation__update_description_title { @@ -3139,8 +3295,7 @@ class LocalizationService { } String get moderation__update_status_save { - return Intl.message("Save", - name: 'moderation__update_status_save'); + return Intl.message("Save", name: 'moderation__update_status_save'); } String get moderation__update_status_title { @@ -3154,13 +3309,11 @@ class LocalizationService { } String get moderation__moderated_object_title { - return Intl.message("Object", - name: 'moderation__moderated_object_title'); + return Intl.message("Object", name: 'moderation__moderated_object_title'); } String get moderation__moderated_object_status { - return Intl.message("Status", - name: 'moderation__moderated_object_status'); + return Intl.message("Status", name: 'moderation__moderated_object_status'); } String get moderation__moderated_object_reports_count { @@ -3191,8 +3344,7 @@ class LocalizationService { } String get moderation__community_review_object { - return Intl.message("Object", - name: 'moderation__community_review_object'); + return Intl.message("Object", name: 'moderation__community_review_object'); } String get moderation__community_review_approve { @@ -3201,8 +3353,7 @@ class LocalizationService { } String get moderation__community_review_reject { - return Intl.message("reject", - name: 'moderation__community_review_reject'); + return Intl.message("reject", name: 'moderation__community_review_reject'); } String get moderation__community_review_item_verified { @@ -3236,7 +3387,8 @@ class LocalizationService { } String get moderation__confirm_report_provide_details { - return Intl.message("Can you provide extra details that might be relevant to the report?", + return Intl.message( + "Can you provide extra details that might be relevant to the report?", name: 'moderation__confirm_report_provide_details'); } @@ -3256,8 +3408,9 @@ class LocalizationService { } String get moderation__confirm_report_provide_happen_next_desc { - return Intl.message("- Your report will be submitted anonymously. \n" - "- If you are reporting a post or comment, the report will be sent to the Okuna staff and the community moderators if applicable and the post will be hidden from your feed. \n" + return Intl.message( + "- Your report will be submitted anonymously. \n" + "- If you are reporting a post or comment, the report will be sent to the Okuna staff and the community moderators if applicable and the post will be hidden from your feed. \n" "- If you are reporting an account or community, it will be sent to the Okuna staff. \n" "- We'll review it, if approved, content will be deleted and penalties delivered to the people involved ranging from a temporary suspension to deletion of the account depending on the severity of the transgression. \n" "- If the report is found to be made in an attempt to damage the reputation of another member or community in the platform with no infringement of the stated reason, penalties will be applied to you. \n", @@ -3310,8 +3463,7 @@ class LocalizationService { } String get moderation__report_post_text { - return Intl.message("Report post", - name: 'moderation__report_post_text'); + return Intl.message("Report post", name: 'moderation__report_post_text'); } String get moderation__you_have_reported_post_text { @@ -3350,8 +3502,7 @@ class LocalizationService { } String get moderation__description_text { - return Intl.message("Description", - name: 'moderation__description_text'); + return Intl.message("Description", name: 'moderation__description_text'); } String get moderation__no_description_text { @@ -3360,18 +3511,15 @@ class LocalizationService { } String get moderation__category_text { - return Intl.message("Category", - name: 'moderation__category_text'); + return Intl.message("Category", name: 'moderation__category_text'); } String get moderation__reporter_text { - return Intl.message("Reporter", - name: 'moderation__reporter_text'); + return Intl.message("Reporter", name: 'moderation__reporter_text'); } String get moderation__reports_preview_title { - return Intl.message("Reports", - name: 'moderation__reports_preview_title'); + return Intl.message("Reports", name: 'moderation__reports_preview_title'); } String get moderation__reports_preview_resource_reports { @@ -3388,8 +3536,7 @@ class LocalizationService { } String get moderation__object_status_title { - return Intl.message("Status", - name: 'moderation__object_status_title'); + return Intl.message("Status", name: 'moderation__object_status_title'); } String get moderation__my_moderation_tasks_title { @@ -3420,12 +3567,14 @@ class LocalizationService { String get moderation__my_moderation_penalties_resource_plural { return Intl.message("moderation penalties", - desc: "See all moderation penalties, No moderation penalties found etc..", + desc: + "See all moderation penalties, No moderation penalties found etc..", name: 'moderation__my_moderation_penalties_resource_plural'); } String notifications__mentioned_in_post_comment_tile(String postCommentText) { - return Intl.message("[name] [username] mentioned you on a comment: $postCommentText", + return Intl.message( + "[name] [username] mentioned you on a comment: $postCommentText", args: [postCommentText], desc: "Eg.: James @jamest mentioned you on a comment: hello @jamest", name: 'notifications__mentioned_in_post_comment_tile'); @@ -3440,11 +3589,219 @@ class LocalizationService { String get contextual_account_search_box__suggestions { return Intl.message("Suggestions", desc: - "The title to display on the suggestions when searching for accounts when trying to mention someone.", + "The title to display on the suggestions when searching for accounts when trying to mention someone.", name: 'contextual_account_search_box__suggestions'); } - Locale getLocale() { + String get image_picker__from_gallery { + return Intl.message("From gallery", name: 'image_picker__from_gallery'); + } + + String get image_picker__from_camera { + return Intl.message("From camera", name: 'image_picker__from_camera'); + } + + String image_picker__error_too_large(int limit) { + return Intl.message("File too large (limit: $limit MB)", + args: [limit], name: 'image_picker__error_too_large'); + } + + String get video_picker__from_gallery { + return Intl.message("From gallery", name: 'video_picker__from_gallery'); + } + + String get video_picker__from_camera { + return Intl.message("From camera", name: 'video_picker__from_camera'); + } + + String get post_uploader__generic_upload_failed { + return Intl.message("Upload failed", + name: 'post_uploader__generic_upload_failed'); + } + + String get post_uploader__creating_post { + return Intl.message("Creating post...", + name: 'post_uploader__creating_post'); + } + + String get post_uploader__compressing_media { + return Intl.message("Compressing media...", + name: 'post_uploader__compressing_media'); + } + + String get post_uploader__uploading_media { + return Intl.message("Uploading media...", + name: 'post_uploader__uploading_media'); + } + + String get post_uploader__publishing { + return Intl.message("Publishing post...", + name: 'post_uploader__publishing'); + } + + String get post_uploader__processing { + return Intl.message("Processing post...", + name: 'post_uploader__processing'); + } + + String get post_uploader__success { + return Intl.message("Success!", name: 'post_uploader__success'); + } + + String get post_uploader__cancelling { + return Intl.message("Cancelling", name: 'post_uploader__cancelling'); + } + + String get post_uploader__cancelled { + return Intl.message("Cancelled!", name: 'post_uploader__cancelled'); + } + + String get post_body_media__unsupported { + return Intl.message("Unsupported media type", + name: 'post_body_media__unsupported'); + } + + String get post_body_link_preview__empty { + return Intl.message("This link could not be previewed", + name: 'post_body_link_preview__empty'); + } + + String post_body_link_preview__invalid(String link) { + return Intl.message("Invalid link: $link", + args: [link], + name: 'post_body_link_preview__invalid'); + } + + String post_body_link_preview__error_with_description(String description) { + return Intl.message( + "Failed to preview link with website error: $description", + args: [description], + name: 'post_body_link_preview__error_with_description'); + } + + String get posts_stream__all_loaded { + return Intl.message("🎉 All posts loaded", + name: 'posts_stream__all_loaded'); + } + + String get posts_stream__refreshing_drhoo_title { + return Intl.message("Hang in there!", + name: 'posts_stream__refreshing_drhoo_title'); + } + + String get posts_stream__refreshing_drhoo_subtitle { + return Intl.message("Refreshing the stream.", + name: 'posts_stream__refreshing_drhoo_subtitle'); + } + + String get posts_stream__empty_drhoo_title { + return Intl.message("This stream is empty.", + name: 'posts_stream__empty_drhoo_title'); + } + + String get posts_stream__empty_drhoo_subtitle { + return Intl.message("Try refreshing in a couple of seconds.", + name: 'posts_stream__empty_drhoo_subtitle'); + } + + String get posts_stream__failed_drhoo_title { + return Intl.message("Could not load the stream.", + name: 'posts_stream__failed_drhoo_title'); + } + + String get posts_stream__failed_drhoo_subtitle { + return Intl.message("Try again in a couple seconds", + name: 'posts_stream__failed_drhoo_subtitle'); + } + + String get posts_stream__status_tile_empty { + return Intl.message("No posts found", + name: 'posts_stream__status_tile_empty'); + } + + String get posts_stream__status_tile_no_more_to_load { + return Intl.message("🎉 All posts loaded", + name: 'posts_stream__status_tile_no_more_to_load'); + } + + String get application_settings__videos { + return Intl.message("Videos", name: 'application_settings__videos'); + } + + String get application_settings__link_previews { + return Intl.message("Link previews", name: 'application_settings__link_previews'); + } + + String get application_settings__videos_autoplay { + return Intl.message("Autoplay", + name: 'application_settings__videos_autoplay'); + } + + String get application_settings__link_previews_show { + return Intl.message("Show", + name: 'application_settings__link_previews_show'); + } + + String get application_settings__videos_autoplay_always { + return Intl.message("Always", + name: 'application_settings__videos_autoplay_always'); + } + + String get application_settings__videos_autoplay_wifi_only { + return Intl.message("Wifi only", + name: 'application_settings__videos_autoplay_wifi_only'); + } + + String get application_settings__videos_autoplay_never { + return Intl.message("Never", + name: 'application_settings__videos_autoplay_never'); + } + + String get application_settings__link_previews_autoplay_always { + return Intl.message("Always", + name: 'application_settings__link_previews_autoplay_always'); + } + + String get application_settings__link_previews_autoplay_wifi_only { + return Intl.message("Wifi only", + name: 'application_settings__link_previews_autoplay_wifi_only'); + } + + String get application_settings__link_previews_autoplay_never { + return Intl.message("Never", + name: 'application_settings__link_previews_autoplay_never'); + } + + String get application_settings__videos_sound { + return Intl.message("Sound", name: 'application_settings__videos_sound'); + } + + String get application_settings__tap_to_change { + return Intl.message("(Tap to change)", + name: 'application_settings__tap_to_change'); + } + + String get application_settings__videos_sound_enabled { + return Intl.message("Enabled", + name: 'application_settings__videos_sound_enabled'); + } + + String get application_settings__videos_sound_disabled { + return Intl.message("Disabled", + name: 'application_settings__videos_sound_disabled'); + } + + String get application_settings__comment_sort_newest_first { + return Intl.message("Newest first", + name: 'application_settings__comment_sort_newest_first'); + } + + String get application_settings__comment_sort_oldest_first { + return Intl.message("Oldest first", + name: 'application_settings__comment_sort_oldest_first'); + } + + Locale getLocale() { return locale; } } diff --git a/lib/services/media.dart b/lib/services/media.dart new file mode 100644 index 000000000..fe524c78f --- /dev/null +++ b/lib/services/media.dart @@ -0,0 +1,227 @@ +import 'dart:io'; +import 'package:Okuna/plugins/image_converter/image_converter.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_exif_rotation/flutter_exif_rotation.dart'; +import 'package:flutter_image_compress/flutter_image_compress.dart'; +import 'package:image_cropper/image_cropper.dart'; +import 'package:meta/meta.dart'; +import 'package:Okuna/services/validation.dart'; +import 'package:mime/mime.dart'; +import 'package:path/path.dart'; +import 'package:path_provider/path_provider.dart'; +import 'package:uuid/uuid.dart'; +import 'package:video_thumbnail/video_thumbnail.dart'; +import 'package:flutter_ffmpeg/flutter_ffmpeg.dart'; + +import 'bottom_sheet.dart'; +export 'package:image_picker/image_picker.dart'; + +class MediaService { + static Uuid _uuid = new Uuid(); + + static const Map IMAGE_RATIOS = { + OBImageType.avatar: {'x': 1.0, 'y': 1.0}, + OBImageType.cover: {'x': 16.0, 'y': 9.0} + }; + + ValidationService _validationService; + BottomSheetService _bottomSheetService; + + void setValidationService(ValidationService validationService) { + _validationService = validationService; + } + + void setBottomSheetService(BottomSheetService modalService) { + _bottomSheetService = modalService; + } + + Future pickImage( + {@required OBImageType imageType, + @required BuildContext context, + bool flattenGifs = true}) async { + File pickedImage = + await _bottomSheetService.showImagePicker(context: context); + + if (pickedImage == null) return null; + final tempPath = await _getTempPath(); + final String processedImageUuid = _uuid.v4(); + File processedPickedImage; + + bool pickedImageIsGif = isGif(pickedImage); + + if (!pickedImageIsGif || flattenGifs) { + String processedImageName = processedImageUuid + '.jpg'; + processedPickedImage = File('$tempPath/$processedImageName'); + List convertedImageData = + await ImageConverter.convertImage(pickedImage.readAsBytesSync()); + processedPickedImage.writeAsBytesSync(convertedImageData); + } else { + String processedImageName = processedImageUuid + '.gif'; + processedPickedImage = + pickedImage.copySync('$tempPath/$processedImageName'); + } + + if (!await _validationService.isImageAllowedSize( + processedPickedImage, imageType)) { + throw FileTooLargeException( + _validationService.getAllowedImageSize(imageType)); + } + + processedPickedImage = !pickedImageIsGif || flattenGifs + ? await processImage(processedPickedImage) + : processedPickedImage; + + if (imageType == OBImageType.post) return processedPickedImage; + + double ratioX = IMAGE_RATIOS[imageType]['x']; + double ratioY = IMAGE_RATIOS[imageType]['y']; + + File croppedFile = await ImageCropper.cropImage( + toolbarTitle: 'Crop image', + toolbarColor: Colors.black, + statusBarColor: Colors.black, + toolbarWidgetColor: Colors.white, + sourcePath: processedPickedImage.path, + ratioX: ratioX, + ratioY: ratioY, + ); + + return croppedFile; + } + + Future pickVideo({@required BuildContext context}) async { + File pickedVideo = + await _bottomSheetService.showVideoPicker(context: context); + + if (pickedVideo == null) return null; + + String videoExtension = basename(pickedVideo.path); + String tmpImageName = _uuid.v4() + videoExtension; + final path = await _getTempPath(); + final String pickedVideoCopyPath = '$path/$tmpImageName'; + File pickedVideoCopy = await pickedVideo.copy(pickedVideoCopyPath); + + if (!await _validationService.isVideoAllowedSize(pickedVideoCopy)) { + throw FileTooLargeException(_validationService.getAllowedVideoSize()); + } + + return pickedVideoCopy; + } + + Future processImage(File image) async { + /// Fix rotation issue on android + if (Platform.isAndroid) + return await FlutterExifRotation.rotateImage(path: image.path); + return image; + } + + Future _getTempPath() async { + final directory = await getApplicationDocumentsDirectory(); + + return directory.path; + } + + Future getVideoThumbnail(File videoFile) async { + final thumbnailData = await VideoThumbnail.thumbnailData( + video: videoFile.path, + imageFormat: ImageFormat.JPEG, + maxHeightOrWidth: 500, + quality: 100, + ); + + String videoExtension = basename(videoFile.path); + String tmpImageName = 'thumbnail_' + _uuid.v4() + videoExtension; + final tempPath = await _getTempPath(); + final String thumbnailPath = '$tempPath/$tmpImageName'; + final file = File(thumbnailPath); + file.writeAsBytesSync(thumbnailData); + + return file; + } + + Future compressVideo(File video) async { + File resultFile; + + final FlutterFFmpeg _flutterFFmpeg = new FlutterFFmpeg(); + + String resultFileName = _uuid.v4() + '.mp4'; + final path = await _getTempPath(); + final String resultFilePath = '$path/$resultFileName'; + + int exitCode = await _flutterFFmpeg.execute( + '-i ${video.path} -filter:v scale=720:-2 -vcodec libx264 -crf 23 -preset veryfast ${resultFilePath}'); + + if (exitCode == 0) { + resultFile = File(resultFilePath); + } else { + debugPrint('Failed to compress video, using original file'); + resultFile = video; + } + + return resultFile; + } + + Future compressImage(File image) async { + List compressedImageData = await FlutterImageCompress.compressWithFile( + image.absolute.path, + quality: 80, + ); + + String imageExtension = basename(image.path); + String tmpImageName = 'compressed_image_' + _uuid.v4() + imageExtension; + final tempPath = await _getTempPath(); + final String thumbnailPath = '$tempPath/$tmpImageName'; + final file = File(thumbnailPath); + file.writeAsBytesSync(compressedImageData); + + return file; + } + + Future convertGifToVideo(File gif) async { + File resultFile; + + final FlutterFFmpeg _flutterFFmpeg = new FlutterFFmpeg(); + + String resultFileName = _uuid.v4() + '.mp4'; + final path = await _getTempPath(); + final String sourceFilePath = gif.path; + final String resultFilePath = '$path/$resultFileName'; + + int exitCode = await _flutterFFmpeg.execute( + '-f gif -i $sourceFilePath -pix_fmt yuv420p -c:v libx264 -movflags +faststart -filter:v crop=\'floor(in_w/2)*2:floor(in_h/2)*2\' $resultFilePath'); + + if (exitCode == 0) { + resultFile = File(resultFilePath); + } else { + throw (Exception('Gif couldn\'t be converted to video')); + } + + return resultFile; + } + + bool isGif(File file) { + String mediaMime = getMimeType(file); + String mediaMimeSubtype = mediaMime.split('/')[1]; + + return mediaMimeSubtype == 'gif'; + } + + String getMimeType(File file) { + return lookupMimeType(file.path); + } +} + +class FileTooLargeException implements Exception { + final int limit; + + const FileTooLargeException(this.limit); + + String toString() => + 'FileToLargeException: Images can\'t be larger than $limit'; + + int getLimitInMB() { + return limit ~/ 1048576; + } +} + +enum OBImageType { avatar, cover, post } diff --git a/lib/services/modal_service.dart b/lib/services/modal_service.dart index db8dca768..cdba37e51 100644 --- a/lib/services/modal_service.dart +++ b/lib/services/modal_service.dart @@ -11,12 +11,11 @@ import 'package:Okuna/models/post_reaction.dart'; import 'package:Okuna/models/user.dart'; import 'package:Okuna/models/user_invite.dart'; import 'package:Okuna/pages/home/modals/accept_guidelines/accept_guidelines.dart'; -import 'package:Okuna/pages/home/modals/edit_post/edit_post.dart'; import 'package:Okuna/pages/home/modals/invite_to_community.dart'; import 'package:Okuna/pages/home/modals/post_comment/post_comment_reply_expanded.dart'; import 'package:Okuna/pages/home/modals/post_comment/post_commenter_expanded.dart'; +import 'package:Okuna/pages/home/modals/save_post/create_post.dart'; import 'package:Okuna/pages/home/pages/community/pages/manage_community/pages/community_administrators/modals/add_community_administrator/add_community_administrator.dart'; -import 'package:Okuna/pages/home/modals/create_post/create_post.dart'; import 'package:Okuna/pages/home/modals/edit_user_profile/edit_user_profile.dart'; import 'package:Okuna/pages/home/modals/save_community.dart'; import 'package:Okuna/pages/home/modals/save_connections_circle.dart'; @@ -32,29 +31,41 @@ import 'package:Okuna/pages/home/pages/moderated_objects/pages/widgets/moderated import 'package:Okuna/pages/home/pages/moderated_objects/pages/widgets/moderated_object_description/modals/moderated_object_update_description.dart'; import 'package:Okuna/pages/home/pages/moderated_objects/pages/widgets/moderated_object_status/modals/moderated_object_update_status.dart'; import 'package:Okuna/pages/home/pages/timeline/timeline.dart'; +import 'package:Okuna/widgets/new_post_data_uploader.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; +import 'localization.dart'; + class ModalService { - Future openCreatePost( + LocalizationService localizationService; + + void setLocalizationService(localizationService) { + this.localizationService = localizationService; + } + + Future openCreatePost( {@required BuildContext context, Community community, String text, - File image}) async { - Post createdPost = await Navigator.of(context, rootNavigator: true) - .push(CupertinoPageRoute( - fullscreenDialog: true, - builder: (BuildContext context) { - return Material( - child: CreatePostModal( - community: community, - text: text, - image: image, - ), - ); - })); + File image, + File video}) async { + OBNewPostData createPostData = + await Navigator.of(context, rootNavigator: true) + .push(CupertinoPageRoute( + fullscreenDialog: true, + builder: (BuildContext context) { + return Material( + child: OBSavePostModal( + community: community, + text: text, + image: image, + video: video, + ), + ); + })); - return createdPost; + return createPostData; } Future openEditPost( @@ -64,7 +75,7 @@ class ModalService { fullscreenDialog: true, builder: (BuildContext context) { return Material( - child: EditPostModal( + child: OBSavePostModal( post: post, ), ); @@ -113,12 +124,15 @@ class ModalService { } Future openEditUserProfile( - {@required User user, @required BuildContext context}) async { + {@required User user, + @required BuildContext context, + VoidCallback onUserProfileUpdated}) async { Navigator.of(context, rootNavigator: true) .push(CupertinoPageRoute( fullscreenDialog: true, builder: (BuildContext context) => Material( - child: OBEditUserProfileModal(user), + child: OBEditUserProfileModal(user, + onUserProfileUpdated: onUserProfileUpdated), ))); } diff --git a/lib/services/navigation_service.dart b/lib/services/navigation_service.dart index 5c035a89b..1ecac40f3 100644 --- a/lib/services/navigation_service.dart +++ b/lib/services/navigation_service.dart @@ -1,3 +1,5 @@ +import 'dart:math'; + import 'package:Okuna/models/circle.dart'; import 'package:Okuna/models/community.dart'; import 'package:Okuna/models/emoji.dart'; @@ -11,11 +13,11 @@ import 'package:Okuna/models/user.dart'; import 'package:Okuna/models/user_invite.dart'; import 'package:Okuna/pages/home/modals/accept_guidelines/pages/confirm_reject_guidelines.dart'; import 'package:Okuna/pages/home/modals/confirm_block_user.dart'; -import 'package:Okuna/pages/home/modals/create_post/pages/share_post/pages/share_post_with_circles.dart'; -import 'package:Okuna/pages/home/modals/create_post/pages/share_post/pages/share_post_with_community.dart'; -import 'package:Okuna/pages/home/modals/create_post/pages/share_post/share_post.dart'; import 'package:Okuna/pages/home/modals/post_comment_reactions/post_comment_reactions.dart'; import 'package:Okuna/pages/home/modals/post_reactions/post_reactions.dart'; +import 'package:Okuna/pages/home/modals/save_post/pages/share_post/pages/share_post_with_circles.dart'; +import 'package:Okuna/pages/home/modals/save_post/pages/share_post/pages/share_post_with_community.dart'; +import 'package:Okuna/pages/home/modals/save_post/pages/share_post/share_post.dart'; import 'package:Okuna/pages/home/pages/community/community.dart'; import 'package:Okuna/pages/home/pages/community/pages/community_members.dart'; import 'package:Okuna/pages/home/pages/community/pages/community_rules.dart'; @@ -45,6 +47,7 @@ import 'package:Okuna/pages/home/pages/menu/pages/settings/pages/account_setting import 'package:Okuna/pages/home/pages/menu/pages/settings/pages/account_settings/pages/blocked_users.dart'; import 'package:Okuna/pages/home/pages/menu/pages/settings/pages/account_settings/pages/user_language_settings/user_language_settings.dart'; import 'package:Okuna/pages/home/pages/menu/pages/settings/pages/application_settings.dart'; +import 'package:Okuna/pages/home/pages/menu/pages/settings/pages/developer_settings.dart'; import 'package:Okuna/pages/home/pages/menu/pages/settings/settings.dart'; import 'package:Okuna/pages/home/pages/menu/pages/useful_links.dart'; import 'package:Okuna/pages/home/pages/menu/pages/user_invites/pages/user_invite_detail.dart'; @@ -62,54 +65,69 @@ import 'package:Okuna/pages/home/pages/profile/profile.dart'; import 'package:Okuna/pages/home/pages/report_object/pages/confirm_report_object.dart'; import 'package:Okuna/pages/home/pages/report_object/report_object.dart'; import 'package:Okuna/widgets/nav_bars/themed_nav_bar.dart'; +import 'package:Okuna/widgets/new_post_data_uploader.dart'; import 'package:Okuna/widgets/routes/slide_right_route.dart'; import 'package:Okuna/widgets/theming/primary_color_container.dart'; import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; class NavigationService { - void navigateToUserProfile( + var rng = new Random(); + + Future navigateToUserProfile( {@required User user, @required BuildContext context}) async { - await Navigator.push( - context, - OBSlideRightRoute( - key: Key('obSlideProfileView'), - widget: OBProfilePage( + return Navigator.push( + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('userProfileRoute'), + builder: (BuildContext context) { + return OBProfilePage( user, - ))); + ); + }), + ); } Future navigateToCommunity( {@required Community community, @required BuildContext context}) async { - await Navigator.push( - context, - OBSlideRightRoute( - key: Key('obSlideCommunityPage'), - widget: OBCommunityPage( + return Navigator.push( + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('communityRoute'), + builder: (BuildContext context) { + return OBCommunityPage( community, - ))); + ); + }), + ); } Future navigateToCommunityStaffPage( {@required BuildContext context, @required Community community}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obCommunityStaffPage'), - widget: OBCommunityStaffPage( + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('CommunityStaffPageRoute'), + builder: (BuildContext context) { + return OBCommunityStaffPage( community: community, - ))); + ); + }), + ); } Future navigateToCommunityRulesPage( {@required BuildContext context, @required Community community}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obCommunityRulesPage'), - widget: OBCommunityRulesPage( + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('communityRulesPageRoute'), + builder: (BuildContext context) { + return OBCommunityRulesPage( community: community, - ))); + ); + }), + ); } Future navigateToConfirmAddCommunityAdministrator( @@ -117,31 +135,42 @@ class NavigationService { @required User user, @required BuildContext context}) async { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obSlideConfirmAddCommunityAdministratorPage'), - widget: OBConfirmAddCommunityAdministrator( + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord( + 'confirmAddCommunityAdministratorRoute'), + builder: (BuildContext context) { + return OBConfirmAddCommunityAdministrator( community: community, user: user, - ))); + ); + }), + ); } Future navigateToConfirmDeleteAccount( {@required String userPassword, @required BuildContext context}) async { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obSlideConfirmDeleteAccount'), - widget: OBConfirmDeleteAccount( + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('confirmDeleteAccountRoute'), + builder: (BuildContext context) { + return OBConfirmDeleteAccount( userPassword: userPassword, - ))); + ); + }), + ); } Future navigateToDeleteAccount({@required BuildContext context}) async { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obSlideDeleteAccount'), widget: OBDeleteAccountPage())); + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('deleteAccountRoute'), + builder: (BuildContext context) { + return OBDeleteAccountPage(); + }), + ); } Future navigateToConfirmAddCommunityModerator( @@ -149,13 +178,17 @@ class NavigationService { @required User user, @required BuildContext context}) async { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obSlideConfirmAddCommunityModeratorPage'), - widget: OBConfirmAddCommunityModerator( + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord( + 'confirmAddCommunityModeratorPageRoute'), + builder: (BuildContext context) { + return OBConfirmAddCommunityModerator( community: community, user: user, - ))); + ); + }), + ); } Future navigateToConfirmBanCommunityUser( @@ -163,127 +196,165 @@ class NavigationService { @required User user, @required BuildContext context}) async { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obSlideConfirmBanCommunityMemberPage'), - widget: OBConfirmBanCommunityUser( + context, + OBSlideRightRoute( + slidableKey: + _getKeyRandomisedWithWord('confirmBanCommunityUserPageRoute'), + builder: (BuildContext context) { + return OBConfirmBanCommunityUser( community: community, user: user, - ))); + ); + }), + ); } Future navigateToManageCommunity( {@required Community community, @required BuildContext context}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obEditCommunityPage'), - widget: OBManageCommunityPage( + context, + OBSlideRightRoute( + slidableKey: + _getKeyRandomisedWithWord('navigateToManageCommunityPageRoute'), + builder: (BuildContext context) { + return OBManageCommunityPage( community: community, - ))); + ); + }), + ); } Future navigateToLeaveCommunity( {@required Community community, @required BuildContext context}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obLeaveCommunityPage'), - widget: OBLeaveCommunityPage( + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('leaveCommunityPageRoute'), + builder: (BuildContext context) { + return OBLeaveCommunityPage( community: community, - ))); + ); + }), + ); } Future navigateToDeleteCommunity( {@required Community community, @required BuildContext context}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obDeleteCommunityPage'), - widget: OBDeleteCommunityPage( + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('deleteCommunityPageRoute'), + builder: (BuildContext context) { + return OBDeleteCommunityPage( community: community, - ))); + ); + }), + ); } Future navigateToCommunityAdministrators( {@required Community community, @required BuildContext context}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obCommunityAdministratorsPage'), - widget: OBCommunityAdministratorsPage( + context, + OBSlideRightRoute( + slidableKey: + _getKeyRandomisedWithWord('communityAdministratorsPageRoute'), + builder: (BuildContext context) { + return OBCommunityAdministratorsPage( community: community, - ))); + ); + }), + ); } Future navigateToCommunityMembers( {@required Community community, @required BuildContext context}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obCommunityMembersPage'), - widget: OBCommunityMembersPage( + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('communityMembersPageRoute'), + builder: (BuildContext context) { + return OBCommunityMembersPage( community: community, - ))); + ); + }), + ); } Future navigateToCommunityModerators( {@required Community community, @required BuildContext context}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obCommunityModeratorsPage'), - widget: OBCommunityModeratorsPage( + context, + OBSlideRightRoute( + slidableKey: + _getKeyRandomisedWithWord('communityModeratorsPageRoute'), + builder: (BuildContext context) { + return OBCommunityModeratorsPage( community: community, - ))); + ); + }), + ); } Future navigateToCommunityBannedUsers( {@required Community community, @required BuildContext context}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obCommunityBannedUsersPage'), - widget: OBCommunityBannedUsersPage( + context, + OBSlideRightRoute( + slidableKey: + _getKeyRandomisedWithWord('communityBannedUsersPageRoute'), + builder: (BuildContext context) { + return OBCommunityBannedUsersPage( community: community, - ))); + ); + }), + ); } Future navigateToCommunityClosedPosts( {@required Community community, @required BuildContext context}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obCommunityClosedPostsPage'), - widget: OBCommunityClosedPostsPage( + context, + OBSlideRightRoute( + slidableKey: + _getKeyRandomisedWithWord('communityClosedPostsPageRoute'), + builder: (BuildContext context) { + return OBCommunityClosedPostsPage( community, - ))); + ); + }), + ); } Future navigateToCommentPost( {@required Post post, @required BuildContext context}) { return Navigator.push( context, - OBSlideRightRoute( - key: Key('obSlidePostComments'), - widget: OBPostCommentsPage( - pageType: PostCommentsPageType.comments, - post: post, - showPostPreview: true, - autofocusCommentInput: true))); + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('commentPostPageRoute'), + builder: (BuildContext context) { + return OBPostCommentsPage( + pageType: PostCommentsPageType.comments, + post: post, + showPostPreview: true, + autofocusCommentInput: true); + })); } Future navigateToPostComments( {@required Post post, @required BuildContext context}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obSlideViewComments'), - widget: OBPostCommentsPage( + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('postCommentsPageRoute'), + builder: (BuildContext context) { + return OBPostCommentsPage( post: post, showPostPreview: true, pageType: PostCommentsPageType.comments, - autofocusCommentInput: false))); + autofocusCommentInput: false); + }), + ); } Future navigateToPostCommentReplies( @@ -293,31 +364,37 @@ class NavigationService { Function(PostComment) onReplyDeleted, Function(PostComment) onReplyAdded}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obSlideViewComments'), - widget: OBPostCommentsPage( + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('postCommentRepliesPageRoute'), + builder: (BuildContext context) { + return OBPostCommentsPage( pageType: PostCommentsPageType.replies, post: post, showPostPreview: true, postComment: postComment, onCommentDeleted: onReplyDeleted, onCommentAdded: onReplyAdded, - autofocusCommentInput: false))); + autofocusCommentInput: false); + }), + ); } Future navigateToPostCommentsLinked( {@required PostComment postComment, @required BuildContext context}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obSlideViewCommentsLinked'), - widget: OBPostCommentsPage( + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('postCommentsLinkedPageRoute'), + builder: (BuildContext context) { + return OBPostCommentsPage( post: postComment.post, showPostPreview: true, pageType: PostCommentsPageType.comments, linkedPostComment: postComment, - autofocusCommentInput: false))); + autofocusCommentInput: false); + }), + ); } Future navigateToPostCommentRepliesLinked( @@ -325,171 +402,262 @@ class NavigationService { @required PostComment parentComment, @required BuildContext context}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obSlideViewCommentsLinked'), - widget: OBPostCommentsPage( + context, + OBSlideRightRoute( + slidableKey: + _getKeyRandomisedWithWord('postCommentRepliesLinkedPageRoute'), + builder: (BuildContext context) { + return OBPostCommentsPage( post: postComment.post, postComment: parentComment, showPostPreview: true, pageType: PostCommentsPageType.replies, linkedPostComment: postComment, - autofocusCommentInput: false))); + autofocusCommentInput: false); + }), + ); } Future navigateToPost({@required Post post, @required BuildContext context}) { - return Navigator.push(context, - OBSlideRightRoute(key: Key('obSlidePost'), widget: OBPostPage(post))); + return Navigator.push( + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('postPageRoute'), + builder: (BuildContext context) { + return OBPostPage(post); + }), + ); } Future navigateToSettingsPage({@required BuildContext context}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obMenuViewSettings'), widget: OBSettingsPage())); + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('settingsPageRoute'), + builder: (BuildContext context) { + return OBSettingsPage(); + }), + ); } Future navigateToFollowersPage({@required BuildContext context}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obFollowersPage'), widget: OBFollowersPage())); + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('followersPageRoute'), + builder: (BuildContext context) { + return OBFollowersPage(); + }), + ); } Future navigateToFollowingPage({@required BuildContext context}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obFollowingPage'), widget: OBFollowingPage())); + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('followingPageRoute'), + builder: (BuildContext context) { + return OBFollowingPage(); + }), + ); } Future navigateToAccountSettingsPage({@required BuildContext context}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obAccountSettingsPage'), - widget: OBAccountSettingsPage())); + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('accountSettingsPageRoute'), + builder: (BuildContext context) { + return OBAccountSettingsPage(); + }), + ); + } + + Future navigateToDeveloperSettingsPage({@required BuildContext context}) { + return Navigator.push( + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('developerSettingsPageRoute'), + builder: (BuildContext context) { + return OBDeveloperSettingsPage(); + }), + ); } Future navigateToApplicationSettingsPage({@required BuildContext context}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obApplicationSettingsPage'), - widget: OBApplicationSettingsPage())); + context, + OBSlideRightRoute( + slidableKey: + _getKeyRandomisedWithWord('applicationSettingsPageRoute'), + builder: (BuildContext context) { + return OBApplicationSettingsPage(); + }), + ); } Future navigateToThemesPage({@required BuildContext context}) { - return Navigator.push(context, - OBSlideRightRoute(key: Key('obMenuThemes'), widget: OBThemesPage())); + return Navigator.push( + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('themesPageRoute'), + builder: (BuildContext context) { + return OBThemesPage(); + }), + ); } Future navigateToUsefulLinksPage({@required BuildContext context}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obMenuUsefulLinks'), widget: OBUsefulLinksPage())); + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('usefulLinksPageRoute'), + builder: (BuildContext context) { + return OBUsefulLinksPage(); + }), + ); } Future navigateToCommunityGuidelinesPage({@required BuildContext context}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obCommunityGuidelinesPage'), - widget: OBCommunityGuidelinesPage())); + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('communityGuidelinesPage'), + builder: (BuildContext context) { + return OBCommunityGuidelinesPage(); + }), + ); } Future navigateToConfirmRejectGuidelinesPage( {@required BuildContext context}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obConfirmRejectGuidelinesPage'), - widget: OBConfirmRejectGuidelines())); + context, + OBSlideRightRoute( + slidableKey: + _getKeyRandomisedWithWord('confirmRejectGuidelinesPageRoute'), + builder: (BuildContext context) { + return OBConfirmRejectGuidelines(); + }), + ); } - Future navigateToSharePost( - {@required BuildContext context, @required SharePostData sharePostData}) { + Future navigateToSharePost( + {@required BuildContext context, + @required OBNewPostData createPostData}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obSharePostPage'), - widget: OBSharePostPage( - sharePostData: sharePostData, - ))); + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('sharePostPageRoute'), + builder: (BuildContext context) { + return OBSharePostPage( + createPostData: createPostData, + ); + }), + ); } - Future navigateToSharePostWithCircles( - {@required BuildContext context, @required SharePostData sharePostData}) { + Future navigateToSharePostWithCircles( + {@required BuildContext context, + @required OBNewPostData createPostData}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obSharePostWithCirclesPage'), - widget: OBSharePostWithCirclesPage( - sharePostData: sharePostData, - ))); + context, + OBSlideRightRoute( + slidableKey: + _getKeyRandomisedWithWord('sharePostWithCirclesPageRoute'), + builder: (BuildContext context) { + return OBSharePostWithCirclesPage( + createPostData: createPostData, + ); + }), + ); } - Future navigateToSharePostWithCommunity( - {@required BuildContext context, @required SharePostData sharePostData}) { + Future navigateToSharePostWithCommunity( + {@required BuildContext context, + @required OBNewPostData createPostData}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obSharePostWithCommunityPage'), - widget: OBSharePostWithCommunityPage( - sharePostData: sharePostData, - ))); + context, + OBSlideRightRoute( + slidableKey: + _getKeyRandomisedWithWord('sharePostWithCommunityPageRoute'), + builder: (BuildContext context) { + return OBSharePostWithCommunityPage( + createPostData: createPostData, + ); + }), + ); } Future navigateToFollowsLists({@required BuildContext context}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obSeeFollowsLists'), widget: OBFollowsListsPage())); + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('navigateToFollowsLists'), + builder: (BuildContext context) { + return OBFollowsListsPage(); + }), + ); } Future navigateToUserInvites({@required BuildContext context}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obSeeUserInvites'), widget: OBUserInvitesPage())); + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('userInvitesPageRoute'), + builder: (BuildContext context) { + return OBUserInvitesPage(); + }), + ); } Future navigateToShareInvite( {@required BuildContext context, @required UserInvite userInvite}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obShareUserInvitePage'), - widget: OBUserInviteDetailPage( - userInvite: userInvite, showEdit: false))); + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('shareInvitePageRoute'), + builder: (BuildContext context) { + return OBUserInviteDetailPage( + userInvite: userInvite, showEdit: false); + }), + ); } Future navigateToInviteDetailPage( {@required BuildContext context, @required UserInvite userInvite}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obSeeUserInviteDetail'), - widget: OBUserInviteDetailPage( - userInvite: userInvite, showEdit: true))); + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('inviteDetailPageRoute'), + builder: (BuildContext context) { + return OBUserInviteDetailPage( + userInvite: userInvite, showEdit: true); + }), + ); } Future navigateToConnectionsCircles({@required BuildContext context}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obSeeConnectionsCircles'), - widget: OBConnectionsCirclesPage())); + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('connectionsCirclesPageRoute'), + builder: (BuildContext context) { + return OBConnectionsCirclesPage(); + }), + ); } Future navigateToConnectionsCircle( {@required Circle connectionsCircle, @required BuildContext context}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obSeeConnectionsCircle'), - widget: OBConnectionsCirclePage(connectionsCircle))); + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('connectionsCirclePageRoute'), + builder: (BuildContext context) { + return OBConnectionsCirclePage(connectionsCircle); + }), + ); } Future navigateToFollowsList({ @@ -497,10 +665,13 @@ class NavigationService { @required BuildContext context, }) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obSeeFollowsList'), - widget: OBFollowsListPage(followsList))); + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('followsListPageRoute'), + builder: (BuildContext context) { + return OBFollowsListPage(followsList); + }), + ); } Future navigateToPostReactions( @@ -509,14 +680,17 @@ class NavigationService { @required BuildContext context, Emoji reactionEmoji}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obPostReactionsModal'), - widget: OBPostReactionsModal( + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('postReactionsPageRoute'), + builder: (BuildContext context) { + return OBPostReactionsModal( post: post, reactionsEmojiCounts: reactionsEmojiCounts, reactionEmoji: reactionEmoji, - ))); + ); + }), + ); } Future navigateToPostCommentReactions( @@ -526,55 +700,74 @@ class NavigationService { @required BuildContext context, Emoji reactionEmoji}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obPostCommentReactionsModal'), - widget: OBPostCommentReactionsModal( + context, + OBSlideRightRoute( + slidableKey: + _getKeyRandomisedWithWord('postCommentReactionsPageRoute'), + builder: (BuildContext context) { + return OBPostCommentReactionsModal( post: post, postComment: postComment, reactionsEmojiCounts: reactionsEmojiCounts, reactionEmoji: reactionEmoji, - ))); + ); + }), + ); } Future navigateToNotificationsSettings({ @required BuildContext context, }) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obNotificationsSettingsPage'), - widget: OBNotificationsSettingsPage())); + context, + OBSlideRightRoute( + slidableKey: + _getKeyRandomisedWithWord('notificationsSettingsPageRoute'), + builder: (BuildContext context) { + return OBNotificationsSettingsPage(); + }), + ); } Future navigateToUserLanguageSettings({ @required BuildContext context, }) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obLanguageSettingsPage'), - widget: OBUserLanguageSettingsPage())); + context, + OBSlideRightRoute( + slidableKey: + _getKeyRandomisedWithWord('userLanguageSettingsPageRoute'), + builder: (BuildContext context) { + return OBUserLanguageSettingsPage(); + }), + ); } Future navigateToBlockedUsers({ @required BuildContext context, }) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obBlockedUsersPage'), widget: OBBlockedUsersPage())); + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('blockedUsersPageRoute'), + builder: (BuildContext context) { + return OBBlockedUsersPage(); + }), + ); } Future navigateToConfirmBlockUser( {@required BuildContext context, @required User user}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obConfirmBlockUser'), - widget: OBConfirmBlockUserModal( + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('confirmBlockUserPageRoute'), + builder: (BuildContext context) { + return OBConfirmBlockUserModal( user: user, - ))); + ); + }), + ); } Future navigateToConfirmReportObject( @@ -583,14 +776,18 @@ class NavigationService { Map extraData, @required ModerationCategory category}) { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obConfirmReportObject'), - widget: OBConfirmReportObject( + context, + OBSlideRightRoute( + slidableKey: + _getKeyRandomisedWithWord('confirmReportObjectPageRoute'), + builder: (BuildContext context) { + return OBConfirmReportObject( extraData: extraData, object: object, category: category, - ))); + ); + }), + ); } Future navigateToReportObject( @@ -599,58 +796,76 @@ class NavigationService { Map extraData, ValueChanged onObjectReported}) async { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obReportObject'), - widget: OBReportObjectPage( + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('reportObjectPageRoute'), + builder: (BuildContext context) { + return OBReportObjectPage( object: object, extraData: extraData, onObjectReported: onObjectReported, - ))); + ); + }), + ); } Future navigateToCommunityModeratedObjects( {@required BuildContext context, @required Community community}) async { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obCommunityModeratedObjects'), - widget: OBModeratedObjectsPage( + context, + OBSlideRightRoute( + slidableKey: + _getKeyRandomisedWithWord('communityModeratedObjectsPageRoute'), + builder: (BuildContext context) { + return OBModeratedObjectsPage( community: community, - ))); + ); + }), + ); } Future navigateToGlobalModeratedObjects( {@required BuildContext context}) async { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obGlobalModeratedObjects'), - widget: OBModeratedObjectsPage())); + context, + OBSlideRightRoute( + slidableKey: + _getKeyRandomisedWithWord('globalModeratedObjectsPageRoute'), + builder: (BuildContext context) { + return OBModeratedObjectsPage(); + }), + ); } Future navigateToModeratedObjectReports( {@required BuildContext context, @required ModeratedObject moderatedObject}) async { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obModeratedObjectReportsPage'), - widget: OBModeratedObjectReportsPage( + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('moderatedObjectReports'), + builder: (BuildContext context) { + return OBModeratedObjectReportsPage( moderatedObject: moderatedObject, - ))); + ); + }), + ); } Future navigateToModeratedObjectGlobalReview( {@required BuildContext context, @required ModeratedObject moderatedObject}) async { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obModeratedObjectGlobalReviewPage'), - widget: OBModeratedObjectGlobalReviewPage( + context, + OBSlideRightRoute( + slidableKey: + _getKeyRandomisedWithWord('moderatedObjectGlobalReviewPageRoute'), + builder: (BuildContext context) { + return OBModeratedObjectGlobalReviewPage( moderatedObject: moderatedObject, - ))); + ); + }), + ); } Future navigateToModeratedObjectCommunityReview( @@ -658,31 +873,42 @@ class NavigationService { @required Community community, @required ModeratedObject moderatedObject}) async { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obModeratedObjectCommunityReviewPage'), - widget: OBModeratedObjectCommunityReviewPage( + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord( + 'moderatedObjectCommunityReviewPageRoute'), + builder: (BuildContext context) { + return OBModeratedObjectCommunityReviewPage( community: community, moderatedObject: moderatedObject, - ))); + ); + }), + ); } Future navigateToMyModerationTasksPage( {@required BuildContext context}) async { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obMyModerationTasksPage'), - widget: OBMyModerationTasksPage())); + context, + OBSlideRightRoute( + slidableKey: _getKeyRandomisedWithWord('myModerationTasksPageRoute'), + builder: (BuildContext context) { + return OBMyModerationTasksPage(); + }), + ); } Future navigateToMyModerationPenaltiesPage( {@required BuildContext context}) async { return Navigator.push( - context, - OBSlideRightRoute( - key: Key('obMyModerationPenaltiesPage'), - widget: OBMyModerationPenaltiesPage())); + context, + OBSlideRightRoute( + slidableKey: + _getKeyRandomisedWithWord('myModerationPenaltiesPageRoute'), + builder: (BuildContext context) { + return OBMyModerationPenaltiesPage(); + }), + ); } Future navigateToBlankPageWithWidget( @@ -691,16 +917,24 @@ class NavigationService { @required Key key, @required Widget widget}) { return Navigator.push( - context, - OBSlideRightRoute( - key: key, - widget: CupertinoPageScaffold( + context, + OBSlideRightRoute( + slidableKey: + _getKeyRandomisedWithWord('blankPageWithWidgetPageRoute'), + builder: (BuildContext context) { + return CupertinoPageScaffold( navigationBar: OBThemedNavigationBar( title: navBarTitle, ), child: OBPrimaryColorContainer( child: widget, ), - ))); + ); + }), + ); + } + + Key _getKeyRandomisedWithWord(String word) { + return Key(word + rng.nextInt(1000).toString()); } } diff --git a/lib/services/notifications_api.dart b/lib/services/notifications_api.dart index 3639ff2b4..629e09f8a 100644 --- a/lib/services/notifications_api.dart +++ b/lib/services/notifications_api.dart @@ -1,3 +1,4 @@ +import 'package:Okuna/models/notifications/notification.dart'; import 'package:Okuna/services/httpie.dart'; import 'package:Okuna/services/string_template.dart'; @@ -25,24 +26,32 @@ class NotificationsApiService { apiURL = newApiURL; } - Future getNotifications({int maxId, int count}) { + Future getNotifications( + {int maxId, int count, List types}) { Map queryParams = {}; if (maxId != null) queryParams['max_id'] = maxId; if (count != null) queryParams['count'] = count; + if (types != null && types.isNotEmpty) + queryParams['types'] = types.map((type) => type.code).toList(); + String url = _makeApiUrl(NOTIFICATIONS_PATH); return _httpService.get(url, appendAuthorizationToken: true, queryParameters: queryParams); } - Future readNotifications({int maxId}) { + Future readNotifications( + {int maxId, List types}) { String url = _makeApiUrl(NOTIFICATIONS_READ_PATH); Map body = {}; if (maxId != null) body['max_id'] = maxId.toString(); + if (types != null && types.isNotEmpty) + body['types'] = types.map((type) => type.code).join(','); + return _httpService.post(url, body: body, appendAuthorizationToken: true); } diff --git a/lib/services/posts_api.dart b/lib/services/posts_api.dart index 1812cdc39..becf69543 100644 --- a/lib/services/posts_api.dart +++ b/lib/services/posts_api.dart @@ -13,8 +13,11 @@ class PostsApiService { static const GET_POSTS_PATH = 'api/posts/'; static const GET_TRENDING_POSTS_PATH = 'api/posts/trending/'; static const CREATE_POST_PATH = 'api/posts/'; + static const POST_MEDIA_PATH = 'api/posts/{postUuid}/media/'; static const EDIT_POST_PATH = 'api/posts/{postUuid}/'; + static const PUBLISH_POST_PATH = 'api/posts/{postUuid}/publish/'; static const POST_PATH = 'api/posts/{postUuid}/'; + static const GET_POST_STATUS_PATH = 'api/posts/{postUuid}/status/'; static const OPEN_POST_PATH = 'api/posts/{postUuid}/open/'; static const CLOSE_POST_PATH = 'api/posts/{postUuid}/close/'; static const COMMENT_POST_PATH = 'api/posts/{postUuid}/comments/'; @@ -25,6 +28,7 @@ class PostsApiService { static const MUTE_POST_PATH = 'api/posts/{postUuid}/notifications/mute/'; static const UNMUTE_POST_PATH = 'api/posts/{postUuid}/notifications/unmute/'; static const REPORT_POST_PATH = 'api/posts/{postUuid}/report/'; + static const PREVIEW_POST_DATA_PATH = 'api/posts/{postUuid}/link-preview/'; static const TRANSLATE_POST_PATH = 'api/posts/{postUuid}/translate/'; static const TRANSLATE_POST_COMMENT_PATH = 'api/posts/{postUuid}/comments/{postCommentId}/translate/'; @@ -106,21 +110,17 @@ class PostsApiService { } Future createPost( - {String text, List circleIds, File image, File video}) { + {String text, List circleIds, bool isDraft = false}) { Map body = {}; - if (image != null) { - body['image'] = image; - } - - if (video != null) { - body['video'] = video; - } - if (text != null && text.length > 0) { body['text'] = text; } + if (isDraft != null) { + body['is_draft'] = isDraft; + } + if (circleIds != null && circleIds.length > 0) { body['circle_id'] = circleIds.join(','); } @@ -129,6 +129,34 @@ class PostsApiService { body: body, appendAuthorizationToken: true); } + Future addMediaToPost( + {@required File file, @required String postUuid}) { + Map body = {'file': file}; + + String path = _makeAddPostMediaPath(postUuid: postUuid); + + return _httpService.putMultiform(_makeApiUrl(path), + body: body, appendAuthorizationToken: true); + } + + Future getPostMedia({@required String postUuid}) { + String path = _makeGetPostMediaPath(postUuid: postUuid); + + return _httpService.get(_makeApiUrl(path), appendAuthorizationToken: true); + } + + Future publishPost({@required String postUuid}) { + String path = _makePublishPostPath(postUuid: postUuid); + + return _httpService.post(_makeApiUrl(path), appendAuthorizationToken: true); + } + + Future getPostWithUuidStatus(String postUuid) { + String path = _makeGetPostStatusPath(postUuid: postUuid); + + return _httpService.get(_makeApiUrl(path), appendAuthorizationToken: true); + } + Future editPost( {@required String postUuid, String text}) { Map body = {}; @@ -426,6 +454,13 @@ class PostsApiService { return _httpService.post(_makeApiUrl(path), appendAuthorizationToken: true); } + Future getPreviewDataForPostUuid( + {@required String postUuid}) { + String path = _makePreviewPostDataPath(postUuid: postUuid); + + return _httpService.get(_makeApiUrl(path), appendAuthorizationToken: true); + } + Future translatePostComment( {@required String postUuid, @required int postCommentId}) { String path = _makeTranslatePostCommentPath( @@ -613,6 +648,31 @@ class PostsApiService { .parse(TRANSLATE_POST_PATH, {'postUuid': postUuid}); } + String _makePreviewPostDataPath({@required postUuid}) { + return _stringTemplateService + .parse(PREVIEW_POST_DATA_PATH, {'postUuid': postUuid}); + } + + String _makeAddPostMediaPath({@required postUuid}) { + return _stringTemplateService + .parse(POST_MEDIA_PATH, {'postUuid': postUuid}); + } + + String _makeGetPostMediaPath({@required postUuid}) { + return _stringTemplateService + .parse(POST_MEDIA_PATH, {'postUuid': postUuid}); + } + + String _makePublishPostPath({@required postUuid}) { + return _stringTemplateService + .parse(PUBLISH_POST_PATH, {'postUuid': postUuid}); + } + + String _makeGetPostStatusPath({@required postUuid}) { + return _stringTemplateService + .parse(GET_POST_STATUS_PATH, {'postUuid': postUuid}); + } + String _makeTranslatePostCommentPath( {@required postUuid, @required postCommentId}) { return _stringTemplateService.parse(TRANSLATE_POST_COMMENT_PATH, diff --git a/lib/services/push_notifications/push_notifications.dart b/lib/services/push_notifications/push_notifications.dart index d0b198253..30c51039c 100644 --- a/lib/services/push_notifications/push_notifications.dart +++ b/lib/services/push_notifications/push_notifications.dart @@ -22,7 +22,7 @@ class PushNotificationsService { final _pushNotificationOpenedSubject = PublishSubject(); - void bootstrap() { + void bootstrap() async { OneSignal.shared.init(oneSignalAppId, iOSSettings: { OSiOSSettings.autoPrompt: false, OSiOSSettings.inAppLaunchUrl: true @@ -34,6 +34,10 @@ class PushNotificationsService { OneSignal.shared.setNotificationReceivedHandler(_onNotificationReceived); OneSignal.shared.setNotificationOpenedHandler(_onNotificationOpened); OneSignal.shared.setSubscriptionObserver(_onSubscriptionChanged); + var isSubscribed = await this.isSubscribedToPushNotifications(); + if (isSubscribed) { + this.enablePushNotifications(); + } } Future isSubscribedToPushNotifications() async { @@ -46,6 +50,27 @@ class PushNotificationsService { return subscriptionState.subscribed; } + Future enablePushNotificationsFlagInOneSignalIfNotPrompted() async { + /* There is an issue in the OneSignal flutter SDK where the + promptUserForPushNotificationPermission future never completes. Once this is fixed + (next release after 2.0.2 hopefully) we can directly call the promptUserForPushNotificationPermission() + method from _onLoggedInUserChange in home.dart, which will set the permissions + correctly. Then this function can be removed + Reference: https://github.com/OneSignal/OneSignal-Flutter-SDK/issues/62 + + Until then, this behaves as before for new signups, ie the onesignal permission + is set to true. + @todo: Replace usage of this method with promptUserForPushNotificationPermission() after new OneSignalSDK release + */ + + OSPermissionSubscriptionState osPermissionSubscriptionState = + await OneSignal.shared.getPermissionSubscriptionState(); + OSPermissionState permissionStatus = + osPermissionSubscriptionState.permissionStatus; + + if(!permissionStatus.hasPrompted) enablePushNotifications(); + } + Future enablePushNotifications() async { OSPermissionSubscriptionState osPermissionSubscriptionState = await OneSignal.shared.getPermissionSubscriptionState(); @@ -70,8 +95,13 @@ class PushNotificationsService { } void promptUserForPushNotificationPermission() async { - OneSignal.shared + bool hasAllowed = await OneSignal.shared .promptUserForPushNotificationPermission(fallbackToSettings: true); + if (hasAllowed) { + enablePushNotifications(); + } else { + disablePushNotifications(); + } } void setUserService(UserService userService) { @@ -130,7 +160,7 @@ class PushNotificationsService { Future _untagDeviceFromPushNotifications() { return Future.wait([ OneSignal.shared.deleteTag('user_id'), - OneSignal.shared.deleteTag('user_uuid') + OneSignal.shared.deleteTag('device_uuid') ]); } diff --git a/lib/services/storage.dart b/lib/services/storage.dart index ed21d12f5..b3c1521d5 100644 --- a/lib/services/storage.dart +++ b/lib/services/storage.dart @@ -10,7 +10,8 @@ class StorageService { } OBStorage getSystemPreferencesStorage({String namespace}) { - return OBStorage(store: _SystemPreferencesStorage(), namespace: namespace); + return OBStorage( + store: _SystemPreferencesStorage(namespace), namespace: namespace); } } @@ -20,8 +21,15 @@ class OBStorage { OBStorage({this.store, this.namespace}); - Future get(String key) { - return this.store.get(_makeKey(key)); + Future get(String key, {String defaultValue}) async { + String finalKey = _makeKey(key); + String value = await this.store.get(finalKey); + if (value == null && defaultValue != null) { + await store.set(finalKey, defaultValue); + value = defaultValue; + } + + return value; } Future set(String key, dynamic value) { @@ -46,6 +54,24 @@ class _SecureStore implements _Store { final storage = new FlutterSecureStorage(); Set _storedKeys = Set(); + _SecureStore() { + _loadPreviouslyStoredKeys(); + } + + void _loadPreviouslyStoredKeys() async { + // Storing the previous keys in a list in preferences instead of obtaining + // them using storage.readAll(). For one thing, readAll() would decrypt all + // stored data and send it back, which is unnecessary. On top of that, + // readAll() doesn't work on iOS (https://github.com/mogol/flutter_secure_storage/issues/70). + SharedPreferences preferences = await SharedPreferences.getInstance(); + _storedKeys.addAll(preferences.getStringList('secure_store.keylist')); + } + + void _saveStoredKeys() async { + SharedPreferences preferences = await SharedPreferences.getInstance(); + preferences.setStringList('secure_store.keylist', _storedKeys.toList()); + } + Future get(String key) async { try { return storage.read(key: key); @@ -57,12 +83,16 @@ class _SecureStore implements _Store { } Future set(String key, String value) { - _storedKeys.add(value); + if (_storedKeys.add(key)) { + _saveStoredKeys(); + } return storage.write(key: key, value: value); } Future remove(String key) { - _storedKeys.remove(key); + if (_storedKeys.remove(key)) { + _saveStoredKeys(); + } return storage.delete(key: key); } @@ -73,11 +103,12 @@ class _SecureStore implements _Store { } class _SystemPreferencesStorage implements _Store { - final storage = new FlutterSecureStorage(); - Set _storedKeys = Set(); + final String _namespace; Future _sharedPreferencesCache; + _SystemPreferencesStorage(String namespace) : _namespace = namespace; + Future _getSharedPreferences() async { if (_sharedPreferencesCache != null) return _sharedPreferencesCache; _sharedPreferencesCache = SharedPreferences.getInstance(); @@ -90,20 +121,21 @@ class _SystemPreferencesStorage implements _Store { } Future set(String key, String value) async { - _storedKeys.add(value); SharedPreferences sharedPreferences = await _getSharedPreferences(); return sharedPreferences.setString(key, value); } Future remove(String key) async { - _storedKeys.remove(key); SharedPreferences sharedPreferences = await _getSharedPreferences(); return sharedPreferences.remove(key); } - Future clear() { - return Future.wait( - _storedKeys.map((String key) => storage.delete(key: key))); + Future clear() async { + SharedPreferences preferences = await _getSharedPreferences(); + return Future.wait(preferences + .getKeys() + .where((key) => key.startsWith('$_namespace.')) + .map((key) => preferences.remove(key))); } } diff --git a/lib/services/text_account_autocompletion.dart b/lib/services/text_account_autocompletion.dart index 6952b7cd9..a5c2ce4dd 100644 --- a/lib/services/text_account_autocompletion.dart +++ b/lib/services/text_account_autocompletion.dart @@ -2,26 +2,43 @@ import 'package:flutter/cupertino.dart'; class TextAccountAutocompletionService { TextAccountAutocompletionResult checkTextForAutocompletion(TextEditingController textController) { - String lastWord = textController.text.replaceAll('\n', ' ').split(' ').last; int cursorPosition = textController.selection.baseOffset; - if (lastWord.startsWith('@') && cursorPosition == textController.text.length) { - String searchQuery = lastWord.substring(1); - return TextAccountAutocompletionResult( - isAutocompleting: true, autocompleteQuery: searchQuery); - } else { - return TextAccountAutocompletionResult(isAutocompleting: false); + if (cursorPosition >= 1) { + String lastWord = _getWordBeforeCursor(textController.text, cursorPosition); + + if (lastWord.startsWith('@')) { + String searchQuery = lastWord.substring(1); + return TextAccountAutocompletionResult( + isAutocompleting: true, autocompleteQuery: searchQuery); + } } + + return TextAccountAutocompletionResult(isAutocompleting: false); } - String autocompleteTextWithUsername(String text, String username){ - String lastWord = text.split(' ').last; + void autocompleteTextWithUsername(TextEditingController textController, String username){ + String text = textController.text; + int cursorPosition = textController.selection.baseOffset; + String lastWord = _getWordBeforeCursor(text, cursorPosition); if(!lastWord.startsWith('@')){ throw 'Tried to autocomplete text with username without @'; } - return text.substring(0, text.length - lastWord.length) + '@$username '; + var newText = text.substring(0, cursorPosition - lastWord.length) + '@$username ' + text.substring(cursorPosition); + var newSelection = TextSelection.collapsed(offset: cursorPosition - lastWord.length + username.length + 2); + + textController.value = TextEditingValue(text: newText, selection: newSelection); + } + + String _getWordBeforeCursor(String text, int cursorPosition) { + if (text.isNotEmpty) { + var start = text.lastIndexOf(RegExp(r'\s'), cursorPosition - 1); + return text.substring(start + 1, cursorPosition); + } else { + return text; + } } } diff --git a/lib/services/theme.dart b/lib/services/theme.dart index 6e2006d60..a208ab6f1 100644 --- a/lib/services/theme.dart +++ b/lib/services/theme.dart @@ -1,5 +1,7 @@ import 'package:Okuna/models/theme.dart'; import 'package:Okuna/services/storage.dart'; +import 'package:flutter/services.dart'; +import 'package:pigment/pigment.dart'; import 'package:rxdart/rxdart.dart'; import 'dart:math'; @@ -128,7 +130,7 @@ class ThemeService { dangerColor: '#FF3860', dangerColorAccent: '#ffffff', themePreview: - 'assets/images/theme-previews/theme-preview-light-royale.png'), + 'assets/images/theme-previews/theme-preview-light-royale.png'), OBTheme( id: 10, name: 'Space Royale', @@ -141,7 +143,7 @@ class ThemeService { dangerColor: '#FF3860', dangerColorAccent: '#ffffff', themePreview: - 'assets/images/theme-previews/theme-preview-space-royale.png'), + 'assets/images/theme-previews/theme-preview-space-royale.png'), OBTheme( id: 11, name: 'Light Cinnabar', @@ -182,6 +184,8 @@ class ThemeService { void setActiveTheme(OBTheme theme) { _setActiveTheme(theme); _storeActiveThemeId(theme.id); + SystemChrome.setSystemUIOverlayStyle(SystemUiOverlayStyle( + statusBarColor: Pigment.fromString(theme.primaryColor))); } void _bootstrap() async { diff --git a/lib/services/user.dart b/lib/services/user.dart index 374462684..e1a2901c4 100644 --- a/lib/services/user.dart +++ b/lib/services/user.dart @@ -33,6 +33,7 @@ import 'package:Okuna/models/post_comment.dart'; import 'package:Okuna/models/post_comment_list.dart'; import 'package:Okuna/models/post_comment_reaction.dart'; import 'package:Okuna/models/post_comment_reaction_list.dart'; +import 'package:Okuna/models/post_media_list.dart'; import 'package:Okuna/models/post_reaction.dart'; import 'package:Okuna/models/post_reaction_list.dart'; import 'package:Okuna/models/reactions_emoji_count_list.dart'; @@ -297,6 +298,7 @@ class UserService { String url, String password, bool followersCountVisible, + bool communityPostsVisible, String bio, String location, }) async { @@ -307,6 +309,7 @@ class UserService { username: username, url: url, followersCountVisible: followersCountVisible, + communityPostsVisible: communityPostsVisible, bio: bio, location: location); @@ -366,7 +369,6 @@ class UserService { int maxId, int count, String username, - bool areFirstPosts = false, bool cachePosts = false}) async { HttpieResponse response = await _postsApiService.getTimelinePosts( circleIds: circles.map((circle) => circle.id).toList(), @@ -393,25 +395,60 @@ class UserService { } Future createPost( - {String text, - List circles = const [], - File image, - File video}) async { + {String text, List circles = const [], bool isDraft}) async { HttpieStreamedResponse response = await _postsApiService.createPost( text: text, circleIds: circles.map((circle) => circle.id).toList(), - video: video, - image: image); + isDraft: isDraft); _checkResponseIsCreated(response); - // Post counts have changed + // Post counts may have changed refreshUser(); String responseBody = await response.readAsString(); return Post.fromJson(json.decode(responseBody)); } + Future addMediaToPost( + {@required File file, @required Post post}) async { + HttpieStreamedResponse response = + await _postsApiService.addMediaToPost(file: file, postUuid: post.uuid); + + _checkResponseIsOk(response); + } + + Future getMediaForPost({@required Post post}) async { + HttpieResponse response = + await _postsApiService.getPostMedia(postUuid: post.uuid); + + _checkResponseIsOk(response); + + return PostMediaList.fromJson(json.decode(response.body)); + } + + Future publishPost({@required Post post}) async { + HttpieResponse response = + await _postsApiService.publishPost(postUuid: post.uuid); + + _checkResponseIsOk(response); + } + + Future getPostStatus({@required Post post}) async { + HttpieResponse response = + await _postsApiService.getPostWithUuidStatus(post.uuid); + + _checkResponseIsOk(response); + + Map responseJson = response.parseJsonBody(); + + OBPostStatus status = OBPostStatus.parse(responseJson['status']); + + post.setStatus(status); + + return status; + } + Future editPost({String postUuid, String text}) async { HttpieStreamedResponse response = await _postsApiService.editPost(postUuid: postUuid, text: text); @@ -989,10 +1026,10 @@ class UserService { } Future createPostForCommunity(Community community, - {String text, File image, File video}) async { + {String text, File image, File video, bool isDraft}) async { HttpieStreamedResponse response = await _communitiesApiService .createPostForCommunityWithId(community.name, - text: text, image: image, video: video); + text: text, image: image, video: video, isDraft: isDraft); _checkResponseIsCreated(response); String responseBody = await response.readAsString(); @@ -1409,9 +1446,10 @@ class UserService { return CategoriesList.fromJson(json.decode(response.body)); } - Future getNotifications({int maxId, int count}) async { + Future getNotifications( + {int maxId, int count, List types}) async { HttpieResponse response = await _notificationsApiService.getNotifications( - maxId: maxId, count: count); + maxId: maxId, count: count, types: types); _checkResponseIsOk(response); return NotificationsList.fromJson(json.decode(response.body)); } @@ -1423,9 +1461,10 @@ class UserService { return OBNotification.fromJSON(json.decode(response.body)); } - Future readNotifications({int maxId}) async { - HttpieResponse response = - await _notificationsApiService.readNotifications(maxId: maxId); + Future readNotifications( + {int maxId, List types}) async { + HttpieResponse response = await _notificationsApiService.readNotifications( + maxId: maxId, types: types); _checkResponseIsOk(response); } @@ -1560,7 +1599,8 @@ class UserService { await _authApiService.updateAuthenticatedUserNotificationsSettings( postCommentNotifications: postCommentNotifications, postCommentReplyNotifications: postCommentReplyNotifications, - postCommentUserMentionNotifications: postCommentUserMentionNotifications, + postCommentUserMentionNotifications: + postCommentUserMentionNotifications, postUserMentionNotifications: postUserMentionNotifications, postCommentReactionNotifications: postCommentReactionNotifications, postReactionNotifications: postReactionNotifications, diff --git a/lib/services/user_preferences.dart b/lib/services/user_preferences.dart index 1e38a6146..444c2a883 100644 --- a/lib/services/user_preferences.dart +++ b/lib/services/user_preferences.dart @@ -1,13 +1,171 @@ +import 'dart:async'; + import 'package:Okuna/models/post_comment.dart'; +import 'package:Okuna/services/connectivity.dart'; import 'package:Okuna/services/storage.dart'; +import 'package:connectivity/connectivity.dart'; +import 'package:rxdart/rxdart.dart'; + +import 'localization.dart'; class UserPreferencesService { + LocalizationService _localizationService; OBStorage _storage; + ConnectivityService _connectivityService; + static const postCommentsSortTypeStorageKey = 'postCommentsSortType'; + static const videosAutoPlaySettingStorageKey = 'videosAutoPlaySetting'; + static const linkPreviewsSettingStorageKey = 'linkPreviewsSetting'; + static const videosSoundSettingStorageKey = 'videoSoundSetting'; + + ConnectivityResult _currentConnectivity; + StreamSubscription _connectivityChangeSubscription; + Future _getPostCommentsSortTypeCache; + Stream get videosAutoPlayAreEnabledChange => + _videosAutoPlayEnabledChangeSubject.stream; + + final _videosAutoPlayEnabledChangeSubject = BehaviorSubject(); + + bool _videosAutoPlayAreEnabled = false; + + Stream get linkPreviewsAreEnabledChange => + _linkPreviewsEnabledChangeSubject.stream; + + final _linkPreviewsEnabledChangeSubject = BehaviorSubject(); + + bool _linkPreviewsAreEnabled = false; + + Stream get videosSoundSettingChange => + _videosSoundSettingChangeSubject.stream; + + final _videosSoundSettingChangeSubject = + BehaviorSubject(); + + Stream get linkPreviewsSettingChange => + _linkPreviewsSettingChangeSubject.stream; + + final _linkPreviewsSettingChangeSubject = + BehaviorSubject(); + + Stream get videosAutoPlaySettingChange => + _videosAutoPlaySettingChangeSubject.stream; + + final _videosAutoPlaySettingChangeSubject = + BehaviorSubject(); + void setStorageService(StorageService storageService) { - _storage = storageService.getSystemPreferencesStorage(namespace: 'userPreferences'); + _storage = storageService.getSystemPreferencesStorage( + namespace: 'userPreferences'); + } + + // Bootstrapped after connectivity service is given in the provider + void bootstrap() async { + _currentConnectivity = _connectivityService.getConnectivity(); + _refreshConnectivityDependentSettings(); + + _connectivityChangeSubscription = + _connectivityService.onConnectivityChange(_onConnectivityChange); + } + + void _onConnectivityChange(ConnectivityResult newConnectivity) { + _currentConnectivity = newConnectivity; + _refreshConnectivityDependentSettings(); + } + + void setLocalizationService(LocalizationService localizationService) { + _localizationService = localizationService; + } + + void setConnectivityService(ConnectivityService connectivityService) { + _connectivityService = connectivityService; + } + + void dispose() { + _connectivityChangeSubscription?.cancel(); + _linkPreviewsEnabledChangeSubject.close(); + _videosSoundSettingChangeSubject.close(); + _videosAutoPlaySettingChangeSubject.close(); + _videosAutoPlayEnabledChangeSubject.close(); + } + + bool getLinkPreviewsAreEnabled() { + return _linkPreviewsAreEnabled; + } + + Future setLinkPreviewsSetting(LinkPreviewsSetting linkPreviewsSetting) async { + String rawValue = linkPreviewsSetting.toString(); + _linkPreviewsSettingChangeSubject.add(linkPreviewsSetting); + await _storage.set(linkPreviewsSettingStorageKey, rawValue); + _refreshLinkPreviewsAreEnabled(); + } + + Future getLinkPreviewsSetting() async { + String rawValue = await _storage.get(linkPreviewsSettingStorageKey, + defaultValue: LinkPreviewsSetting.always.toString()); + return LinkPreviewsSetting.parse(rawValue); + } + + Map getLinkPreviewsSettingLocalizationMap() { + return { + LinkPreviewsSetting.always: _localizationService + .application_settings__link_previews_autoplay_always, + LinkPreviewsSetting.never: _localizationService + .application_settings__link_previews_autoplay_never, + LinkPreviewsSetting.wifiOnly: _localizationService + .application_settings__link_previews_autoplay_wifi_only + }; + } + + bool getVideosAutoPlayAreEnabled() { + return _videosAutoPlayAreEnabled; + } + + Future setVideosAutoPlaySetting( + VideosAutoPlaySetting videosAutoPlaySetting) async { + String rawValue = videosAutoPlaySetting.toString(); + _videosAutoPlaySettingChangeSubject.add(videosAutoPlaySetting); + await _storage.set(videosAutoPlaySettingStorageKey, rawValue); + _refreshVideosAutoPlayAreEnabled(); + } + + Future getVideosAutoPlaySetting() async { + String rawValue = await _storage.get(videosAutoPlaySettingStorageKey, + defaultValue: VideosAutoPlaySetting.wifiOnly.toString()); + return VideosAutoPlaySetting.parse(rawValue); + } + + Map getVideosAutoPlaySettingLocalizationMap() { + return { + VideosAutoPlaySetting.always: + _localizationService.application_settings__videos_autoplay_always, + VideosAutoPlaySetting.never: + _localizationService.application_settings__videos_autoplay_never, + VideosAutoPlaySetting.wifiOnly: + _localizationService.application_settings__videos_autoplay_wifi_only + }; + } + + Future setVideosSoundSetting(VideosSoundSetting videosSoundSetting) { + String rawValue = videosSoundSetting.toString(); + _videosSoundSettingChangeSubject.add(videosSoundSetting); + return _storage.set(videosSoundSettingStorageKey, rawValue); + } + + Future getVideosSoundSetting() async { + String rawValue = await _storage.get(videosSoundSettingStorageKey, + defaultValue: VideosSoundSetting.disabled.toString()); + return VideosSoundSetting.parse(rawValue); + } + + Map getVideosSoundSettingLocalizationMap() { + return { + VideosSoundSetting.disabled: + _localizationService.application_settings__videos_sound_disabled, + VideosSoundSetting.enabled: + _localizationService.application_settings__videos_sound_enabled + }; } Future setPostCommentsSortType(PostCommentsSortType type) { @@ -37,7 +195,136 @@ class UserPreferencesService { return PostCommentsSortType.asc; } + void _refreshConnectivityDependentSettings() { + _refreshLinkPreviewsAreEnabled(); + _refreshVideosAutoPlayAreEnabled(); + } + + void _refreshLinkPreviewsAreEnabled() async { + LinkPreviewsSetting currentLinkPreviewsSetting = + await getLinkPreviewsSetting(); + _linkPreviewsAreEnabled = + currentLinkPreviewsSetting == LinkPreviewsSetting.always || + (currentLinkPreviewsSetting == LinkPreviewsSetting.wifiOnly && + _currentConnectivity == ConnectivityResult.wifi); + _linkPreviewsEnabledChangeSubject.add(_linkPreviewsAreEnabled); + } + + void _refreshVideosAutoPlayAreEnabled() async { + VideosAutoPlaySetting currentVideosAutoPlaySetting = + await getVideosAutoPlaySetting(); + _videosAutoPlayAreEnabled = + currentVideosAutoPlaySetting == VideosAutoPlaySetting.always || + (currentVideosAutoPlaySetting == VideosAutoPlaySetting.wifiOnly && + _currentConnectivity == ConnectivityResult.wifi); + _videosAutoPlayEnabledChangeSubject.add(_videosAutoPlayAreEnabled); + } + Future clear() { return _storage.clear(); } } + +class VideosAutoPlaySetting { + final String code; + + const VideosAutoPlaySetting._internal(this.code); + + toString() => code; + + static const never = const VideosAutoPlaySetting._internal('n'); + static const always = const VideosAutoPlaySetting._internal('a'); + static const wifiOnly = const VideosAutoPlaySetting._internal('w'); + + static const _values = const [never, always, wifiOnly]; + + static values() => _values; + + static VideosAutoPlaySetting parse(String string) { + if (string == null) return null; + + VideosAutoPlaySetting autoPlaySetting; + for (var type in _values) { + if (string == type.code) { + autoPlaySetting = type; + break; + } + } + + if (autoPlaySetting == null) { + // Don't throw as we might introduce new notifications on the API which might not be yet in code + print('Unsupported autoplay setting'); + } + + return autoPlaySetting; + } +} + +class VideosSoundSetting { + final String code; + + const VideosSoundSetting._internal(this.code); + + toString() => code; + + static const enabled = const VideosSoundSetting._internal('e'); + static const disabled = const VideosSoundSetting._internal('d'); + + static const _values = const [enabled, disabled]; + + static values() => _values; + + static VideosSoundSetting parse(String string) { + if (string == null) return null; + + VideosSoundSetting soundSetting; + for (var type in _values) { + if (string == type.code) { + soundSetting = type; + break; + } + } + + if (soundSetting == null) { + // Don't throw as we might introduce new notifications on the API which might not be yet in code + print('Unsupported videos sound setting'); + } + + return soundSetting; + } +} + +class LinkPreviewsSetting { + final String code; + + const LinkPreviewsSetting._internal(this.code); + + toString() => code; + + static const never = const LinkPreviewsSetting._internal('n'); + static const always = const LinkPreviewsSetting._internal('a'); + static const wifiOnly = const LinkPreviewsSetting._internal('w'); + + static const _values = const [never, always, wifiOnly]; + + static values() => _values; + + static LinkPreviewsSetting parse(String string) { + if (string == null) return null; + + LinkPreviewsSetting autoPlaySetting; + for (var type in _values) { + if (string == type.code) { + autoPlaySetting = type; + break; + } + } + + if (autoPlaySetting == null) { + // Don't throw as we might introduce new notifications on the API which might not be yet in code + print('Unsupported links previews setting'); + } + + return autoPlaySetting; + } +} diff --git a/lib/services/utils_service.dart b/lib/services/utils_service.dart index 64055affe..4eeb23d17 100644 --- a/lib/services/utils_service.dart +++ b/lib/services/utils_service.dart @@ -28,6 +28,10 @@ class UtilsService { return lookupExtension(mimeType); } + String geFileNameMimeType(String fileName) { + return lookupMimeType(fileName); + } + Future getFileMimeType(File file) async { String mimeType = lookupMimeType(file.path); @@ -37,6 +41,7 @@ class UtilsService { return mimeType; } + // LocalizationService localizationService String timeAgo(DateTime date, LocalizationService _localizationService) { /// Originally from https://gist.github.com/DineshKachhot/bc8cee616f30c323c1dd1e63a4bf65df diff --git a/lib/services/validation.dart b/lib/services/validation.dart index 1b3e54ce8..104bdd529 100644 --- a/lib/services/validation.dart +++ b/lib/services/validation.dart @@ -4,7 +4,7 @@ import 'package:Okuna/services/communities_api.dart'; import 'package:Okuna/services/connections_circles_api.dart'; import 'package:Okuna/services/follows_lists_api.dart'; import 'package:Okuna/services/httpie.dart'; -import 'package:Okuna/services/image_picker.dart'; +import 'package:Okuna/services/media.dart'; import 'package:validators/validators.dart' as validators; import 'localization.dart'; @@ -36,8 +36,9 @@ class ValidationService { static const int PROFILE_LOCATION_MAX_LENGTH = 64; static const int PROFILE_BIO_MAX_LENGTH = 1000; static const int POST_IMAGE_MAX_SIZE = 20971520; - static const int AVATAR_IMAGE_MAX_SIZE = 10485760; - static const int COVER_IMAGE_MAX_SIZE = 10485760; + static const int AVATAR_IMAGE_MAX_SIZE = 20971520; + static const int COVER_IMAGE_MAX_SIZE = 20971520; + static const int VIDEO_MAX_SIZE = 20971520; void setAuthApiService(AuthApiService authApiService) { _authApiService = authApiService; @@ -52,8 +53,7 @@ class ValidationService { _followsListsApiService = followsListsApiService; } - void setLocalizationService( - LocalizationService localizationService) { + void setLocalizationService(LocalizationService localizationService) { _localizationService = localizationService; } @@ -240,6 +240,15 @@ class ValidationService { return size <= getAllowedImageSize(type); } + Future isVideoAllowedSize(File video) async { + int size = await video.length(); + return size <= VIDEO_MAX_SIZE; + } + + int getAllowedVideoSize() { + return VIDEO_MAX_SIZE; + } + int getAllowedImageSize(OBImageType type) { if (type == OBImageType.avatar) { return AVATAR_IMAGE_MAX_SIZE; @@ -258,10 +267,10 @@ class ValidationService { if (username.length == 0) { errorMsg = _localizationService.auth__username_empty_error; } else if (!isUsernameAllowedLength(username)) { - errorMsg = _localizationService.auth__username_maxlength_error(USERNAME_MAX_LENGTH); + errorMsg = _localizationService + .auth__username_maxlength_error(USERNAME_MAX_LENGTH); } else if (!isUsernameAllowedCharacters(username)) { - errorMsg = - _localizationService.auth__username_characters_error; + errorMsg = _localizationService.auth__username_characters_error; } return errorMsg; @@ -275,7 +284,8 @@ class ValidationService { if (postComment.length == 0) { errorMsg = _localizationService.post__comment_required_error; } else if (!isPostCommentAllowedLength(postComment)) { - errorMsg = _localizationService.post__comment_maxlength_error(POST_COMMENT_MAX_LENGTH); + errorMsg = _localizationService + .post__comment_maxlength_error(POST_COMMENT_MAX_LENGTH); } return errorMsg; @@ -317,7 +327,8 @@ class ValidationService { if (password.length == 0) { errorMsg = _localizationService.auth__password_empty_error; } else if (!isPasswordAllowedLength(password)) { - errorMsg = _localizationService.auth__password_range_error(PASSWORD_MIN_LENGTH, PASSWORD_MAX_LENGTH); + errorMsg = _localizationService.auth__password_range_error( + PASSWORD_MIN_LENGTH, PASSWORD_MAX_LENGTH); } return errorMsg; @@ -331,7 +342,8 @@ class ValidationService { if (name.isEmpty) { errorMsg = _localizationService.auth__name_empty_error; } else if (!isNameAllowedLength(name)) { - errorMsg = _localizationService.auth__name_range_error(PROFILE_NAME_MIN_LENGTH, PROFILE_NAME_MAX_LENGTH); + errorMsg = _localizationService.auth__name_range_error( + PROFILE_NAME_MIN_LENGTH, PROFILE_NAME_MAX_LENGTH); } return errorMsg; } @@ -344,8 +356,9 @@ class ValidationService { if (description.isEmpty) { errorMsg = _localizationService.auth__description_empty_error; } else if (!isModeratedObjectDescriptionAllowedLength(description)) { - errorMsg = - _localizationService.auth__description_range_error(MODERATED_OBJECT_DESCRIPTION_MIN_LENGTH, MODERATED_OBJECT_DESCRIPTION_MAX_LENGTH); + errorMsg = _localizationService.auth__description_range_error( + MODERATED_OBJECT_DESCRIPTION_MIN_LENGTH, + MODERATED_OBJECT_DESCRIPTION_MAX_LENGTH); } return errorMsg; } @@ -372,7 +385,8 @@ class ValidationService { String errorMsg; if (!isLocationAllowedLength(location)) { - errorMsg = _localizationService.user__profile_location_length_error(PROFILE_LOCATION_MAX_LENGTH); + errorMsg = _localizationService + .user__profile_location_length_error(PROFILE_LOCATION_MAX_LENGTH); } return errorMsg; @@ -386,7 +400,8 @@ class ValidationService { String errorMsg; if (!isBioAllowedLength(bio)) { - errorMsg = _localizationService.user__profile_bio_length_error(PROFILE_BIO_MAX_LENGTH); + errorMsg = _localizationService + .user__profile_bio_length_error(PROFILE_BIO_MAX_LENGTH); } return errorMsg; @@ -400,7 +415,8 @@ class ValidationService { if (name.length == 0) { errorMsg = _localizationService.user__list_name_empty_error; } else if (!isFollowsListNameAllowedLength(name)) { - errorMsg = _localizationService.user__list_name_range_error(LIST_MAX_LENGTH); + errorMsg = + _localizationService.user__list_name_range_error(LIST_MAX_LENGTH); } return errorMsg; @@ -414,7 +430,8 @@ class ValidationService { if (name.length == 0) { errorMsg = _localizationService.user__circle_name_empty_error; } else if (!isConnectionsCircleNameAllowedLength(name)) { - errorMsg = _localizationService.user__circle_name_range_error(CIRCLE_MAX_LENGTH); + errorMsg = + _localizationService.user__circle_name_range_error(CIRCLE_MAX_LENGTH); } return errorMsg; @@ -428,7 +445,8 @@ class ValidationService { if (name.length == 0) { errorMsg = _localizationService.community__name_empty_error; } else if (!isCommunityNameAllowedLength(name)) { - errorMsg = _localizationService.community__name_range_error(COMMUNITY_NAME_MAX_LENGTH); + errorMsg = _localizationService + .community__name_range_error(COMMUNITY_NAME_MAX_LENGTH); } else if (!isCommunityNameAllowedCharacters(name)) { errorMsg = _localizationService.community__name_characters_error; } @@ -444,7 +462,8 @@ class ValidationService { if (title.length == 0) { errorMsg = _localizationService.community__title_empty_error; } else if (!isCommunityTitleAllowedLength(title)) { - errorMsg = _localizationService.community__title_range_error(COMMUNITY_TITLE_MAX_LENGTH); + errorMsg = _localizationService + .community__title_range_error(COMMUNITY_TITLE_MAX_LENGTH); } return errorMsg; } @@ -459,7 +478,8 @@ class ValidationService { if (rules.length == 0) { errorMsg = _localizationService.community__rules_empty_error; } else if (!isCommunityRulesAllowedLength(rules)) { - errorMsg = _localizationService.community__rules_range_error(COMMUNITY_RULES_MAX_LENGTH); + errorMsg = _localizationService + .community__rules_range_error(COMMUNITY_RULES_MAX_LENGTH); } return errorMsg; } @@ -472,7 +492,8 @@ class ValidationService { String errorMsg; if (!isCommunityDescriptionAllowedLength(description)) { - errorMsg = _localizationService.community__description_range_error(COMMUNITY_DESCRIPTION_MAX_LENGTH); + errorMsg = _localizationService + .community__description_range_error(COMMUNITY_DESCRIPTION_MAX_LENGTH); } return errorMsg; } @@ -485,7 +506,8 @@ class ValidationService { String errorMsg; if (!isCommunityUserAdjectiveAllowedLength(userAdjective)) { - errorMsg = _localizationService.community__adjectives_range_error(COMMUNITY_USER_ADJECTIVE_MAX_LENGTH); + errorMsg = _localizationService.community__adjectives_range_error( + COMMUNITY_USER_ADJECTIVE_MAX_LENGTH); } return errorMsg; diff --git a/lib/translation/constants.dart b/lib/translation/constants.dart index e14094de5..a434accd3 100644 --- a/lib/translation/constants.dart +++ b/lib/translation/constants.dart @@ -4,30 +4,31 @@ import 'dart:ui'; const supportedLocales = [ const Locale('en', 'US'), const Locale('es-ES', 'ES'), -// const Locale('nl', 'NL'), + const Locale('nl', 'NL'), // const Locale('ar', 'SA'), // const Locale('zh', 'CN'), // const Locale('zh-TW', 'TW'), // const Locale('cs', 'CZ'), -// const Locale('da', 'DK'), + const Locale('da', 'DK'), // const Locale('fi', 'FI'), - const Locale('fr', 'FR'), - const Locale('de', 'DE'), + const Locale('fr', 'FR'), + const Locale('de', 'DE'), + const Locale('hu', 'HU'), // const Locale('he', 'IL'), // const Locale('hi', 'IN'), // const Locale('id', 'ID'), - const Locale('it', 'IT'), + const Locale('it', 'IT'), // const Locale('ja', 'JP'), // const Locale('ko', 'KR'), // const Locale('ms', 'MY'), // const Locale('no', 'NO'), // const Locale('fa', 'IR'), // const Locale('pl', 'PL'), - const Locale('pt-BR', 'BR'), + const Locale('pt-BR', 'BR'), // const Locale('ru', 'RU'), - const Locale('sv-SE', 'SE'), - const Locale('tr', 'TR'), + const Locale('sv-SE', 'SE'), + const Locale('tr', 'TR'), ]; -var supportedLanguages = supportedLocales.map((Locale locale) => locale.languageCode).toList(); - +var supportedLanguages = + supportedLocales.map((Locale locale) => locale.languageCode).toList(); diff --git a/lib/widgets/buttons/button.dart b/lib/widgets/buttons/button.dart index 58df2a923..0521192fd 100644 --- a/lib/widgets/buttons/button.dart +++ b/lib/widgets/buttons/button.dart @@ -148,7 +148,7 @@ class OBButton extends StatelessWidget { Color primaryColor = themeValueParser.parseColor(theme.primaryColor); final bool isDarkPrimaryColor = primaryColor.computeLuminance() < 0.179; Color gradientColor = isDarkPrimaryColor - ? Color.fromARGB(20, 255, 255, 255) + ? Color.fromARGB(30, 255, 255, 255) : Color.fromARGB(10, 0, 0, 0); buttonGradient = themeValueParser diff --git a/lib/widgets/buttons/community_floating_action_button.dart b/lib/widgets/buttons/community_new_post_button.dart similarity index 68% rename from lib/widgets/buttons/community_floating_action_button.dart rename to lib/widgets/buttons/community_new_post_button.dart index 0ebdc6951..c0bd1865a 100644 --- a/lib/widgets/buttons/community_floating_action_button.dart +++ b/lib/widgets/buttons/community_new_post_button.dart @@ -1,12 +1,13 @@ import 'package:Okuna/models/community.dart'; -import 'package:Okuna/models/post.dart'; import 'package:Okuna/models/theme.dart'; import 'package:Okuna/provider.dart'; +import 'package:Okuna/services/localization.dart'; import 'package:Okuna/services/theme.dart'; import 'package:Okuna/services/theme_value_parser.dart'; import 'package:Okuna/widgets/buttons/button.dart'; import 'package:Okuna/widgets/buttons/floating_action_button.dart'; import 'package:Okuna/widgets/icon.dart'; +import 'package:Okuna/widgets/new_post_data_uploader.dart'; import 'package:flutter/material.dart'; import 'package:tinycolor/tinycolor.dart'; @@ -19,7 +20,7 @@ class OBCommunityNewPostButton extends StatelessWidget { final EdgeInsets padding; final OBButtonType type; final Community community; - final ValueChanged onPostCreated; + final ValueChanged onWantsToUploadNewPostData; const OBCommunityNewPostButton({ this.type = OBButtonType.primary, @@ -30,10 +31,12 @@ class OBCommunityNewPostButton extends StatelessWidget { this.padding, this.minWidth, this.community, - this.onPostCreated, + this.onWantsToUploadNewPostData, }); Widget build(BuildContext context) { + LocalizationService _localizationService = + OpenbookProvider.of(context).localizationService; return StreamBuilder( stream: community.updateSubject, initialData: community, @@ -68,18 +71,24 @@ class OBCommunityNewPostButton extends StatelessWidget { communityColor = TinyColor(communityColor).lighten(10).color; } - return OBFloatingActionButton( - color: communityColor, - textColor: textColor, - onPressed: () async { - OpenbookProviderState openbookProvider = - OpenbookProvider.of(context); - Post post = await openbookProvider.modalService - .openCreatePost(context: context, community: community); - if (post != null && onPostCreated != null) onPostCreated(post); - }, - child: OBIcon(OBIcons.createPost, - size: OBIconSize.large, color: textColor)); + return Semantics( + button: true, + label: _localizationService.post__create_new_community_post_label, + child: OBFloatingActionButton( + color: communityColor, + textColor: textColor, + onPressed: () async { + OpenbookProviderState openbookProvider = + OpenbookProvider.of(context); + OBNewPostData createPostData = await openbookProvider + .modalService + .openCreatePost(context: context, community: community); + if (createPostData != null && + onWantsToUploadNewPostData != null) + onWantsToUploadNewPostData(createPostData); + }, + child: OBIcon(OBIcons.createPost, + size: OBIconSize.large, color: textColor))); }, ); } diff --git a/lib/widgets/contextual_account_search_box.dart b/lib/widgets/contextual_account_search_box.dart index d4e049ccc..a0fe36741 100644 --- a/lib/widgets/contextual_account_search_box.dart +++ b/lib/widgets/contextual_account_search_box.dart @@ -67,6 +67,8 @@ class OBContextualAccountSearchBoxState @override void dispose() { + _searchParticipantsOperation?.cancel(); + _getAllOperation?.cancel(); super.dispose(); } diff --git a/lib/widgets/http_list.dart b/lib/widgets/http_list.dart index ada81b34d..4839c7985 100644 --- a/lib/widgets/http_list.dart +++ b/lib/widgets/http_list.dart @@ -475,7 +475,7 @@ class OBHttpListController { Future refresh( {bool shouldScrollToTop = false, bool shouldUseRefreshIndicator = false}) async { - if (!_state.mounted) return; + if (_state == null || !_state.mounted) return; _state.refreshList( shouldScrollToTop: shouldScrollToTop, shouldUseRefreshIndicator: shouldUseRefreshIndicator); diff --git a/lib/widgets/icon.dart b/lib/widgets/icon.dart index 087cea836..cbdc06587 100644 --- a/lib/widgets/icon.dart +++ b/lib/widgets/icon.dart @@ -10,6 +10,7 @@ class OBIcon extends StatelessWidget { final double customSize; final Color color; final OBIconThemeColor themeColor; + final String semanticLabel; static const double EXTRA_LARGE = 45.0; static const double LARGE_SIZE = 30.0; @@ -17,7 +18,11 @@ class OBIcon extends StatelessWidget { static const double SMALL_SIZE = 15.0; const OBIcon(this.iconData, - {this.size, this.customSize, this.color, this.themeColor}) + {this.size, + this.customSize, + this.color, + this.themeColor, + this.semanticLabel}) : assert(!(color != null && themeColor != null)); @override @@ -95,6 +100,7 @@ class OBIcon extends StatelessWidget { iconData.nativeIcon, size: iconSize, color: iconColor, + semanticLabel: semanticLabel, ); } else { icon = ShaderMask( @@ -138,6 +144,7 @@ class OBIcons { static const logout = OBIconData(nativeIcon: Icons.exit_to_app); static const help = OBIconData(nativeIcon: Icons.help); static const refresh = OBIconData(nativeIcon: Icons.refresh); + static const retry = OBIconData(nativeIcon: Icons.refresh); static const connections = OBIconData(nativeIcon: Icons.people); static const createPost = OBIconData(nativeIcon: Icons.add); static const add = OBIconData(nativeIcon: Icons.add); @@ -147,9 +154,11 @@ class OBIcons { static const comment = OBIconData(nativeIcon: Icons.chat_bubble_outline); static const chat = OBIconData(nativeIcon: Icons.chat); static const close = OBIconData(nativeIcon: Icons.close); + static const cancel = OBIconData(nativeIcon: Icons.close); static const sad = OBIconData(nativeIcon: Icons.sentiment_dissatisfied); static const location = OBIconData(nativeIcon: Icons.location_on); static const link = OBIconData(nativeIcon: Icons.link); + static const linkOff = OBIconData(nativeIcon: Icons.link_off); static const email = OBIconData(nativeIcon: Icons.email); static const lock = OBIconData(nativeIcon: Icons.lock); static const bio = OBIconData(nativeIcon: Icons.bookmark); @@ -197,12 +206,14 @@ class OBIcons { OBIconData(nativeIcon: Icons.remove_circle); static const expand = OBIconData(filename: 'expand-icon.png'); static const mutePost = OBIconData(nativeIcon: Icons.notifications_active); - static const mutePostComment = OBIconData(nativeIcon: Icons.notifications_active); + static const mutePostComment = + OBIconData(nativeIcon: Icons.notifications_active); static const editPost = OBIconData(nativeIcon: Icons.edit); static const edit = OBIconData(nativeIcon: Icons.edit); static const reviewModeratedObject = OBIconData(nativeIcon: Icons.gavel); static const unmutePost = OBIconData(nativeIcon: Icons.notifications_off); - static const unmutePostComment = OBIconData(nativeIcon: Icons.notifications_off); + static const unmutePostComment = + OBIconData(nativeIcon: Icons.notifications_off); static const deleteAccount = OBIconData(nativeIcon: Icons.delete_forever); static const account = OBIconData(nativeIcon: Icons.account_circle); static const application = OBIconData(nativeIcon: Icons.phone_iphone); @@ -232,6 +243,8 @@ class OBIcons { static const communityStaff = OBIconData(nativeIcon: Icons.tag_faces); static const reply = OBIconData(nativeIcon: Icons.reply); static const support = OBIconData(nativeIcon: Icons.favorite); + static const sound = OBIconData(nativeIcon: Icons.volume_up); + static const linkPreviews = OBIconData(nativeIcon: Icons.library_books); static const success = OBIconData(filename: 'success-icon.png'); static const error = OBIconData(filename: 'error-icon.png'); static const warning = OBIconData(filename: 'warning-icon.png'); diff --git a/lib/widgets/linear_progress_indicator.dart b/lib/widgets/linear_progress_indicator.dart new file mode 100644 index 000000000..0f1543b73 --- /dev/null +++ b/lib/widgets/linear_progress_indicator.dart @@ -0,0 +1,37 @@ +import 'package:Okuna/models/theme.dart'; +import 'package:Okuna/provider.dart'; +import 'package:flutter/material.dart'; + +class OBLinearProgressIndicator extends StatelessWidget { + @override + Widget build(BuildContext context) { + var openbookProvider = OpenbookProvider.of(context); + var themeService = openbookProvider.themeService; + var themeValueParserService = openbookProvider.themeValueParserService; + + return StreamBuilder( + stream: themeService.themeChange, + initialData: themeService.getActiveTheme(), + builder: (BuildContext context, AsyncSnapshot snapshot) { + var theme = snapshot.data; + + var primaryColor = + themeValueParserService.parseColor(theme.primaryColor); + final bool isDarkPrimaryColor = + primaryColor.computeLuminance() < 0.179; + + final Color backgroundColor = isDarkPrimaryColor + ? Color.fromARGB(30, 255, 255, 255) + : Color.fromARGB(20, 0, 0, 0); + + final Color valueColor = openbookProvider.themeValueParserService + .parseGradient(theme.primaryAccentColor) + .colors[1]; + + return LinearProgressIndicator( + backgroundColor: backgroundColor, + valueColor: AlwaysStoppedAnimation(valueColor), + ); + }); + } +} diff --git a/lib/widgets/link_preview.dart b/lib/widgets/link_preview.dart new file mode 100644 index 000000000..ef46623ac --- /dev/null +++ b/lib/widgets/link_preview.dart @@ -0,0 +1,467 @@ +import 'dart:async'; + +import 'package:Okuna/models/post_preview_link_data.dart'; +import 'package:Okuna/provider.dart'; +import 'package:Okuna/services/httpie.dart'; +import 'package:Okuna/services/link_preview.dart'; +import 'package:Okuna/services/localization.dart'; +import 'package:Okuna/services/url_launcher.dart'; +import 'package:Okuna/services/user.dart'; +import 'package:Okuna/services/user_preferences.dart'; +import 'package:Okuna/widgets/icon.dart'; +import 'package:Okuna/widgets/progress_indicator.dart'; +import 'package:Okuna/widgets/theming/highlighted_box.dart'; +import 'package:Okuna/widgets/theming/secondary_text.dart'; +import 'package:Okuna/widgets/theming/text.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_advanced_networkimage/provider.dart'; +import 'package:flutter_svg/svg.dart'; +import 'package:async/async.dart'; + +class OBLinkPreview extends StatefulWidget { + final LinkPreview linkPreview; + final String link; + final ValueChanged onLinkPreviewRetrieved; + + const OBLinkPreview( + {this.linkPreview, this.link, this.onLinkPreviewRetrieved}); + + @override + State createState() { + return OBLinkPreviewState(); + } +} + +class OBLinkPreviewState extends State { + static double faviconSize = 16; + static double linkPreviewHeight = 300; + + LinkPreview _linkPreview; + LinkPreviewService _linkPreviewService; + UrlLauncherService _urlLauncherService; + LocalizationService _localizationService; + UserPreferencesService _userPreferencesService; + + HttpieService _httpieService; + + bool _linkPreviewRequestInProgress; + CancelableOperation _fetchLinkPreviewOperation; + + bool _needsBootstrap; + String _errorMessage; + + StreamSubscription _linkPreviewsAreEnabledChangeSubscription; + + bool _linkPreviewsAreEnabled; + + @override + void initState() { + super.initState(); + _needsBootstrap = true; + _linkPreview = widget.linkPreview; + _linkPreviewRequestInProgress = true; + } + + void didUpdateWidget(oldWidget) { + super.didUpdateWidget(oldWidget); + + String previousLinkUrl; + if (oldWidget.link != null) { + previousLinkUrl = oldWidget.link; + } else { + previousLinkUrl = oldWidget.linkPreview.url; + } + + String newLinkUrl; + if (widget.link != null) { + newLinkUrl = widget.link; + } else { + newLinkUrl = widget.linkPreview.url; + } + + if (previousLinkUrl != newLinkUrl) { + _needsBootstrap = true; + _linkPreview = widget.linkPreview; + _linkPreviewRequestInProgress = true; + } + } + + @override + void dispose() { + super.dispose(); + _fetchLinkPreviewOperation?.cancel(); + _linkPreviewsAreEnabledChangeSubscription?.cancel(); + } + + void _bootstrap() async { + _linkPreviewsAreEnabled = + _userPreferencesService.getLinkPreviewsAreEnabled(); + + _onLinkPreviewsAreEnabledChange(_linkPreviewsAreEnabled, isBootstrap: true); + + _linkPreviewsAreEnabledChangeSubscription = _userPreferencesService + .linkPreviewsAreEnabledChange + .listen(_onLinkPreviewsAreEnabledChange); + } + + @override + Widget build(BuildContext context) { + if (_needsBootstrap) { + OpenbookProviderState openbookProvider = OpenbookProvider.of(context); + _linkPreviewService = openbookProvider.linkPreviewService; + _urlLauncherService = openbookProvider.urlLauncherService; + _localizationService = openbookProvider.localizationService; + _httpieService = openbookProvider.httpService; + _userPreferencesService = openbookProvider.userPreferencesService; + _bootstrap(); + _needsBootstrap = false; + } + + return _linkPreviewsAreEnabled + ? ClipRRect( + borderRadius: BorderRadius.circular(10.0), + child: OBHighlightedBox( + child: Row( + mainAxisSize: MainAxisSize.max, + children: [ + Expanded( + child: AnimatedSwitcher( + duration: Duration(milliseconds: 300), + child: _linkPreviewRequestInProgress || _linkPreview == null + ? _errorMessage != null + ? _buildErrorMessage() + : _buildRequestInProgress() + : _buildLinkPreview(), + ), + ) + ], + )), + ) + : const SizedBox(); + } + + Widget _buildErrorMessage() { + return SizedBox( + // Estimated size of the preview bottom bar + height: linkPreviewHeight, + child: Column( + children: [ + Expanded( + child: Center( + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + OBIcon( + OBIcons.linkOff, + size: OBIconSize.large, + ), + const SizedBox( + height: 10, + ), + ConstrainedBox( + constraints: BoxConstraints(maxWidth: 150), + child: OBText( + _errorMessage, + textAlign: TextAlign.center, + ), + ) + ], + ), + ), + ), + Row( + mainAxisSize: MainAxisSize.max, + children: [ + Expanded( + child: OBHighlightedBox( + child: Padding( + padding: const EdgeInsets.symmetric( + horizontal: 20, vertical: 5), + child: OBSecondaryText(_getLinkPreviewDomain(), + overflow: TextOverflow.ellipsis, + maxLines: 1, + style: TextStyle( + fontWeight: FontWeight.bold, fontSize: 12)), + ), + ), + ) + ], + ) + ], + )); + } + + Widget _buildLinkPreview() { + return GestureDetector( + child: SizedBox( + height: linkPreviewHeight, + child: Column( + children: [ + Expanded( + child: _buildPreviewImage(), + ), + _buildPreviewBar() + ], + )), + onTap: () { + _urlLauncherService.launchUrl(_linkPreview.url ?? widget.link); + }, + ); + } + + Widget _buildRequestInProgress() { + return SizedBox( + // Estimated size of the preview bottom bar + height: 300, + child: Center( + child: OBProgressIndicator(), + ), + ); + } + + Widget _buildPreviewImage() { + if (_linkPreview.imageUrl == null && _linkPreview.image == null) { + return Image.asset( + 'assets/images/fallbacks/post-fallback.png', + fit: BoxFit.cover, + alignment: Alignment.center, + ); + } + + return _linkPreview.image != null + ? _buildLinkPreviewImageFromBytes(_linkPreview.image) + : _buildLinkPreviewImageFromUrl(_linkPreview.imageUrl); + } + + Widget _buildLinkPreviewImageFromBytes(List image) { + return Semantics( + label: 'Link preview image', + child: Container( + decoration: BoxDecoration( + image: + DecorationImage(fit: BoxFit.cover, image: MemoryImage(image))), + ), + ); + } + + Widget _buildLinkPreviewImageFromUrl(String url) { + String proxiedImageUrl = + _linkPreviewService.getProxiedLink(_linkPreview.imageUrl); + String proxyAuthToken = _httpieService.getAuthorizationToken(); + + return _buildCrossCompatImageForSource(proxiedImageUrl, + semanticsLabel: 'Link preview image', + headers: {'Authorization': 'Token $proxyAuthToken'}); + } + + Widget _buildPreviewBar() { + return Padding( + padding: EdgeInsets.only(left: 20, right: 20, top: 10, bottom: 10), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Padding( + padding: EdgeInsets.symmetric(vertical: 5), + child: Row( + mainAxisAlignment: MainAxisAlignment.start, + children: [ + _linkPreview.faviconUrl != null + ? _buildLinkPreviewFavicon() + : const SizedBox(), + OBSecondaryText(_getLinkPreviewDomain(), + overflow: TextOverflow.ellipsis, + maxLines: 1, + style: TextStyle(fontWeight: FontWeight.bold, fontSize: 12)) + ], + ), + ), + _linkPreview.title != null + ? Padding( + padding: const EdgeInsets.only(top: 5), + child: OBText( + _linkPreview.title, + maxLines: 2, + overflow: TextOverflow.ellipsis, + style: TextStyle(fontWeight: FontWeight.bold), + ), + ) + : const SizedBox(), + _linkPreview.description != null + ? Padding( + padding: const EdgeInsets.symmetric(vertical: 5), + child: OBSecondaryText( + _linkPreview.description, + size: OBTextSize.mediumSecondary, + maxLines: 3, + overflow: TextOverflow.ellipsis, + ), + ) + : const SizedBox() + ], + ), + ); + } + + Widget _buildLinkPreviewFavicon() { + Widget faviconWidget; + + String proxiedFaviconImageUrl = + _linkPreviewService.getProxiedLink(_linkPreview.faviconUrl); + String proxyAuthToken = _httpieService.getAuthorizationToken(); + + faviconWidget = _buildCrossCompatImageForSource(proxiedFaviconImageUrl, + semanticsLabel: 'Favicon', + headers: {'Authorization': 'Token $proxyAuthToken'}); + + return Padding( + padding: EdgeInsets.only(right: 10), + child: ClipRRect( + borderRadius: BorderRadius.circular(3.0), + child: SizedBox( + height: faviconSize, + width: faviconSize, + child: faviconWidget, + ), + ), + ); + } + + Widget _buildCrossCompatImageForSource(String imageSource, + {String semanticsLabel, Map headers}) { + String faviconExtension = imageSource.split('.').last; + + Widget image; + + if (faviconExtension == 'svg') { + image = SvgPicture.network( + imageSource, + headers: headers, + semanticsLabel: semanticsLabel, + fit: BoxFit.cover, + placeholderBuilder: (BuildContext context) => + Image.asset('assets/images/fallbacks/post-fallback.png'), + ); + } else { + image = Semantics( + label: semanticsLabel, + child: Container( + decoration: BoxDecoration( + image: DecorationImage( + fit: BoxFit.cover, + image: AdvancedNetworkImage(imageSource, + header: headers, + useDiskCache: true, + fallbackAssetImage: + 'assets/images/fallbacks/post-fallback.png', + retryLimit: 3, + timeoutDuration: const Duration(minutes: 1)))), + ), + ); + } + + return image; + } + + void _onLinkPreviewsAreEnabledChange(bool newAreLinkPreviewsEnabled, + {bool isBootstrap = false}) { + if (isBootstrap) { + _linkPreviewsAreEnabled = newAreLinkPreviewsEnabled; + } else { + setState(() { + _linkPreviewsAreEnabled = newAreLinkPreviewsEnabled; + }); + } + + if (_linkPreview == null && newAreLinkPreviewsEnabled) { + _retrieveLinkPreview(); + } else { + // No link preview, requesting + _linkPreviewRequestInProgress = false; + } + } + + Future _retrieveLinkPreview() async { + _setErrorMessage(null); + if (_fetchLinkPreviewOperation != null) return; + _setLinkPreviewRequestInProgress(true); + + String link = widget.link; + + debugLog('Retrieving link preview for url: $link'); + + try { + _fetchLinkPreviewOperation = + CancelableOperation.fromFuture(_linkPreviewService.previewLink(link)); + + LinkPreview linkPreview = await _fetchLinkPreviewOperation.value; + + if (widget.onLinkPreviewRetrieved != null) + widget.onLinkPreviewRetrieved(linkPreview); + if (linkPreview != null) { + _setLinkPreview(linkPreview); + debugLog('Retrieved link preview for url: $link'); + } else { + debugLog('Retrieved empty link preview for url: $link'); + _setErrorMessage(_localizationService.post_body_link_preview__empty); + } + } catch (error) { + debugLog('Failed to retrieve link preview for url: $link'); + _onError(error); + throw error; + } finally { + _fetchLinkPreviewOperation = null; + _setLinkPreviewRequestInProgress(false); + } + } + + void _onError(error) async { + if (error is HttpieConnectionRefusedError) { + String localizedErrorMessage = + _localizationService.post_body_link_preview__error_with_description( + error.toHumanReadableMessage()); + _setErrorMessage(localizedErrorMessage); + } else if (error is HttpieRequestError) { + String errorMessage = await error.toHumanReadableMessage(); + String localizedErrorMessage = _localizationService + .post_body_link_preview__error_with_description(errorMessage); + _setErrorMessage(localizedErrorMessage); + } else if (error is EmptyLinkToPreview) { + _setErrorMessage(_localizationService.post_body_link_preview__empty); + } else if (error is InvalidLinkToPreview) { + _setErrorMessage( + _localizationService.post_body_link_preview__invalid(widget.link)); + } else { + _setErrorMessage(_localizationService.error__unknown_error); + throw error; + } + } + + String _getLinkPreviewDomain() { + return (_linkPreview != null && _linkPreview.domainUrl != null + ? _linkPreview.domainUrl + : Uri.parse(widget.link).host) + .toUpperCase(); + } + + void _setErrorMessage(String errorMessage) { + setState(() { + _errorMessage = errorMessage; + }); + } + + void _setLinkPreviewRequestInProgress(bool previewRequestInProgress) { + setState(() { + _linkPreviewRequestInProgress = previewRequestInProgress; + }); + } + + void _setLinkPreview(LinkPreview linkPreview) { + setState(() { + _linkPreview = linkPreview; + }); + } + + void debugLog(String log) { + //debugPrint('OBLinkPreview:$log'); + } +} diff --git a/lib/widgets/new_post_data_uploader.dart b/lib/widgets/new_post_data_uploader.dart new file mode 100644 index 000000000..0be534ea1 --- /dev/null +++ b/lib/widgets/new_post_data_uploader.dart @@ -0,0 +1,530 @@ +import 'dart:async'; +import 'dart:io'; + +import 'package:Okuna/models/circle.dart'; +import 'package:Okuna/models/community.dart'; +import 'package:Okuna/models/post.dart'; +import 'package:Okuna/provider.dart'; +import 'package:Okuna/services/localization.dart'; +import 'package:Okuna/services/media.dart'; +import 'package:Okuna/services/user.dart'; +import 'package:Okuna/widgets/theming/highlighted_box.dart'; +import 'package:Okuna/widgets/theming/text.dart'; +import 'package:flutter/material.dart'; +import 'package:mime/mime.dart'; +import 'package:async/async.dart'; +import 'package:crypto/crypto.dart'; +import 'dart:convert'; + +import 'icon.dart'; +import 'linear_progress_indicator.dart'; + +class OBNewPostDataUploader extends StatefulWidget { + final OBNewPostData data; + final Function(Post, OBNewPostData) onPostPublished; + final ValueChanged onCancelled; + + const OBNewPostDataUploader( + {Key key, + @required this.data, + @required this.onPostPublished, + @required this.onCancelled}) + : super(key: key); + + @override + OBNewPostDataUploaderState createState() { + return OBNewPostDataUploaderState(); + } +} + +class OBNewPostDataUploaderState extends State + with AutomaticKeepAliveClientMixin { + UserService _userService; + LocalizationService _localizationService; + MediaService _mediaPickerService; + + bool _needsBootstrap; + OBPostUploaderStatus _status; + + String _statusMessage = ''; + + static double mediaPreviewSize = 40; + + Timer _checkPostStatusTimer; + + CancelableOperation _getPostStatusOperation; + CancelableOperation _uploadPostOperation; + OBNewPostData _data; + + @override + void initState() { + super.initState(); + _needsBootstrap = true; + _data = widget.data; + _status = OBPostUploaderStatus.idle; + } + + @override + void dispose() { + super.dispose(); + _ensurePostStatusTimerIsCancelled(); + _getPostStatusOperation?.cancel(); + _uploadPostOperation?.cancel(); + } + + @override + Widget build(BuildContext context) { + if (_needsBootstrap) { + OpenbookProviderState openbookProvider = OpenbookProvider.of(context); + _userService = openbookProvider.userService; + _localizationService = openbookProvider.localizationService; + _mediaPickerService = openbookProvider.mediaPickerService; + _bootstrap(); + _needsBootstrap = false; + } + + List rowItems = []; + + if (_data.hasMedia()) { + rowItems.addAll([ + _buildMediaPreview(), + const SizedBox( + width: 15, + ), + ]); + } + + rowItems.addAll([_buildStatusText(), _buildActionButtons()]); + + return OBHighlightedBox( + child: Stack( + children: [ + Padding( + padding: const EdgeInsets.symmetric(horizontal: 15, vertical: 10), + child: Row( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Expanded( + child: Column( + children: [ + Row(children: rowItems), + ], + ), + ) + ], + ), + ), + Positioned( + bottom: -3, + left: 0, + right: 0, + child: _status == OBPostUploaderStatus.creatingPost || + _status == OBPostUploaderStatus.compressingPostMedia || + _status == OBPostUploaderStatus.addingPostMedia || + _status == OBPostUploaderStatus.processing + ? _buildProgressBar() + : const SizedBox(), + ) + ], + ), + ); + } + + void _bootstrap() { + _startUpload(); + } + + void _startUpload() { + _uploadPostOperation = CancelableOperation.fromFuture(_uploadPost()); + } + + Future _uploadPost() async { + try { + if (_data.createdDraftPost == null) { + _setStatus(OBPostUploaderStatus.creatingPost); + _setStatusMessage(_localizationService.post_uploader__creating_post); + _data.createdDraftPost = await _createPost(); + } + + if (_data.remainingMediaToCompress.isNotEmpty) { + _setStatusMessage( + _localizationService.post_uploader__compressing_media); + _setStatus(OBPostUploaderStatus.compressingPostMedia); + await _compressPostMedia(); + } + + if (_data.remainingCompressedMediaToUpload.isNotEmpty) { + _setStatusMessage(_localizationService.post_uploader__uploading_media); + _setStatus(OBPostUploaderStatus.addingPostMedia); + await _addPostMedia(); + } + + if (!_data.postPublishRequested) { + _setStatusMessage(_localizationService.post_uploader__publishing); + _setStatus(OBPostUploaderStatus.publishing); + await _publishPost(); + _data.postPublishRequested = true; + } + + _setStatusMessage(_localizationService.post_uploader__processing); + _setStatus(OBPostUploaderStatus.processing); + _ensurePostStatusTimerIsCancelled(); + + if (_data.createdDraftPostStatus == null || + _data.createdDraftPostStatus != OBPostStatus.published) { + _checkPostStatusTimer = + Timer.periodic(new Duration(seconds: 1), (timer) async { + if (_getPostStatusOperation != null) return; + _getPostStatusOperation = CancelableOperation.fromFuture( + _userService.getPostStatus(post: _data.createdDraftPost)); + OBPostStatus status = await _getPostStatusOperation.value; + debugLog( + 'Polling for post published status, got status: ${status.toString()}'); + _data.createdDraftPostStatus = status; + if (_data.createdDraftPostStatus == OBPostStatus.published) { + debugLog('Received post status is published'); + _checkPostStatusTimer.cancel(); + _getPublishedPost(); + } + _getPostStatusOperation = null; + }); + } else { + _getPublishedPost(); + } + } catch (error) { + if (error is HttpieConnectionRefusedError) { + _setStatusMessage(error.toHumanReadableMessage()); + } else if (error is HttpieRequestError) { + String errorMessage = await error.toHumanReadableMessage(); + _setStatusMessage(errorMessage); + } else { + _setStatusMessage( + _localizationService.post_uploader__generic_upload_failed); + } + _setStatus(OBPostUploaderStatus.failed); + throw error; + } + } + + Future _createPost() async { + Post draftPost; + + if (_data.community != null) { + debugLog('Creating community post'); + + draftPost = await _userService.createPostForCommunity(_data.community, + text: _data.text, isDraft: true); + } else { + debugLog('Creating circles post'); + + draftPost = await _userService.createPost( + text: _data.text, circles: _data.getCircles(), isDraft: true); + } + + debugLog('Post created successfully'); + + return draftPost; + } + + Future _getPublishedPost() async { + debugLog('Retrieving the published post'); + + Post publishedPost = + await _userService.getPostWithUuid(_data.createdDraftPost.uuid); + widget.onPostPublished(publishedPost, widget.data); + } + + Future _compressPostMedia() { + debugLog('Compressing post media'); + + return Future.wait( + _data.remainingMediaToCompress.map(_compressPostMediaItem).toList()); + } + + Future _compressPostMediaItem(File postMediaItem) async { + String mediaMime = lookupMimeType(postMediaItem.path); + String mediaMimeType = mediaMime.split('/')[0]; + + if (mediaMimeType == 'image') { + File compressedImage = + await _mediaPickerService.compressImage(postMediaItem); + _data.remainingCompressedMediaToUpload.add(compressedImage); + debugLog( + 'Compressed image from ${postMediaItem.lengthSync()} to ${compressedImage.lengthSync()}'); + } else if (mediaMimeType == 'video') { + File compressedVideo = + await _mediaPickerService.compressVideo(postMediaItem); + _data.remainingCompressedMediaToUpload.add(compressedVideo); + debugLog( + 'Compressed video from ${postMediaItem.lengthSync()} to ${compressedVideo.lengthSync()}'); + } else { + debugLog('Unsupported media type for compression'); + } + + _data.remainingMediaToCompress.remove(postMediaItem); + } + + Future _addPostMedia() { + debugLog('Adding post media'); + + return Future.wait(_data.remainingCompressedMediaToUpload + .map(_uploadPostMediaItem) + .toList()); + } + + Future _uploadPostMediaItem(File file) async { + await _userService.addMediaToPost(file: file, post: _data.createdDraftPost); + _data.remainingCompressedMediaToUpload.remove(file); + } + + Widget _buildProgressBar() { + return OBLinearProgressIndicator(); + } + + Widget _buildMediaPreview() { + return FutureBuilder( + future: _getMediaThumbnail(), + builder: (BuildContext context, AsyncSnapshot snapshot) { + if (snapshot.data == null) return const SizedBox(); + + File mediaThumbnail = snapshot.data; + return ClipRRect( + borderRadius: BorderRadius.circular(8.0), + child: Image( + image: FileImage(mediaThumbnail), + height: mediaPreviewSize, + width: mediaPreviewSize, + fit: BoxFit.cover, + ), + ); + }, + ); + } + + Future _getMediaThumbnail() async { + if (_data.mediaThumbnail != null) return _data.mediaThumbnail; + + File mediaToPreview = _data.media.first; + File mediaThumbnail; + + String mediaMime = lookupMimeType(mediaToPreview.path); + String mediaMimeType = mediaMime.split('/')[0]; + + if (mediaMimeType == 'image') { + mediaThumbnail = mediaToPreview; + } else if (mediaMimeType == 'video') { + mediaThumbnail = + await _mediaPickerService.getVideoThumbnail(mediaToPreview); + } else { + debugLog('Unsupported media type for preview thumbnail'); + } + + _data.mediaThumbnail = mediaThumbnail; + + return mediaThumbnail; + } + + Widget _buildStatusText() { + return Expanded( + child: Padding( + padding: const EdgeInsets.symmetric(vertical: 5), + child: Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + OBText( + _statusMessage, + textAlign: TextAlign.left, + ) + ], + ), + ), + ); + } + + Widget _buildActionButtons() { + List activeActions = []; + + switch (_status) { + case OBPostUploaderStatus.creatingPost: + case OBPostUploaderStatus.addingPostMedia: + activeActions.add(_buildCancelButton()); + break; + case OBPostUploaderStatus.failed: + activeActions.add(_buildCancelButton()); + activeActions.add(_buildRetryButton()); + break; + default: + } + + return Row( + children: activeActions, + ); + } + + Widget _buildCancelButton() { + return GestureDetector( + onTap: _onWantsToCancel, + child: Padding( + padding: EdgeInsets.all(10), + child: OBIcon(OBIcons.cancel), + ), + ); + } + + Widget _buildRetryButton() { + return GestureDetector( + onTap: _onWantsToRetry, + child: Padding( + padding: EdgeInsets.all(10), + child: OBIcon(OBIcons.retry), + ), + ); + } + + void _onWantsToRetry() async { + if (_status == OBPostUploaderStatus.creatingPost || + _status == OBPostUploaderStatus.addingPostMedia) return; + + debugLog('Retrying'); + _startUpload(); + } + + void _onWantsToCancel() async { + if (_status == OBPostUploaderStatus.cancelling) return; + _setStatus(OBPostUploaderStatus.cancelling); + + debugLog('Cancelling'); + + // Delete post + if (_data.createdDraftPost != null) { + debugLog('Deleting post'); + try { + await _userService.deletePost(_data.createdDraftPost); + debugLog('Successfully deleted post'); + } catch (error) { + // If it doesnt work, will get cleaned up by a scheduled job + debugLog('Failed to delete post wit error: ${error.toString()}'); + } + } + + if (_data.media.isNotEmpty) { + debugLog('Deleting local post media files'); + _deleteMediaFiles(); + } + + _setStatus(OBPostUploaderStatus.cancelled); + widget.onCancelled(widget.data); + } + + Future _publishPost() async { + debugLog('Publishing post'); + return _userService.publishPost(post: _data.createdDraftPost); + } + + void _deleteMediaFiles() async { + _data.media.forEach((File mediaFile) { + mediaFile.delete(); + }); + } + + void _setStatus(OBPostUploaderStatus status) { + if (mounted) { + setState(() { + _status = status; + }); + } + } + + void _setStatusMessage(String statusMessage) { + if (mounted) { + setState(() { + _statusMessage = statusMessage; + }); + } + } + + void _ensurePostStatusTimerIsCancelled() { + if (_checkPostStatusTimer != null && _checkPostStatusTimer.isActive) + _checkPostStatusTimer.cancel(); + } + + void debugLog(String log) { + debugPrint('OBNewPostDataUploader:$log'); + } + + @override + bool get wantKeepAlive => true; +} + +class OBNewPostData { + String text; + List media; + Community community; + List circles; + + // State persistence variables + Post createdDraftPost; + OBPostStatus createdDraftPostStatus; + List remainingMediaToCompress; + List remainingCompressedMediaToUpload = []; + bool postPublishRequested = false; + File mediaThumbnail; + + String _cachedKey; + + OBNewPostData({this.text, this.media, this.community, this.circles}) { + remainingMediaToCompress = media.toList(); + } + + bool hasMedia() { + return media != null && media.isNotEmpty; + } + + List getMedia() { + return hasMedia() ? media.toList() : []; + } + + void setCircles(List circles) { + this.circles = circles; + } + + void setCommunity(Community community) { + this.community = community; + } + + List getCircles() { + return circles.toList(); + } + + String getUniqueKey() { + if (_cachedKey != null) return _cachedKey; + + String key = ''; + if (text != null) key += text; + if (hasMedia()) { + media.forEach((File mediaItem) { + key += mediaItem.path; + }); + } + + var bytes = utf8.encode(key); + var digest = sha256.convert(bytes); + + _cachedKey = digest.toString(); + + return _cachedKey; + } +} + +enum OBPostUploaderStatus { + idle, + creatingPost, + compressingPostMedia, + addingPostMedia, + publishing, + processing, + success, + failed, + cancelling, + cancelled, +} diff --git a/lib/widgets/post/post.dart b/lib/widgets/post/post.dart index 84c347d0b..88c239785 100644 --- a/lib/widgets/post/post.dart +++ b/lib/widgets/post/post.dart @@ -7,20 +7,30 @@ import 'package:Okuna/widgets/post/widgets/post_comments/post_comments.dart'; import 'package:Okuna/widgets/post/widgets/post_header/post_header.dart'; import 'package:Okuna/widgets/post/widgets/post_reactions.dart'; import 'package:Okuna/widgets/theming/post_divider.dart'; -import 'package:Okuna/widgets/theming/secondary_text.dart'; import 'package:flutter/material.dart'; +import 'package:inview_notifier_list/inview_notifier_list.dart'; class OBPost extends StatelessWidget { final Post post; final ValueChanged onPostDeleted; final OnTextExpandedChange onTextExpandedChange; + final String inViewId; const OBPost(this.post, - {Key key, @required this.onPostDeleted, this.onTextExpandedChange}) + {Key key, + @required this.onPostDeleted, + this.onTextExpandedChange, + this.inViewId}) : super(key: key); @override Widget build(BuildContext context) { + if (inViewId != null) { + InViewState state = InViewNotifierList.of(context); + String postId = post.id.toString(); + state.addContext(context: context, id: postId); + } + return Column( mainAxisAlignment: MainAxisAlignment.start, crossAxisAlignment: CrossAxisAlignment.start, @@ -31,13 +41,9 @@ class OBPost extends StatelessWidget { onPostDeleted: onPostDeleted, onPostReported: onPostDeleted, ), - OBPostBody( - post, - onTextExpandedChange: onTextExpandedChange, - ), - const SizedBox(height: 20,), + OBPostBody(post, + onTextExpandedChange: onTextExpandedChange, inViewId: inViewId), OBPostReactions(post), - const SizedBox(height: 10,), OBPostCircles(post), OBPostComments( post, diff --git a/lib/widgets/post/widgets/post-body/post_body.dart b/lib/widgets/post/widgets/post-body/post_body.dart index 5345c654b..22cadd077 100644 --- a/lib/widgets/post/widgets/post-body/post_body.dart +++ b/lib/widgets/post/widgets/post-body/post_body.dart @@ -1,29 +1,43 @@ import 'package:Okuna/models/post.dart'; -import 'package:Okuna/widgets/post/widgets/post-body/widgets/post_body_image.dart'; +import 'package:Okuna/models/post_image.dart'; +import 'package:Okuna/models/post_media.dart'; +import 'package:Okuna/models/post_video.dart'; +import 'package:Okuna/provider.dart'; +import 'package:Okuna/widgets/post/widgets/post-body/widgets/post_body_link_preview.dart'; +import 'package:Okuna/widgets/post/widgets/post-body/widgets/post_body_media/widgets/post_body_image.dart'; +import 'package:Okuna/widgets/post/widgets/post-body/widgets/post_body_media/post_body_media.dart'; import 'package:Okuna/widgets/post/widgets/post-body/widgets/post_body_text.dart'; -import 'package:Okuna/widgets/post/widgets/post-body/widgets/post_body_video.dart'; +import 'package:Okuna/widgets/post/widgets/post-body/widgets/post_body_media/widgets/post_body_video.dart'; import 'package:flutter/material.dart'; class OBPostBody extends StatelessWidget { final Post post; final OnTextExpandedChange onTextExpandedChange; + final String inViewId; - const OBPostBody(this.post, {Key key, this.onTextExpandedChange}) + const OBPostBody(this.post, + {Key key, this.onTextExpandedChange, this.inViewId}) : super(key: key); @override Widget build(BuildContext context) { List bodyItems = []; - - if (post.hasImage()) { - bodyItems.add(OBPostBodyImage( - post: post, - )); - } else if (post.hasVideo()) { - bodyItems.add(OBPostBodyVideo(post: post)); + OpenbookProviderState openbookProvider = OpenbookProvider.of(context); + if (post.hasMediaThumbnail()) { + bodyItems.add(OBPostBodyMedia(post: post, inViewId: inViewId)); } if (post.hasText()) { + if (!post.hasMediaThumbnail() && + openbookProvider.linkPreviewService.hasLinkPreviewUrl(post.text)) { + bodyItems.add( + Padding( + padding: EdgeInsets.symmetric(horizontal: 20), + child: OBPostBodyLinkPreview(post: post), + ), + ); + } + bodyItems.add(OBPostBodyText( post, onTextExpandedChange: onTextExpandedChange, diff --git a/lib/widgets/post/widgets/post-body/widgets/post_body_link_preview.dart b/lib/widgets/post/widgets/post-body/widgets/post_body_link_preview.dart new file mode 100644 index 000000000..1d6fe7343 --- /dev/null +++ b/lib/widgets/post/widgets/post-body/widgets/post_body_link_preview.dart @@ -0,0 +1,41 @@ +import 'package:Okuna/models/post.dart'; +import 'package:Okuna/models/post_preview_link_data.dart'; +import 'package:Okuna/provider.dart'; +import 'package:Okuna/widgets/link_preview.dart'; +import 'package:flutter/material.dart'; + +class OBPostBodyLinkPreview extends StatelessWidget { + final Post post; + + const OBPostBodyLinkPreview({Key key, this.post}) : super(key: key); + + @override + Widget build(BuildContext context) { + return Padding( + padding: EdgeInsets.only(bottom: 10), + child: StreamBuilder( + stream: post.updateSubject, + initialData: post, + builder: _buildLinkPreview), + ); + } + + Widget _buildLinkPreview(BuildContext context, AsyncSnapshot snapshot) { + OpenbookProviderState openbookProvider = OpenbookProvider.of(context); + String newLink = + openbookProvider.linkPreviewService.checkForLinkPreviewUrl(post.text); + + if (post.linkPreview != null && newLink == post.linkPreview.url) { + return OBLinkPreview( + linkPreview: post.linkPreview, + ); + } + + return OBLinkPreview( + link: newLink, onLinkPreviewRetrieved: _onLinkPreviewRetrieved); + } + + void _onLinkPreviewRetrieved(LinkPreview linkPreview) { + post.setLinkPreview(linkPreview); + } +} diff --git a/lib/widgets/post/widgets/post-body/widgets/post_body_media/post_body_media.dart b/lib/widgets/post/widgets/post-body/widgets/post_body_media/post_body_media.dart new file mode 100644 index 000000000..500180e14 --- /dev/null +++ b/lib/widgets/post/widgets/post-body/widgets/post_body_media/post_body_media.dart @@ -0,0 +1,242 @@ +import 'dart:math'; + +import 'package:Okuna/models/post.dart'; +import 'package:Okuna/models/post_image.dart'; +import 'package:Okuna/models/post_media.dart'; +import 'package:Okuna/models/post_media_list.dart'; +import 'package:Okuna/models/post_video.dart'; +import 'package:Okuna/provider.dart'; +import 'package:Okuna/services/localization.dart'; +import 'package:Okuna/services/user.dart'; +import 'package:Okuna/widgets/post/widgets/post-body/widgets/post_body_media/widgets/post_body_image.dart'; +import 'package:Okuna/widgets/post/widgets/post-body/widgets/post_body_media/widgets/post_body_video.dart'; +import 'package:Okuna/widgets/progress_indicator.dart'; +import 'package:Okuna/widgets/theming/text.dart'; +import 'package:flutter/material.dart'; +import 'package:async/async.dart'; +import 'package:flutter_advanced_networkimage/provider.dart'; +import 'package:flutter_advanced_networkimage/transition.dart'; + +class OBPostBodyMedia extends StatefulWidget { + final Post post; + final String inViewId; + + const OBPostBodyMedia({Key key, this.post, this.inViewId}) : super(key: key); + + @override + OBPostBodyMediaState createState() { + return OBPostBodyMediaState(); + } +} + +class OBPostBodyMediaState extends State { + UserService _userService; + LocalizationService _localizationService; + bool _needsBootstrap; + String _errorMessage; + + CancelableOperation _retrievePostMediaOperation; + bool _retrievePostMediaInProgress; + + double _mediaHeight; + double _mediaWidth; + bool _mediaIsConstrained; + + @override + void initState() { + super.initState(); + _needsBootstrap = true; + _retrievePostMediaInProgress = true; + _errorMessage = ''; + _mediaIsConstrained = false; + } + + void didUpdateWidget(oldWidget) { + super.didUpdateWidget(oldWidget); + _retrievePostMediaInProgress = true; + _needsBootstrap = true; + _errorMessage = ''; + } + + @override + void dispose() { + super.dispose(); + _retrievePostMediaOperation?.cancel(); + } + + @override + Widget build(BuildContext context) { + if (_needsBootstrap) { + OpenbookProviderState openbookProvider = OpenbookProvider.of(context); + _userService = openbookProvider.userService; + _localizationService = openbookProvider.localizationService; + _bootstrap(); + _needsBootstrap = false; + } + + return Padding( + padding: const EdgeInsets.only(bottom: 10), + child: SizedBox( + width: _mediaWidth, + height: _mediaHeight, + child: Stack( + children: [ + Positioned( + child: _buildPostMediaItemsThumbnail(), + ), + _errorMessage.isEmpty + ? _retrievePostMediaInProgress + ? const SizedBox() + : _buildMediaItems() + : Positioned( + top: 0, + left: 0, + right: 0, + bottom: 0, + child: _buildErrorMessage(), + ) + ], + )), + ); + } + + Widget _buildErrorMessage() { + return Center( + child: Container( + padding: EdgeInsets.symmetric(horizontal: 10, vertical: 5), + decoration: BoxDecoration( + color: Colors.black87, borderRadius: BorderRadius.circular(3)), + child: Text( + _errorMessage, + style: TextStyle(color: Colors.white), + ), + ), + ); + } + + Widget _buildMediaItems() { + return StreamBuilder( + stream: widget.post.updateSubject, + initialData: widget.post, + builder: (BuildContext context, AsyncSnapshot snapshot) { + List postMediaItems = widget.post.getMedia(); + return _buildPostMediaItems(postMediaItems); + }, + ); + } + + Widget _buildPostMediaItemsThumbnail() { + String thumbnailUrl = widget.post.mediaThumbnail; + + return TransitionToImage( + height: _mediaHeight, + width: _mediaWidth, + loadingWidget: const Center( + child: const OBProgressIndicator(), + ), + fit: BoxFit.cover, + alignment: Alignment.center, + image: AdvancedNetworkImage(thumbnailUrl, + useDiskCache: true, + fallbackAssetImage: 'assets/images/fallbacks/post-fallback.png', + retryLimit: 3, + timeoutDuration: const Duration(seconds: 5)), + duration: Duration(milliseconds: 100), + ); + } + + Widget _buildPostMediaItems(List postMediaItems) { + // We support only one atm + PostMedia postMediaItem = postMediaItems.first; + return _buildPostMediaItem(postMediaItem); + } + + Widget _buildPostMediaItem(PostMedia postMediaItem) { + Widget postMediaItemWidget; + + dynamic postMediaItemContentObject = postMediaItem.contentObject; + + switch (postMediaItemContentObject.runtimeType) { + case PostImage: + postMediaItemWidget = OBPostBodyImage( + postImage: postMediaItemContentObject, + hasExpandButton: _mediaIsConstrained, + height: _mediaHeight, + width: _mediaWidth); + break; + case PostVideo: + postMediaItemWidget = OBPostBodyVideo( + postVideo: postMediaItemContentObject, + post: widget.post, + inViewId: widget.inViewId, + height: _mediaHeight, + width: _mediaWidth, + isConstrained: _mediaIsConstrained, + ); + break; + default: + postMediaItemWidget = Center( + child: OBText(_localizationService.post_body_media__unsupported), + ); + } + + return postMediaItemWidget; + } + + void _bootstrap() { + double screenWidth = MediaQuery.of(context).size.width; + double screenHeight = MediaQuery.of(context).size.height; + double maxBoxHeight = screenHeight * .70; + + double imageAspectRatio = widget.post.mediaWidth / widget.post.mediaHeight; + double imageHeight = (screenWidth / imageAspectRatio); + _mediaHeight = min(imageHeight, maxBoxHeight); + if (_mediaHeight == maxBoxHeight) _mediaIsConstrained = true; + _mediaWidth = screenWidth; + + if (widget.post.media != null) { + _retrievePostMediaInProgress = false; + return; + } + + _retrievePostMedia(); + } + + void _retrievePostMedia() async { + _setRetrievePostMediaInProgress(true); + try { + _retrievePostMediaOperation = CancelableOperation.fromFuture( + _userService.getMediaForPost(post: widget.post)); + PostMediaList mediaList = await _retrievePostMediaOperation.value; + widget.post.setMedia(mediaList); + } catch (error) { + _onError(error); + } finally { + _setRetrievePostMediaInProgress(false); + } + } + + void _onError(error) async { + if (error is HttpieConnectionRefusedError) { + _setErrorMessage(error.toHumanReadableMessage()); + } else if (error is HttpieRequestError) { + String errorMessage = await error.toHumanReadableMessage(); + _setErrorMessage(errorMessage); + } else { + _setErrorMessage(_localizationService.error__unknown_error); + throw error; + } + } + + void _setErrorMessage(String errorMessage) { + setState(() { + _errorMessage = errorMessage; + }); + } + + void _setRetrievePostMediaInProgress(bool retrievePostMediaInProgress) { + setState(() { + _retrievePostMediaInProgress = retrievePostMediaInProgress; + }); + } +} diff --git a/lib/widgets/post/widgets/post-body/widgets/post_body_image.dart b/lib/widgets/post/widgets/post-body/widgets/post_body_media/widgets/post_body_image.dart similarity index 50% rename from lib/widgets/post/widgets/post-body/widgets/post_body_image.dart rename to lib/widgets/post/widgets/post-body/widgets/post_body_media/widgets/post_body_image.dart index 7b79170f7..02ee4807b 100644 --- a/lib/widgets/post/widgets/post-body/widgets/post_body_image.dart +++ b/lib/widgets/post/widgets/post-body/widgets/post_body_media/widgets/post_body_image.dart @@ -1,66 +1,60 @@ -import 'package:Okuna/models/post.dart'; +import 'package:Okuna/models/post_image.dart'; import 'package:Okuna/provider.dart'; -import 'package:Okuna/widgets/progress_indicator.dart'; import 'package:Okuna/widgets/icon.dart'; +import 'package:Okuna/widgets/progress_indicator.dart'; import 'package:flutter_advanced_networkimage/provider.dart'; import 'package:flutter_advanced_networkimage/transition.dart'; import 'package:flutter/material.dart'; import 'dart:math'; class OBPostBodyImage extends StatelessWidget { - final Post post; + final PostImage postImage; + final bool hasExpandButton; + final double height; + final double width; - const OBPostBodyImage({Key key, this.post}) : super(key: key); + const OBPostBodyImage( + {Key key, + this.postImage, + this.hasExpandButton = false, + this.height, + this.width}) + : super(key: key); @override Widget build(BuildContext context) { - String imageUrl = post.getImage(); - double screenWidth = MediaQuery.of(context).size.width; - double screenHeight = MediaQuery.of(context).size.height; - double maxBoxHeight = screenHeight * .75; - - double imageAspectRatio = post.getImageWidth() / post.getImageHeight(); - double imageHeight = (screenWidth / imageAspectRatio); - double boxHeight = min(imageHeight, maxBoxHeight); + String imageUrl = postImage.image; List stackItems = [ - _buildImageWidget(screenWidth, imageHeight, imageUrl) + _buildImageWidget(imageUrl: imageUrl, width: width, height: height) ]; - if (imageHeight > maxBoxHeight) { + if (hasExpandButton) { stackItems.add(_buildExpandIcon()); } return GestureDetector( - onTap: () { - var dialogService = OpenbookProvider.of(context).dialogService; - dialogService.showZoomablePhotoBoxView( - imageUrl: imageUrl, context: context); - }, - child: SizedBox( - width: screenWidth, - height: boxHeight, - child: Stack( - children: stackItems, - ), - )); + child: Stack( + children: stackItems, + ), + onTap: () { + var dialogService = OpenbookProvider.of(context).dialogService; + dialogService.showZoomablePhotoBoxView( + imageUrl: imageUrl, context: context); + }, + ); } - Widget _buildImageWidget(double width, double height, String imageUrl) { - return TransitionToImage( - width: width, + Widget _buildImageWidget({String imageUrl, double height, double width}) { + return Image( height: height, - fit: BoxFit.fitWidth, - alignment: Alignment.center, + width: width, + fit: BoxFit.cover, image: AdvancedNetworkImage(imageUrl, useDiskCache: true, fallbackAssetImage: 'assets/images/fallbacks/post-fallback.png', retryLimit: 3, timeoutDuration: const Duration(minutes: 1)), - placeholder: Center( - child: const OBProgressIndicator(), - ), - duration: const Duration(milliseconds: 300), ); } diff --git a/lib/widgets/post/widgets/post-body/widgets/post_body_media/widgets/post_body_video.dart b/lib/widgets/post/widgets/post-body/widgets/post_body_media/widgets/post_body_video.dart new file mode 100644 index 000000000..92eb0a23e --- /dev/null +++ b/lib/widgets/post/widgets/post-body/widgets/post_body_media/widgets/post_body_video.dart @@ -0,0 +1,196 @@ +import 'dart:async'; +import 'package:Okuna/models/post.dart'; +import 'package:Okuna/models/post_video.dart'; +import 'package:Okuna/models/video_format.dart'; +import 'package:Okuna/provider.dart'; +import 'package:Okuna/services/connectivity.dart'; +import 'package:Okuna/services/user_preferences.dart'; +import 'package:Okuna/widgets/video_player/video_player.dart'; +import 'package:connectivity/connectivity.dart'; +import 'package:flutter/material.dart'; +import 'package:inview_notifier_list/inview_notifier_list.dart'; +import 'package:async/async.dart'; + +class OBPostBodyVideo extends StatefulWidget { + final double height; + final double width; + final Post post; + final PostVideo postVideo; + final String inViewId; + final bool hasExpandButton; + final bool isConstrained; + + const OBPostBodyVideo( + {Key key, + this.post, + this.postVideo, + this.inViewId, + this.height, + this.width, + this.hasExpandButton, + this.isConstrained = false}) + : super(key: key); + + @override + OBPostVideoState createState() { + return OBPostVideoState(); + } +} + +class OBPostVideoState extends State { + OBVideoPlayerController _obVideoPlayerController; + bool _needsBootstrap; + StreamSubscription _videosSoundSettingsChangeSubscription; + Navigator _navigator; + NavigatorObserver _navigatorObserver; + ModalRoute _route; + bool _wasPlaying; + + bool _videosAutoPlayAreEnabled; + StreamSubscription _videosAutoPlayAreEnabledChangeSubscription; + + CancelableOperation _digestInViewStateChangeOperation; + + InViewState _inViewState; + + @override + void initState() { + super.initState(); + _needsBootstrap = true; + _obVideoPlayerController = OBVideoPlayerController(); + _videosAutoPlayAreEnabled = false; + } + + @override + void dispose() { + super.dispose(); + _videosAutoPlayAreEnabledChangeSubscription?.cancel(); + _videosSoundSettingsChangeSubscription?.cancel(); + _digestInViewStateChangeOperation?.cancel(); + _inViewState?.removeListener(_onInViewStateChanged); + _navigator.observers.remove(_navigatorObserver); + } + + void _bootstrap(BuildContext context) async { + if (widget.inViewId != null) { + // Subscribe for visibility changes + _inViewState = InViewNotifierList.of(context); + _inViewState.addContext(context: context, id: widget.inViewId); + _inViewState.addListener(_onInViewStateChanged); + } + + _route = ModalRoute.of(context); + _navigatorObserver = PostVideoNavigatorObserver(this); + _navigator = Navigator.of(context).widget; + _navigator.observers.add(_navigatorObserver); + + // Subscribe for autoplay changes + OpenbookProviderState openbookProvider = OpenbookProvider.of(context); + UserPreferencesService userPreferencesService = + openbookProvider.userPreferencesService; + _videosAutoPlayAreEnabled = + userPreferencesService.getVideosAutoPlayAreEnabled(); + + _videosSoundSettingsChangeSubscription = userPreferencesService + .videosAutoPlayAreEnabledChange + .listen(_onVideosAutoPlayAreEnabledChange); + } + + @override + Widget build(BuildContext context) { + if (_needsBootstrap) { + _bootstrap(context); + _needsBootstrap = false; + } + + return Row( + children: [ + Expanded( + child: _buildVideoPlayer(), + ) + ], + ); + } + + Widget _buildVideoPlayer() { + OBVideoFormat videoFormat = + widget.postVideo.getVideoFormatOfType(OBVideoFormatType.mp4SD); + + String videoUrl = videoFormat.file; + + return OBVideoPlayer( + videoUrl: videoUrl, + thumbnailUrl: widget.postVideo.thumbnail, + height: widget.height, + width: widget.width, + isConstrained: widget.isConstrained, + controller: _obVideoPlayerController, + ); + } + + void _onInViewStateChanged() { + final bool isVideoInView = _inViewState.inView(widget.inViewId); + + _digestInViewStateChangeOperation?.cancel(); + _digestInViewStateChangeOperation = CancelableOperation.fromFuture( + _digestInViewStateChanged(isVideoInView)); + } + + Future _digestInViewStateChanged(bool isVideoInView) async { + if (_obVideoPlayerController.hasVideoOpenedInDialog()) return; + debugLog('Is in View: ${isVideoInView.toString()}'); + if (isVideoInView) { + if (!_obVideoPlayerController.isPausedDueToInvisibility() && + !_obVideoPlayerController.isPausedByUser()) { + if (_videosAutoPlayAreEnabled) { + debugLog('Playing as item is in view and allowed by user.'); + _obVideoPlayerController.play(); + } + } + } else if (_obVideoPlayerController.isPlaying()) { + _obVideoPlayerController.pause(); + } + } + + void _onVideosAutoPlayAreEnabledChange(bool videosAutoPlayAreEnabled) { + _videosAutoPlayAreEnabled = videosAutoPlayAreEnabled; + } + + void debugLog(String log) { + //debugPrint('OBPostBodyVideo: $log'); + } +} + +class PostVideoNavigatorObserver extends NavigatorObserver { + OBPostVideoState _state; + + PostVideoNavigatorObserver(OBPostVideoState state) { + _state = state; + } + + @override + void didPush(Route route, Route previousRoute) { + if (identical(previousRoute, _state._route)) { + _state._wasPlaying = _state._obVideoPlayerController.isPlaying(); + if (_state._wasPlaying) { + debugLog('Pausing video due to another route opened.'); + _state._obVideoPlayerController.pause(); + } + } + } + + @override + void didPop(Route route, Route previousRoute) { + if (identical(previousRoute, _state._route) && + _state != null && + _state.mounted && + _state._wasPlaying) { + debugLog('Resuming video as blocking route has been popped.'); + _state._obVideoPlayerController.play(); + } + } + + void debugLog(String log) { + debugPrint('PostVideoNavigatorObserver: $log'); + } +} diff --git a/lib/widgets/post/widgets/post-body/widgets/post_body_text.dart b/lib/widgets/post/widgets/post-body/widgets/post_body_text.dart index 826b1769e..2b8a6c5ce 100644 --- a/lib/widgets/post/widgets/post-body/widgets/post_body_text.dart +++ b/lib/widgets/post/widgets/post-body/widgets/post_body_text.dart @@ -10,10 +10,10 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; class OBPostBodyText extends StatefulWidget { - final Post _post; + final Post post; final OnTextExpandedChange onTextExpandedChange; - OBPostBodyText(this._post, {this.onTextExpandedChange}) : super(); + OBPostBodyText(this.post, {this.onTextExpandedChange}) : super(); @override OBPostBodyTextState createState() { @@ -27,44 +27,59 @@ class OBPostBodyTextState extends State { ToastService _toastService; UserService _userService; LocalizationService _localizationService; - BuildContext _context; String _translatedText; bool _translationInProgress; + bool _needsBootstrap; @override void initState() { super.initState(); _translationInProgress = false; _translatedText = null; + _needsBootstrap = true; + } + + @override + void dispose() { + super.dispose(); } @override Widget build(BuildContext context) { - _toastService = OpenbookProvider.of(context).toastService; - _userService = OpenbookProvider.of(context).userService; - _localizationService = OpenbookProvider.of(context).localizationService; - _context = context; + if (_needsBootstrap) { + OpenbookProviderState openbookProvider = OpenbookProvider.of(context); + _toastService = openbookProvider.toastService; + _userService = openbookProvider.userService; + _localizationService = openbookProvider.localizationService; + _needsBootstrap = false; + } return GestureDetector( onLongPress: _copyText, - child: Padding(padding: EdgeInsets.only(top: 20.0, left:20, right: 20), child: _buildPostText()), + child: _buildFullPostText(), ); } - Widget _buildPostText() { + Widget _buildFullPostText() { return StreamBuilder( - stream: widget._post.updateSubject, - initialData: widget._post, + stream: widget.post.updateSubject, + initialData: widget.post, builder: (BuildContext context, AsyncSnapshot snapshot) { - return _buildActionablePostText(); + return _buildPostText(); }); } + Widget _buildPostText() { + return Padding( + padding: EdgeInsets.only(top: 10, left: 20, right: 20), + child: _buildActionablePostText()); + } + Future _translatePostText() async { String translatedText; try { _setTranslationInProgress(true); - translatedText = await _userService.translatePost(post: widget._post); + translatedText = await _userService.translatePost(post: widget.post); } catch (error) { _onError(error); } finally { @@ -74,16 +89,16 @@ class OBPostBodyTextState extends State { } Widget _buildActionablePostText() { - if (widget._post.isEdited != null && widget._post.isEdited) { + if (widget.post.isEdited != null && widget.post.isEdited) { return OBCollapsibleSmartText( - text: _translatedText != null ? _translatedText : widget._post.text, + text: _translatedText != null ? _translatedText : widget.post.text, trailingSmartTextElement: SecondaryTextElement(' (edited)'), maxlength: MAX_LENGTH_LIMIT, getChild: _buildTranslationButton, ); } else { return OBCollapsibleSmartText( - text: _translatedText != null ? _translatedText : widget._post.text, + text: _translatedText != null ? _translatedText : widget.post.text, maxlength: MAX_LENGTH_LIMIT, getChild: _buildTranslationButton, ); @@ -91,19 +106,19 @@ class OBPostBodyTextState extends State { } Widget _buildTranslationButton() { - if (_userService.getLoggedInUser() != null && !_userService.getLoggedInUser().canTranslatePost(widget._post)) { + if (_userService.getLoggedInUser() != null && + !_userService.getLoggedInUser().canTranslatePost(widget.post)) { return SizedBox(); } if (_translationInProgress) { return Padding( - padding: EdgeInsets.all(10.0), - child: Container( - width: 10.0, - height: 10.0, - child: CircularProgressIndicator(strokeWidth: 2.0), - ) - ); + padding: EdgeInsets.all(10.0), + child: Container( + width: 10.0, + height: 10.0, + child: CircularProgressIndicator(strokeWidth: 2.0), + )); } return GestureDetector( @@ -116,18 +131,24 @@ class OBPostBodyTextState extends State { } }, child: Padding( - padding: const EdgeInsets.only(top: 10), - child: _translatedText != null ? - OBSecondaryText(_localizationService.trans('user__translate_show_original'), size: OBTextSize.large): - OBSecondaryText(_localizationService.trans('user__translate_see_translation'), size: OBTextSize.large), + padding: const EdgeInsets.only(bottom: 10), + child: _translatedText != null + ? OBSecondaryText( + _localizationService.trans('user__translate_show_original'), + size: OBTextSize.large) + : OBSecondaryText( + _localizationService.trans('user__translate_see_translation'), + size: OBTextSize.large), ), ); } void _copyText() { - Clipboard.setData(ClipboardData(text: widget._post.text)); + Clipboard.setData(ClipboardData(text: widget.post.text)); _toastService.toast( - message: _localizationService.post__text_copied, context: _context, type: ToastType.info); + message: _localizationService.post__text_copied, + context: context, + type: ToastType.info); } void _onError(error) async { @@ -135,10 +156,9 @@ class OBPostBodyTextState extends State { _toastService.error( message: error.toHumanReadableMessage(), context: context); } else if (error is HttpieRequestError) { - String errorMessage = await error.toHumanReadableMessage(); - _toastService.error(message: errorMessage, context: context); } else { - _toastService.error(message: _localizationService.error__unknown_error, context: context); + _toastService.error( + message: _localizationService.error__unknown_error, context: context); throw error; } } diff --git a/lib/widgets/post/widgets/post-body/widgets/post_body_video.dart b/lib/widgets/post/widgets/post-body/widgets/post_body_video.dart deleted file mode 100644 index bfe72b796..000000000 --- a/lib/widgets/post/widgets/post-body/widgets/post_body_video.dart +++ /dev/null @@ -1,22 +0,0 @@ -import 'package:Okuna/models/post.dart'; -import 'package:Okuna/widgets/video_player/aspect_ratio_video.dart'; -import 'package:Okuna/widgets/video_player/network_player_lifecycle.dart'; -import 'package:flutter/material.dart'; -import 'package:video_player/video_player.dart'; - -class OBPostBodyVideo extends StatelessWidget { - final Post post; - - const OBPostBodyVideo({this.post}); - - @override - Widget build(BuildContext context) { - String videoUrl = post.getVideo(); - return Center( - child: NetworkPlayerLifeCycle( - videoUrl, - (BuildContext context, VideoPlayerController controller) => - OBAspectRatioVideo(controller), - )); - } -} diff --git a/lib/widgets/post/widgets/post_circles.dart b/lib/widgets/post/widgets/post_circles.dart index 459079987..b7890f655 100644 --- a/lib/widgets/post/widgets/post_circles.dart +++ b/lib/widgets/post/widgets/post_circles.dart @@ -18,28 +18,31 @@ class OBPostCircles extends StatelessWidget { Widget build(BuildContext context) { LocalizationService _localizationService = OpenbookProvider.of(context).localizationService; if (_post.hasCircles()) { - return SizedBox( - height: 26.0, - child: ListView.builder( - padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 5), - physics: const ClampingScrollPhysics(), - itemCount: 1, - scrollDirection: Axis.horizontal, - itemBuilder: (BuildContext context, int index) { - return OBCirclesWrap( - textSize: OBTextSize.small, - circlePreviewSize: OBCircleColorPreviewSize.extraSmall, - leading: OBText(_localizationService.trans('post__you_shared_with'), size: OBTextSize.small), - circles: _post.getPostCircles() - ); - }, + return Padding( + padding: const EdgeInsets.only(top: 10), + child: SizedBox( + height: 26.0, + child: ListView.builder( + padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 5), + physics: const ClampingScrollPhysics(), + itemCount: 1, + scrollDirection: Axis.horizontal, + itemBuilder: (BuildContext context, int index) { + return OBCirclesWrap( + textSize: OBTextSize.small, + circlePreviewSize: OBCircleColorPreviewSize.extraSmall, + leading: OBText(_localizationService.trans('post__you_shared_with'), size: OBTextSize.small), + circles: _post.getPostCircles() + ); + }, + ), ), ); } else if (_post.isEncircled != null && _post.isEncircled) { String postCreatorUsername = _post.creator.username; return Padding( - padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 5), + padding: const EdgeInsets.only(left: 20, right: 20, top: 10), child: Row( children: [ OBText( diff --git a/lib/widgets/post/widgets/post_reactions.dart b/lib/widgets/post/widgets/post_reactions.dart index 47d5ac082..441dc3c5f 100644 --- a/lib/widgets/post/widgets/post_reactions.dart +++ b/lib/widgets/post/widgets/post_reactions.dart @@ -59,9 +59,7 @@ class OBPostReactionsState extends State { post.reactionsEmojiCounts?.counts; if (emojiCounts == null || emojiCounts.length == 0) - return const SizedBox( - height: 35, - ); + return const SizedBox(); return Opacity( opacity: _requestInProgress ? 0.6 : 1, @@ -69,7 +67,9 @@ class OBPostReactionsState extends State { height: 35, child: ListView.separated( separatorBuilder: (BuildContext context, int index) { - return const SizedBox(width: 10,); + return const SizedBox( + width: 10, + ); }, padding: const EdgeInsets.symmetric(horizontal: 20), physics: const ClampingScrollPhysics(), @@ -107,7 +107,7 @@ class OBPostReactionsState extends State { } else { // React PostReaction newPostReaction = - await _reactToPost(pressedEmojiCount.emoji); + await _reactToPost(pressedEmojiCount.emoji); widget.post.setReaction(newPostReaction); } } diff --git a/lib/widgets/posts_stream/posts_stream.dart b/lib/widgets/posts_stream/posts_stream.dart new file mode 100644 index 000000000..5cff025e0 --- /dev/null +++ b/lib/widgets/posts_stream/posts_stream.dart @@ -0,0 +1,423 @@ +import 'dart:math'; + +import 'package:Okuna/models/post.dart'; +import 'package:Okuna/provider.dart'; +import 'package:Okuna/services/httpie.dart'; +import 'package:Okuna/services/localization.dart'; +import 'package:Okuna/services/toast.dart'; +import 'package:Okuna/widgets/post/post.dart'; +import 'package:Okuna/widgets/posts_stream/widgets/dr_hoo.dart'; +import 'package:Okuna/widgets/theming/secondary_text.dart'; +import 'package:Okuna/widgets/tiles/loading_indicator_tile.dart'; +import 'package:Okuna/widgets/tiles/retry_tile.dart'; +import 'package:flutter/material.dart'; +import 'package:async/async.dart'; +import 'package:inview_notifier_list/inview_notifier_list.dart'; + +var rng = new Random(); + +class OBPostsStream extends StatefulWidget { + final List prependedItems; + final OBPostsStreamRefresher refresher; + final OBPostsStreamOnScrollLoader onScrollLoader; + final OBPostsStreamController controller; + final List initialPosts; + final String streamIdentifier; + final ValueChanged> onPostsRefreshed; + final bool refreshOnCreate; + final OBPostsStreamSecondaryRefresher secondaryRefresher; + final OBPostsStreamStatusIndicatorBuilder statusIndicatorBuilder; + + const OBPostsStream( + {Key key, + this.prependedItems, + @required this.refresher, + @required this.onScrollLoader, + this.controller, + this.initialPosts, + @required this.streamIdentifier, + this.onPostsRefreshed, + this.refreshOnCreate = true, + this.secondaryRefresher, + this.statusIndicatorBuilder}) + : super(key: key); + + @override + State createState() { + return OBPostsStreamState(); + } +} + +class OBPostsStreamState extends State { + List _posts; + bool _needsBootstrap; + ToastService _toastService; + LocalizationService _localizationService; + ScrollController _streamScrollController; + + GlobalKey _refreshIndicatorKey; + + OBPostsStreamStatus _status; + + CancelableOperation _refreshOperation; + CancelableOperation _secondaryRefresherOperation; + CancelableOperation _loadMoreOperation; + + String _streamUniqueIdentifier; + + @override + void initState() { + super.initState(); + if (widget.controller != null) widget.controller.attach(this); + _posts = widget.initialPosts != null ? widget.initialPosts.toList() : []; + _needsBootstrap = true; + _refreshIndicatorKey = GlobalKey(); + _status = OBPostsStreamStatus.refreshing; + _streamScrollController = ScrollController(); + _streamScrollController.addListener(_onScroll); + _streamUniqueIdentifier = + '${widget.streamIdentifier}_${rng.nextInt(1000).toString()}'; + } + + @override + void dispose() { + super.dispose(); + _streamScrollController.removeListener(_onScroll); + _secondaryRefresherOperation?.cancel(); + _refreshOperation?.cancel(); + _loadMoreOperation?.cancel(); + } + + void _bootstrap() { + if (widget.refreshOnCreate) { + Future.delayed(Duration(milliseconds: 100), () { + _refresh(); + }); + } + } + + @override + Widget build(BuildContext context) { + if (_needsBootstrap) { + var provider = OpenbookProvider.of(context); + _toastService = provider.toastService; + _localizationService = provider.localizationService; + _bootstrap(); + _needsBootstrap = false; + } + + return RefreshIndicator( + key: _refreshIndicatorKey, + onRefresh: _refreshPosts, + child: _buildStream(), + ); + } + + Widget _buildStream() { + List streamItems = []; + bool hasPrependedItems = + widget.prependedItems != null && widget.prependedItems.isNotEmpty; + if (hasPrependedItems) streamItems.addAll(widget.prependedItems); + + if (_posts.isEmpty) { + OBPostsStreamStatusIndicatorBuilder statusIndicatorBuilder = + widget.statusIndicatorBuilder ?? defaultStatusIndicatorBuilder; + + streamItems.add(statusIndicatorBuilder( + context: context, + streamStatus: _status, + streamRefresher: _refresh, + streamPrependedItems: widget.prependedItems, + )); + } else { + streamItems.addAll(_buildStreamPosts()); + if (_status != OBPostsStreamStatus.idle) + streamItems.add(_buildStatusTile()); + } + + return InViewNotifierList( + key: Key(_streamUniqueIdentifier), + physics: const ClampingScrollPhysics(), + padding: const EdgeInsets.all(0), + controller: _streamScrollController, + isInViewPortCondition: _checkTimelineItemIsInViewport, + children: streamItems, + ); + } + + List _buildStreamPosts() { + return _posts.map(_buildStreamPost).toList(); + } + + Widget _buildStreamPost(Post post) { + String inViewId = '${_streamUniqueIdentifier}_${post.id.toString()}'; + + return OBPost( + post, + key: Key(inViewId), + onPostDeleted: _onPostDeleted, + inViewId: inViewId, + ); + } + + Widget _buildStatusTile() { + Widget statusTile; + Key statusKey = Key('${_streamUniqueIdentifier}_status_tile'); + + switch (_status) { + case OBPostsStreamStatus.loadingMore: + return Padding( + key: statusKey, + padding: const EdgeInsets.all(20), + child: const OBLoadingIndicatorTile(), + ); + break; + case OBPostsStreamStatus.loadingMoreFailed: + return OBRetryTile( + key: statusKey, + onWantsToRetry: _loadMorePosts, + ); + break; + case OBPostsStreamStatus.noMoreToLoad: + return ListTile( + key: statusKey, + title: OBSecondaryText( + _localizationService.posts_stream__status_tile_no_more_to_load, + textAlign: TextAlign.center, + ), + ); + case OBPostsStreamStatus.empty: + return ListTile( + key: statusKey, + title: OBSecondaryText( + _localizationService.posts_stream__status_tile_empty, + textAlign: TextAlign.center, + ), + ); + default: + } + + return statusTile; + } + + bool _checkTimelineItemIsInViewport( + double deltaTop, + double deltaBottom, + double viewPortDimension, + ) { + return deltaTop < (0.5 * viewPortDimension) && + deltaBottom > (0.5 * viewPortDimension); + } + + void _scrollToTop({bool skipRefresh = false}) { + if (_streamScrollController.hasClients) { + if (_streamScrollController.offset == 0 && !skipRefresh) { + _refreshIndicatorKey.currentState.show(); + } + + _streamScrollController.animateTo( + 0.0, + curve: Curves.easeOut, + duration: const Duration(milliseconds: 300), + ); + } + } + + void _addPostToTop(Post post) { + setState(() { + this._posts.insert(0, post); + if (this._status == OBPostsStreamStatus.empty) + _setStatus(OBPostsStreamStatus.idle); + }); + } + + void _onScroll() { + if (_status == OBPostsStreamStatus.loadingMore || + _status == OBPostsStreamStatus.noMoreToLoad) return; + if (_streamScrollController.position.pixels > + _streamScrollController.position.maxScrollExtent * 0.1) { + _loadMorePosts(); + } + } + + void _ensureNoRefreshPostsInProgress() { + if (_refreshOperation != null) { + _refreshOperation.cancel(); + _refreshOperation = null; + } + } + + void _ensureNoLoadMoreInProgress() { + if (_loadMoreOperation != null) { + _loadMoreOperation.cancel(); + _loadMoreOperation = null; + } + } + + Future _refresh() { + return _refreshIndicatorKey?.currentState?.show(); + } + + Future _refreshPosts() async { + debugLog('Refreshing posts'); + _ensureNoRefreshPostsInProgress(); + _setStatus(OBPostsStreamStatus.refreshing); + try { + _refreshOperation = CancelableOperation.fromFuture(widget.refresher()); + + List refreshFutures = [_refreshOperation.value]; + + if (widget.secondaryRefresher != null) { + _secondaryRefresherOperation = + CancelableOperation.fromFuture(widget.secondaryRefresher()); + refreshFutures.add(_secondaryRefresherOperation.value); + } + + List results = await Future.wait(refreshFutures); + List posts = results[0]; + + if (posts.length == 0) { + _setStatus(OBPostsStreamStatus.empty); + } else { + _setStatus(OBPostsStreamStatus.idle); + } + _setPosts(posts); + if (widget.onPostsRefreshed != null) widget.onPostsRefreshed(posts); + } catch (error) { + _setStatus(OBPostsStreamStatus.loadingMoreFailed); + _onError(error); + } finally { + _refreshOperation = null; + _secondaryRefresherOperation = null; + } + } + + Future _loadMorePosts() async { + if (_status == OBPostsStreamStatus.refreshing || + _status == OBPostsStreamStatus.noMoreToLoad || + _status == OBPostsStreamStatus.loadingMore || + _posts.isEmpty) return null; + debugLog('Loading more posts'); + _ensureNoLoadMoreInProgress(); + _setStatus(OBPostsStreamStatus.loadingMore); + + try { + _loadMoreOperation = + CancelableOperation.fromFuture(widget.onScrollLoader(_posts)); + + List morePosts = await _loadMoreOperation.value; + + if (morePosts.length == 0) { + _setStatus(OBPostsStreamStatus.noMoreToLoad); + } else { + _setStatus(OBPostsStreamStatus.idle); + _addPosts(morePosts); + } + } catch (error) { + _setStatus(OBPostsStreamStatus.loadingMoreFailed); + _onError(error); + } finally { + _loadMoreOperation = null; + } + } + + void _onPostDeleted(Post deletedPost) { + setState(() { + _posts.remove(deletedPost); + if (_posts.isEmpty) _setStatus(OBPostsStreamStatus.empty); + }); + } + + void _onError(error) async { + if (error is HttpieConnectionRefusedError) { + _toastService.error( + message: error.toHumanReadableMessage(), context: context); + } else if (error is HttpieRequestError) { + String errorMessage = await error.toHumanReadableMessage(); + _toastService.error(message: errorMessage, context: context); + } else { + _toastService.error( + message: _localizationService.error__unknown_error, context: context); + throw error; + } + } + + void _setPosts(List posts) { + setState(() { + _posts = posts; + }); + } + + void _addPosts(List posts) { + setState(() { + _posts.addAll(posts); + }); + } + + void _setStatus(OBPostsStreamStatus status) { + setState(() { + _status = status; + }); + } + + void debugLog(String log) { + //debugPrint('OBPostsStream:${widget.streamIdentifier}: $log'); + } +} + +class OBPostsStreamController { + OBPostsStreamState _state; + + /// Register the OBHomePostsState to the controller + void attach(OBPostsStreamState state) { + assert(state != null, 'Cannot attach to empty state'); + _state = state; + } + + void scrollToTop({bool skipRefresh = false}) { + _state._scrollToTop(skipRefresh: skipRefresh); + } + + void addPostToTop(Post post) { + _state._addPostToTop(post); + } + + Future refreshPosts() { + return _state._refreshPosts(); + } + + bool isAttached() { + return _state != null; + } +} + +enum OBPostsStreamStatus { + refreshing, + loadingMore, + loadingMoreFailed, + noMoreToLoad, + empty, + idle +} + +Widget defaultStatusIndicatorBuilder( + {BuildContext context, + OBPostsStreamStatus streamStatus, + List streamPrependedItems, + Function streamRefresher}) { + return OBPostsStreamDrHoo( + streamStatus: streamStatus, + streamPrependedItems: streamPrependedItems, + streamRefresher: streamRefresher, + ); +} + +typedef Future> OBPostsStreamRefresher(); +typedef Future> OBPostsStreamOnScrollLoader(List posts); +typedef Future OBPostsStreamSecondaryRefresher(); + +typedef OBPostsStreamStatusIndicatorBuilder = Widget Function( + {@required BuildContext context, + @required OBPostsStreamStatus streamStatus, + @required List streamPrependedItems, + @required Function streamRefresher}); diff --git a/lib/widgets/posts_stream/widgets/dr_hoo.dart b/lib/widgets/posts_stream/widgets/dr_hoo.dart new file mode 100644 index 000000000..1175349d0 --- /dev/null +++ b/lib/widgets/posts_stream/widgets/dr_hoo.dart @@ -0,0 +1,130 @@ +import 'package:Okuna/provider.dart'; +import 'package:Okuna/services/localization.dart'; +import 'package:Okuna/widgets/buttons/button.dart'; +import 'package:Okuna/widgets/icon.dart'; +import 'package:Okuna/widgets/posts_stream/posts_stream.dart'; +import 'package:Okuna/widgets/theming/highlighted_box.dart'; +import 'package:Okuna/widgets/theming/text.dart'; +import 'package:flutter/cupertino.dart'; + +class OBPostsStreamDrHoo extends StatelessWidget { + final VoidCallback streamRefresher; + final OBPostsStreamStatus streamStatus; + final List streamPrependedItems; + + const OBPostsStreamDrHoo({ + Key key, + @required this.streamRefresher, + @required this.streamStatus, + @required this.streamPrependedItems, + }) : super(key: key); + + @override + Widget build(BuildContext context) { + String drHooTitle; + String drHooSubtitle; + String drHooImage = 'assets/images/stickers/owl-instructor.png'; + bool hasRefreshButton = false; + + OpenbookProviderState openbookProvider = OpenbookProvider.of(context); + LocalizationService localizationService = + openbookProvider.localizationService; + + switch (streamStatus) { + case OBPostsStreamStatus.refreshing: + drHooTitle = localizationService.posts_stream__refreshing_drhoo_title; + drHooSubtitle = + localizationService.posts_stream__refreshing_drhoo_subtitle; + break; + case OBPostsStreamStatus.noMoreToLoad: + drHooTitle = localizationService.posts_stream__empty_drhoo_title; + drHooSubtitle = localizationService.posts_stream__empty_drhoo_subtitle; + break; + case OBPostsStreamStatus.loadingMoreFailed: + drHooImage = 'assets/images/stickers/perplexed-owl.png'; + drHooTitle = + localizationService.post__timeline_posts_failed_drhoo_title; + drHooSubtitle = + localizationService.post__timeline_posts_failed_drhoo_subtitle; + hasRefreshButton = true; + break; + case OBPostsStreamStatus.empty: + drHooImage = 'assets/images/stickers/perplexed-owl.png'; + drHooTitle = localizationService.posts_stream__empty_drhoo_title; + drHooSubtitle = localizationService.posts_stream__empty_drhoo_subtitle; + hasRefreshButton = true; + break; + default: + drHooTitle = + localizationService.post__timeline_posts_default_drhoo_title; + drHooSubtitle = + localizationService.post__timeline_posts_default_drhoo_subtitle; + hasRefreshButton = true; + } + + List drHooColumnItems = [ + Image.asset( + drHooImage, + height: 100, + ), + const SizedBox( + height: 20.0, + ), + OBText( + drHooTitle, + style: TextStyle( + fontWeight: FontWeight.bold, + fontSize: 18.0, + ), + textAlign: TextAlign.center, + ), + const SizedBox( + height: 10.0, + ), + OBText( + drHooSubtitle, + textAlign: TextAlign.center, + ) + ]; + + if (hasRefreshButton) { + drHooColumnItems.addAll([ + const SizedBox( + height: 30, + ), + OBButton( + icon: const OBIcon( + OBIcons.refresh, + size: OBIconSize.small, + ), + type: OBButtonType.highlight, + child: OBText(localizationService.post__timeline_posts_refresh_posts), + onPressed: streamRefresher, + isLoading: streamStatus == OBPostsStreamStatus.refreshing, + ) + ]); + } + + return Padding( + padding: EdgeInsets.symmetric( + horizontal: 20, + vertical: + streamPrependedItems != null && streamPrependedItems.isNotEmpty + ? 20 + : 0), + child: OBHighlightedBox( + padding: EdgeInsets.symmetric(vertical: 20, horizontal: 20), + borderRadius: BorderRadius.circular(10), + child: Center( + child: ConstrainedBox( + constraints: BoxConstraints(maxWidth: 200), + child: Column( + mainAxisAlignment: MainAxisAlignment.center, + children: drHooColumnItems, + ), + ), + ), + ), + ); + } +} diff --git a/lib/widgets/routes/slide_right_route.dart b/lib/widgets/routes/slide_right_route.dart index a1ac6c95b..a49a13677 100644 --- a/lib/widgets/routes/slide_right_route.dart +++ b/lib/widgets/routes/slide_right_route.dart @@ -1,39 +1,93 @@ import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; -class OBSlideRightRoute extends PageRouteBuilder { - final Widget widget; - final Key key; - - OBSlideRightRoute({this.widget, this.key}) - : super( - opaque: false, - transitionDuration: const Duration(milliseconds: 200), - pageBuilder: (BuildContext context, Animation animation, - Animation secondaryAnimation) { - return Dismissible( - background: const DecoratedBox(decoration: const BoxDecoration( - color: Color.fromARGB(0, 0, 0, 0) - ),), - direction: DismissDirection.startToEnd, - onDismissed: (direction) { - Navigator.pop(context); - }, - key: key, - child: Material( - child: widget, - )); - }, - transitionsBuilder: (BuildContext context, - Animation animation, - Animation secondaryAnimation, - Widget child) { - return SlideTransition( - position: new Tween( - begin: const Offset(1.0, 0.0), - end: Offset.zero, - ).animate( - CurvedAnimation(parent: animation, curve: Curves.fastOutSlowIn)), - child: child); - }); +class OBSlideRightRoute extends PageRoute { + + Key slidableKey; + + OBSlideRightRoute({ + @required this.slidableKey, + @required this.builder, + RouteSettings settings, + this.maintainState = true, + bool fullscreenDialog = false, + }) : assert(builder != null), + assert(maintainState != null), + assert(fullscreenDialog != null), + super(settings: settings); + + @override + Duration get transitionDuration => const Duration(milliseconds: 200); + + /// Builds the primary contents of the route. + final WidgetBuilder builder; + + @override + final bool maintainState; + + @override + final bool opaque = false; + + @override + Color get barrierColor => Color.fromARGB(0, 0, 0, 1); + + @override + String get barrierLabel => null; + + @override + bool canTransitionFrom(TransitionRoute previousRoute) { + return previousRoute is MaterialPageRoute || + previousRoute is CupertinoPageRoute; + } + + @override + bool canTransitionTo(TransitionRoute nextRoute) { + // Don't perform outgoing animation if the next route is a fullscreen dialog. + return (nextRoute is MaterialPageRoute && !nextRoute.fullscreenDialog) || + (nextRoute is CupertinoPageRoute && !nextRoute.fullscreenDialog); + } + + @override + Widget buildPage( + BuildContext context, + Animation animation, + Animation secondaryAnimation, + ) { + final Widget result = builder(context); + + return Semantics( + scopesRoute: true, + explicitChildNodes: true, + child: Dismissible( + key: slidableKey, + background: const DecoratedBox( + decoration: const BoxDecoration(color: Colors.transparent), + ), + direction: DismissDirection.startToEnd, + onDismissed: (direction) { + Navigator.pop(context); + }, + child: Material( + child: result, + )), + ); + } + + @override + Widget buildTransitions(BuildContext context, Animation animation, + Animation secondaryAnimation, Widget child) { + return SlideTransition( + position: new Tween( + begin: const Offset(1.0, 0.0), + end: Offset.zero, + ).animate( + CurvedAnimation(parent: animation, curve: Curves.fastOutSlowIn)), + child: child); + } + + @override + String get debugLabel => '${super.debugLabel}(${settings.name})'; + + @override + bool get barrierDismissible => false; } diff --git a/lib/widgets/theming/collapsible_smart_text.dart b/lib/widgets/theming/collapsible_smart_text.dart index 2e5bb7ef2..0b2222adf 100644 --- a/lib/widgets/theming/collapsible_smart_text.dart +++ b/lib/widgets/theming/collapsible_smart_text.dart @@ -72,7 +72,7 @@ class OBCollapsibleSmartTextState extends State { return GestureDetector( onTap: _toggleExpandable, child: Padding( - padding: const EdgeInsets.only(top: 20), + padding: const EdgeInsets.symmetric(vertical: 20), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ diff --git a/lib/widgets/theming/highlighted_box.dart b/lib/widgets/theming/highlighted_box.dart new file mode 100644 index 000000000..f39c77a72 --- /dev/null +++ b/lib/widgets/theming/highlighted_box.dart @@ -0,0 +1,46 @@ +import 'package:Okuna/models/theme.dart'; +import 'package:Okuna/provider.dart'; +import 'package:flutter/material.dart'; + +class OBHighlightedBox extends StatelessWidget { + final Widget child; + final EdgeInsets padding; + final BorderRadius borderRadius; + + const OBHighlightedBox( + {Key key, + this.child, + this.padding, + this.borderRadius}) + : super(key: key); + + @override + Widget build(BuildContext context) { + var openbookProvider = OpenbookProvider.of(context); + var themeService = openbookProvider.themeService; + var themeValueParserService = openbookProvider.themeValueParserService; + + return StreamBuilder( + stream: themeService.themeChange, + initialData: themeService.getActiveTheme(), + builder: (BuildContext context, AsyncSnapshot snapshot) { + var theme = snapshot.data; + + var primaryColor = + themeValueParserService.parseColor(theme.primaryColor); + final bool isDarkPrimaryColor = + primaryColor.computeLuminance() < 0.179; + + return Container( + padding: padding, + decoration: BoxDecoration( + borderRadius: borderRadius, + color: isDarkPrimaryColor + ? Color.fromARGB(30, 255, 255, 255) + : Color.fromARGB(10, 0, 0, 0), + ), + child: child, + ); + }); + } +} diff --git a/lib/widgets/theming/secondary_text.dart b/lib/widgets/theming/secondary_text.dart index 35036a29d..c0fc581e4 100644 --- a/lib/widgets/theming/secondary_text.dart +++ b/lib/widgets/theming/secondary_text.dart @@ -9,9 +9,10 @@ class OBSecondaryText extends StatelessWidget { final OBTextSize size; final TextOverflow overflow; final TextAlign textAlign; + final int maxLines; const OBSecondaryText(this.text, - {this.style, this.size, this.overflow, this.textAlign}); + {this.style, this.size, this.overflow, this.textAlign, this.maxLines}); @override Widget build(BuildContext context) { @@ -41,6 +42,7 @@ class OBSecondaryText extends StatelessWidget { style: finalStyle, size: size, overflow: overflow, + maxLines: maxLines, textAlign: textAlign, ); }); diff --git a/lib/widgets/theming/smart_text.dart b/lib/widgets/theming/smart_text.dart index a9d50d52a..a4de8e8be 100644 --- a/lib/widgets/theming/smart_text.dart +++ b/lib/widgets/theming/smart_text.dart @@ -86,7 +86,7 @@ class SecondaryTextElement extends SmartTextElement { } } -final _linkRegex = RegExp( +final linkRegex = RegExp( r"(https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|www\.[a-zA-Z0-9][a-zA-Z0-9-]+[a-zA-Z0-9]\.[^\s]{2,}|https?:\/\/(?:www\.|(?!www))[a-zA-Z0-9]+\.[^\s]{2,}|www\.[a-zA-Z0-9]+\.[^\s]{2,})", caseSensitive: false); final _tagRegex = RegExp(r"\B#\w*[a-zA-Z]+\w*", caseSensitive: false); @@ -133,7 +133,7 @@ List _smartify(String text) { matches.addAll(_communityNameRegex.allMatches(text).map((m) { return SmartMatch(CommunityNameElement(m.group(0)), m.start, m.end); })); - matches.addAll(_linkRegex.allMatches(text).map((m) { + matches.addAll(linkRegex.allMatches(text).map((m) { return SmartMatch(LinkElement(m.group(0)), m.start, m.end); })); // matches.addAll(_tagRegex.allMatches(text).map((m) { return SmartMatch(HashTagElement(m.group(0)), m.start, m.end); })); diff --git a/lib/widgets/tiles/actions/clear_application_cache_tile.dart b/lib/widgets/tiles/actions/clear_application_cache_tile.dart index 4256e1a59..289644420 100644 --- a/lib/widgets/tiles/actions/clear_application_cache_tile.dart +++ b/lib/widgets/tiles/actions/clear_application_cache_tile.dart @@ -1,6 +1,5 @@ import 'package:Okuna/provider.dart'; import 'package:Okuna/services/localization.dart'; -import 'package:Okuna/services/toast.dart'; import 'package:Okuna/widgets/icon.dart'; import 'package:Okuna/widgets/theming/secondary_text.dart'; import 'package:Okuna/widgets/theming/text.dart'; diff --git a/lib/widgets/tiles/actions/link_previews_setting_tile.dart b/lib/widgets/tiles/actions/link_previews_setting_tile.dart new file mode 100644 index 000000000..cbb912c6d --- /dev/null +++ b/lib/widgets/tiles/actions/link_previews_setting_tile.dart @@ -0,0 +1,74 @@ +import 'package:Okuna/provider.dart'; +import 'package:Okuna/services/bottom_sheet.dart'; +import 'package:Okuna/services/localization.dart'; +import 'package:Okuna/services/user_preferences.dart'; +import 'package:Okuna/widgets/icon.dart'; +import 'package:Okuna/widgets/theming/primary_accent_text.dart'; +import 'package:Okuna/widgets/theming/secondary_text.dart'; +import 'package:Okuna/widgets/theming/text.dart'; +import 'package:flutter/material.dart'; + +class OBLinkPreviewsSettingTile extends StatelessWidget { + @override + Widget build(BuildContext context) { + OpenbookProviderState provider = OpenbookProvider.of(context); + + LocalizationService localizationService = provider.localizationService; + UserPreferencesService userPreferencesService = + provider.userPreferencesService; + BottomSheetService bottomSheetService = provider.bottomSheetService; + + Map linkPreviewsSettingsLocalizationMap = + userPreferencesService.getLinkPreviewsSettingLocalizationMap(); + + return FutureBuilder( + future: userPreferencesService.getLinkPreviewsSetting(), + builder: + (BuildContext context, AsyncSnapshot snapshot) { + if (snapshot.data == null) return const SizedBox(); + + return StreamBuilder( + stream: userPreferencesService.linkPreviewsSettingChange, + initialData: snapshot.data, + builder: (BuildContext context, + AsyncSnapshot snapshot) { + LinkPreviewsSetting currentLinkPreviewsSetting = snapshot.data; + + return MergeSemantics( + child: ListTile( + leading: OBIcon(OBIcons.linkPreviews), + title: OBText( + localizationService + .application_settings__link_previews_show, + ), + subtitle: OBSecondaryText( + localizationService.application_settings__tap_to_change, + size: OBTextSize.small, + ), + trailing: Row( + mainAxisSize: MainAxisSize.min, + children: [ + OBPrimaryAccentText( + linkPreviewsSettingsLocalizationMap[ + currentLinkPreviewsSetting], + style: TextStyle(fontSize: 16), + ), + ], + ), + onTap: () { + bottomSheetService.showLinkPreviewsSettingPicker( + initialValue: currentLinkPreviewsSetting, + context: context, + onChanged: + (LinkPreviewsSetting newLinkPreviewsSetting) { + userPreferencesService + .setLinkPreviewsSetting(newLinkPreviewsSetting); + }); + }), + ); + }, + ); + }, + ); + } +} diff --git a/lib/widgets/tiles/actions/videos_autoplay_setting_tile.dart b/lib/widgets/tiles/actions/videos_autoplay_setting_tile.dart new file mode 100644 index 000000000..2957b44fa --- /dev/null +++ b/lib/widgets/tiles/actions/videos_autoplay_setting_tile.dart @@ -0,0 +1,70 @@ +import 'package:Okuna/provider.dart'; +import 'package:Okuna/services/bottom_sheet.dart'; +import 'package:Okuna/services/localization.dart'; +import 'package:Okuna/services/user_preferences.dart'; +import 'package:Okuna/widgets/icon.dart'; +import 'package:Okuna/widgets/theming/primary_accent_text.dart'; +import 'package:Okuna/widgets/theming/secondary_text.dart'; +import 'package:Okuna/widgets/theming/text.dart'; +import 'package:flutter/material.dart'; + +class OBVideosAutoPlaySettingTile extends StatelessWidget { + @override + Widget build(BuildContext context) { + OpenbookProviderState provider = OpenbookProvider.of(context); + + LocalizationService localizationService = provider.localizationService; + UserPreferencesService userPreferencesService = + provider.userPreferencesService; + BottomSheetService bottomSheetService = provider.bottomSheetService; + + Map videosAutoPlaySettingsLocalizationMap = + userPreferencesService.getVideosAutoPlaySettingLocalizationMap(); + + return FutureBuilder( + future: userPreferencesService.getVideosAutoPlaySetting(), + builder: + (BuildContext context, AsyncSnapshot snapshot) { + if (snapshot.data == null) return const SizedBox(); + + return StreamBuilder( + stream: userPreferencesService.videosAutoPlaySettingChange, + initialData: snapshot.data, + builder: (BuildContext context, + AsyncSnapshot snapshot) { + VideosAutoPlaySetting currentVideosAutoPlaySetting = snapshot.data; + + return MergeSemantics( + child: ListTile( + leading: OBIcon(OBIcons.play_arrow), + title: OBText( + localizationService.application_settings__videos_autoplay, + ), + subtitle: OBSecondaryText( + localizationService.application_settings__tap_to_change, size: OBTextSize.small,), + trailing: Row( + mainAxisSize: MainAxisSize.min, + children: [ + OBPrimaryAccentText( + videosAutoPlaySettingsLocalizationMap[ + currentVideosAutoPlaySetting], + style: TextStyle(fontSize: 16), + ), + ], + ), + onTap: () { + bottomSheetService.showVideosAutoPlaySettingPicker( + initialValue: currentVideosAutoPlaySetting, + context: context, + onChanged: (VideosAutoPlaySetting newVideosAutoPlaySetting) { + userPreferencesService + .setVideosAutoPlaySetting(newVideosAutoPlaySetting); + }); + }), + ); + }, + ); + }, + ); + } +} diff --git a/lib/widgets/tiles/actions/videos_sound_setting_tile.dart b/lib/widgets/tiles/actions/videos_sound_setting_tile.dart new file mode 100644 index 000000000..9c97f5fb1 --- /dev/null +++ b/lib/widgets/tiles/actions/videos_sound_setting_tile.dart @@ -0,0 +1,70 @@ +import 'package:Okuna/provider.dart'; +import 'package:Okuna/services/bottom_sheet.dart'; +import 'package:Okuna/services/localization.dart'; +import 'package:Okuna/services/user_preferences.dart'; +import 'package:Okuna/widgets/icon.dart'; +import 'package:Okuna/widgets/theming/primary_accent_text.dart'; +import 'package:Okuna/widgets/theming/secondary_text.dart'; +import 'package:Okuna/widgets/theming/text.dart'; +import 'package:flutter/material.dart'; + +class OBVideosSoundSettingTile extends StatelessWidget { + @override + Widget build(BuildContext context) { + OpenbookProviderState provider = OpenbookProvider.of(context); + + LocalizationService localizationService = provider.localizationService; + UserPreferencesService userPreferencesService = + provider.userPreferencesService; + BottomSheetService bottomSheetService = provider.bottomSheetService; + + Map videosSoundSettingsLocalizationMap = + userPreferencesService.getVideosSoundSettingLocalizationMap(); + + return FutureBuilder( + future: userPreferencesService.getVideosSoundSetting(), + builder: + (BuildContext context, AsyncSnapshot snapshot) { + if (snapshot.data == null) return const SizedBox(); + + return StreamBuilder( + stream: userPreferencesService.videosSoundSettingChange, + initialData: snapshot.data, + builder: (BuildContext context, + AsyncSnapshot snapshot) { + VideosSoundSetting currentVideosSoundSetting = snapshot.data; + + return MergeSemantics( + child: ListTile( + leading: OBIcon(OBIcons.sound), + title: OBText( + localizationService.application_settings__videos_sound, + ), + subtitle: OBSecondaryText( + localizationService.application_settings__tap_to_change, size: OBTextSize.small,), + trailing: Row( + mainAxisSize: MainAxisSize.min, + children: [ + OBPrimaryAccentText( + videosSoundSettingsLocalizationMap[ + currentVideosSoundSetting], + style: TextStyle(fontSize: 16), + ), + ], + ), + onTap: () { + bottomSheetService.showVideosSoundSettingPicker( + initialValue: currentVideosSoundSetting, + context: context, + onChanged: (VideosSoundSetting newVideosSoundSetting) { + userPreferencesService + .setVideosSoundSetting(newVideosSoundSetting); + }); + }), + ); + }, + ); + }, + ); + } +} diff --git a/lib/widgets/tiles/loading_indicator_tile.dart b/lib/widgets/tiles/loading_indicator_tile.dart index ed05f4e53..c03e9b012 100644 --- a/lib/widgets/tiles/loading_indicator_tile.dart +++ b/lib/widgets/tiles/loading_indicator_tile.dart @@ -2,6 +2,9 @@ import 'package:Okuna/widgets/progress_indicator.dart'; import 'package:flutter/material.dart'; class OBLoadingIndicatorTile extends StatelessWidget { + + const OBLoadingIndicatorTile(); + @override Widget build(BuildContext context) { return const ListTile( diff --git a/lib/widgets/tiles/notification_tile/notification_tile.dart b/lib/widgets/tiles/notification_tile/notification_tile.dart index 561a3e01e..ab24f9d9d 100644 --- a/lib/widgets/tiles/notification_tile/notification_tile.dart +++ b/lib/widgets/tiles/notification_tile/notification_tile.dart @@ -13,6 +13,7 @@ import 'package:Okuna/models/theme.dart'; import 'package:Okuna/provider.dart'; import 'package:Okuna/services/theme.dart'; import 'package:Okuna/services/theme_value_parser.dart'; +import 'package:Okuna/widgets/theming/highlighted_box.dart'; import 'package:Okuna/widgets/tiles/notification_tile/widgets/community_invite_notification_tile.dart'; import 'package:Okuna/widgets/tiles/notification_tile/widgets/connection_confirmed_notification_tile.dart'; import 'package:Okuna/widgets/tiles/notification_tile/widgets/connection_request_notification_tile.dart'; @@ -40,20 +41,29 @@ class OBNotificationTile extends StatelessWidget { @override Widget build(BuildContext context) { - return StreamBuilder( - initialData: notification, - stream: notification.updateSubject, - builder: _buildNotificationTile, + return Stack( + children: [ + Positioned( + top: 0, + right: 0, + left: 0, + bottom: 0, + child: StreamBuilder( + stream: notification.updateSubject, + initialData: notification, + builder: _buildNotificationBackground), + ), + _buildNotification(notification), + ], ); } - Widget _buildNotificationTile( + Widget _buildNotificationBackground( BuildContext context, AsyncSnapshot snapshot) { - OBNotification notification = snapshot.data; - return _buildNotification(notification, context); + return snapshot.data.read ? const SizedBox() : OBHighlightedBox(); } - Widget _buildNotification(OBNotification notification, BuildContext context) { + Widget _buildNotification(OBNotification notification) { Widget notificationTile; dynamic notificationContentObject = this.notification.contentObject; @@ -140,33 +150,6 @@ class OBNotificationTile extends StatelessWidget { return const SizedBox(); } - if (!notification.read) { - OpenbookProviderState openbookProvider = OpenbookProvider.of(context); - ThemeService themeService = openbookProvider.themeService; - ThemeValueParserService themeValueParserService = - openbookProvider.themeValueParserService; - - return _buildDismissable(StreamBuilder( - stream: themeService.themeChange, - initialData: themeService.getActiveTheme(), - builder: (BuildContext context, AsyncSnapshot snapshot) { - var theme = snapshot.data; - var primaryColor = - themeValueParserService.parseColor(theme.primaryColor); - final bool isDarkPrimaryColor = - primaryColor.computeLuminance() < 0.179; - - return DecoratedBox( - decoration: BoxDecoration( - color: isDarkPrimaryColor - ? Color.fromARGB(30, 255, 255, 255) - : Color.fromARGB(20, 0, 0, 0), - ), - child: notificationTile, - ); - })); - } - return _buildDismissable(notificationTile); } diff --git a/lib/widgets/tiles/notification_tile/notification_tile_post_media_preview.dart b/lib/widgets/tiles/notification_tile/notification_tile_post_media_preview.dart new file mode 100644 index 000000000..2396b5489 --- /dev/null +++ b/lib/widgets/tiles/notification_tile/notification_tile_post_media_preview.dart @@ -0,0 +1,32 @@ +import 'package:Okuna/models/post.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_advanced_networkimage/provider.dart'; +import 'package:flutter_advanced_networkimage/transition.dart'; + +class OBNotificationTilePostMediaPreview extends StatelessWidget { + static final double postMediaPreviewSize = 40; + final Post post; + + const OBNotificationTilePostMediaPreview({Key key, @required this.post}) : super(key: key); + + @override + Widget build(BuildContext context) { + return ClipRRect( + borderRadius: BorderRadius.circular(8.0), + child: SizedBox( + height: postMediaPreviewSize, + width: postMediaPreviewSize, + child: TransitionToImage( + loadingWidget: const SizedBox(), + fit: BoxFit.cover, + alignment: Alignment.center, + image: AdvancedNetworkImage(post.mediaThumbnail, + useDiskCache: true, + fallbackAssetImage: 'assets/images/fallbacks/post-fallback.png', + retryLimit: 3, + timeoutDuration: const Duration(seconds: 5)), + duration: Duration(milliseconds: 300), + ), + )); + } +} diff --git a/lib/widgets/tiles/notification_tile/widgets/community_invite_notification_tile.dart b/lib/widgets/tiles/notification_tile/widgets/community_invite_notification_tile.dart index 63a448e81..f7b5cde13 100644 --- a/lib/widgets/tiles/notification_tile/widgets/community_invite_notification_tile.dart +++ b/lib/widgets/tiles/notification_tile/widgets/community_invite_notification_tile.dart @@ -7,7 +7,6 @@ import 'package:Okuna/provider.dart'; import 'package:Okuna/services/localization.dart'; import 'package:Okuna/widgets/avatars/avatar.dart'; import 'package:Okuna/widgets/avatars/community_avatar.dart'; -import 'package:Okuna/widgets/theming/actionable_smart_text.dart'; import 'package:Okuna/widgets/theming/secondary_text.dart'; import 'package:flutter/material.dart'; @@ -34,7 +33,6 @@ class OBCommunityInviteNotificationTile extends StatelessWidget { User inviteCreator = communityInvite.creator; Community community = communityInvite.community; - String inviteCreatorUsername = inviteCreator.username; String communityName = community.name; OpenbookProviderState openbookProvider = OpenbookProvider.of(context); diff --git a/lib/widgets/tiles/notification_tile/widgets/connection_request_notification_tile.dart b/lib/widgets/tiles/notification_tile/widgets/connection_request_notification_tile.dart index d0e46dc2e..12798fdb2 100644 --- a/lib/widgets/tiles/notification_tile/widgets/connection_request_notification_tile.dart +++ b/lib/widgets/tiles/notification_tile/widgets/connection_request_notification_tile.dart @@ -3,7 +3,6 @@ import 'package:Okuna/models/notifications/notification.dart'; import 'package:Okuna/provider.dart'; import 'package:Okuna/services/localization.dart'; import 'package:Okuna/widgets/avatars/avatar.dart'; -import 'package:Okuna/widgets/theming/actionable_smart_text.dart'; import 'package:Okuna/widgets/theming/secondary_text.dart'; import 'package:flutter/material.dart'; @@ -24,8 +23,6 @@ class OBConnectionRequestNotificationTile extends StatelessWidget { @override Widget build(BuildContext context) { - String connectionRequesterUsername = - connectionRequestNotification.connectionRequester.username; OpenbookProviderState openbookProvider = OpenbookProvider.of(context); var utilsService = openbookProvider.utilsService; LocalizationService _localizationService = openbookProvider.localizationService; diff --git a/lib/widgets/tiles/notification_tile/widgets/follow_notification_tile.dart b/lib/widgets/tiles/notification_tile/widgets/follow_notification_tile.dart index 096200612..bf409e34c 100644 --- a/lib/widgets/tiles/notification_tile/widgets/follow_notification_tile.dart +++ b/lib/widgets/tiles/notification_tile/widgets/follow_notification_tile.dart @@ -3,7 +3,6 @@ import 'package:Okuna/models/notifications/notification.dart'; import 'package:Okuna/provider.dart'; import 'package:Okuna/services/localization.dart'; import 'package:Okuna/widgets/avatars/avatar.dart'; -import 'package:Okuna/widgets/theming/actionable_smart_text.dart'; import 'package:Okuna/widgets/theming/secondary_text.dart'; import 'package:flutter/material.dart'; diff --git a/lib/widgets/tiles/notification_tile/widgets/post_comment_notification_tile.dart b/lib/widgets/tiles/notification_tile/widgets/post_comment_notification_tile.dart index 72d002bd9..0782d2b75 100644 --- a/lib/widgets/tiles/notification_tile/widgets/post_comment_notification_tile.dart +++ b/lib/widgets/tiles/notification_tile/widgets/post_comment_notification_tile.dart @@ -5,10 +5,9 @@ import 'package:Okuna/models/post_comment.dart'; import 'package:Okuna/provider.dart'; import 'package:Okuna/services/localization.dart'; import 'package:Okuna/widgets/avatars/avatar.dart'; -import 'package:Okuna/widgets/theming/actionable_smart_text.dart'; import 'package:Okuna/widgets/theming/secondary_text.dart'; +import 'package:Okuna/widgets/tiles/notification_tile/notification_tile_post_media_preview.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_advanced_networkimage/provider.dart'; import 'notification_tile_skeleton.dart'; import 'notification_tile_title.dart'; @@ -39,15 +38,9 @@ class OBPostCommentNotificationTile extends StatelessWidget { LocalizationService _localizationService = OpenbookProvider.of(context).localizationService; Widget postImagePreview; - if (post.hasImage()) { - postImagePreview = ClipRRect( - borderRadius: BorderRadius.circular(8.0), - child: Image( - image: AdvancedNetworkImage(post.getImage(), useDiskCache: true), - height: postImagePreviewSize, - width: postImagePreviewSize, - fit: BoxFit.cover, - ), + if (post.hasMediaThumbnail()) { + postImagePreview = OBNotificationTilePostMediaPreview( + post: post, ); } diff --git a/lib/widgets/tiles/notification_tile/widgets/post_comment_reaction_notification_tile.dart b/lib/widgets/tiles/notification_tile/widgets/post_comment_reaction_notification_tile.dart index 66aa33f7d..e13b9417f 100644 --- a/lib/widgets/tiles/notification_tile/widgets/post_comment_reaction_notification_tile.dart +++ b/lib/widgets/tiles/notification_tile/widgets/post_comment_reaction_notification_tile.dart @@ -9,8 +9,8 @@ import 'package:Okuna/widgets/avatars/avatar.dart'; import 'package:Okuna/widgets/emoji_picker/widgets/emoji_groups/widgets/emoji_group/widgets/emoji.dart'; import 'package:Okuna/widgets/theming/actionable_smart_text.dart'; import 'package:Okuna/widgets/theming/secondary_text.dart'; +import 'package:Okuna/widgets/tiles/notification_tile/notification_tile_post_media_preview.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_advanced_networkimage/provider.dart'; import 'notification_tile_skeleton.dart'; import 'notification_tile_title.dart'; @@ -36,15 +36,9 @@ class OBPostCommentReactionNotificationTile extends StatelessWidget { Post post = postComment.post; Widget postCommentImagePreview; - if (post.hasImage()) { - postCommentImagePreview = ClipRRect( - borderRadius: BorderRadius.circular(8.0), - child: Image( - image: AdvancedNetworkImage(post.getImage(), useDiskCache: true), - height: postCommentImagePreviewSize, - width: postCommentImagePreviewSize, - fit: BoxFit.cover, - ), + if (post.hasMediaThumbnail()) { + postCommentImagePreview = OBNotificationTilePostMediaPreview( + post: post, ); } OpenbookProviderState openbookProvider = OpenbookProvider.of(context); diff --git a/lib/widgets/tiles/notification_tile/widgets/post_comment_reply_notification_tile.dart b/lib/widgets/tiles/notification_tile/widgets/post_comment_reply_notification_tile.dart index 41872ea2a..590d0842a 100644 --- a/lib/widgets/tiles/notification_tile/widgets/post_comment_reply_notification_tile.dart +++ b/lib/widgets/tiles/notification_tile/widgets/post_comment_reply_notification_tile.dart @@ -7,9 +7,8 @@ import 'package:Okuna/services/localization.dart'; import 'package:Okuna/widgets/avatars/avatar.dart'; import 'package:Okuna/widgets/theming/actionable_smart_text.dart'; import 'package:Okuna/widgets/theming/secondary_text.dart'; +import 'package:Okuna/widgets/tiles/notification_tile/notification_tile_post_media_preview.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_advanced_networkimage/provider.dart'; - import 'notification_tile_skeleton.dart'; import 'notification_tile_title.dart'; @@ -41,15 +40,9 @@ class OBPostCommentReplyNotificationTile extends StatelessWidget { openbookProvider.userService.getLoggedInUser().id == postCreatorId; Widget postImagePreview; - if (post.hasImage()) { - postImagePreview = ClipRRect( - borderRadius: BorderRadius.circular(8.0), - child: Image( - image: AdvancedNetworkImage(post.getImage(), useDiskCache: true), - height: postImagePreviewSize, - width: postImagePreviewSize, - fit: BoxFit.cover, - ), + if (post.hasMediaThumbnail()) { + postImagePreview = OBNotificationTilePostMediaPreview( + post: post, ); } diff --git a/lib/widgets/tiles/notification_tile/widgets/post_comment_user_mention_notification_tile.dart b/lib/widgets/tiles/notification_tile/widgets/post_comment_user_mention_notification_tile.dart index 5dab62137..6e5b43d7d 100644 --- a/lib/widgets/tiles/notification_tile/widgets/post_comment_user_mention_notification_tile.dart +++ b/lib/widgets/tiles/notification_tile/widgets/post_comment_user_mention_notification_tile.dart @@ -1,6 +1,5 @@ import 'package:Okuna/models/notifications/notification.dart'; import 'package:Okuna/models/notifications/post_comment_user_mention_notification.dart'; -import 'package:Okuna/models/post.dart'; import 'package:Okuna/models/post_comment.dart'; import 'package:Okuna/models/post_comment_user_mention.dart'; import 'package:Okuna/provider.dart'; @@ -9,7 +8,6 @@ import 'package:Okuna/widgets/avatars/avatar.dart'; import 'package:Okuna/widgets/theming/actionable_smart_text.dart'; import 'package:Okuna/widgets/theming/secondary_text.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_advanced_networkimage/provider.dart'; import 'notification_tile_skeleton.dart'; import 'notification_tile_title.dart'; @@ -32,20 +30,7 @@ class OBPostCommentUserMentionNotificationTile extends StatelessWidget { PostCommentUserMention postCommentUserMention = postCommentUserMentionNotification.postCommentUserMention; PostComment postComment = postCommentUserMention.postComment; - Post post = postComment.post; - Widget postCommentImagePreview; - if (post.hasImage()) { - postCommentImagePreview = ClipRRect( - borderRadius: BorderRadius.circular(8.0), - child: Image( - image: AdvancedNetworkImage(post.getImage(), useDiskCache: true), - height: postCommentImagePreviewSize, - width: postCommentImagePreviewSize, - fit: BoxFit.cover, - ), - ); - } OpenbookProviderState openbookProvider = OpenbookProvider.of(context); var utilsService = openbookProvider.utilsService; diff --git a/lib/widgets/tiles/notification_tile/widgets/post_reaction_notification_tile.dart b/lib/widgets/tiles/notification_tile/widgets/post_reaction_notification_tile.dart index cb96b087e..8a1d3c472 100644 --- a/lib/widgets/tiles/notification_tile/widgets/post_reaction_notification_tile.dart +++ b/lib/widgets/tiles/notification_tile/widgets/post_reaction_notification_tile.dart @@ -7,8 +7,8 @@ import 'package:Okuna/services/localization.dart'; import 'package:Okuna/widgets/avatars/avatar.dart'; import 'package:Okuna/widgets/emoji_picker/widgets/emoji_groups/widgets/emoji_group/widgets/emoji.dart'; import 'package:Okuna/widgets/theming/secondary_text.dart'; +import 'package:Okuna/widgets/tiles/notification_tile/notification_tile_post_media_preview.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_advanced_networkimage/provider.dart'; import 'notification_tile_skeleton.dart'; import 'notification_tile_title.dart'; @@ -32,22 +32,17 @@ class OBPostReactionNotificationTile extends StatelessWidget { Post post = postReaction.post; Widget postImagePreview; - if (post.hasImage()) { + if (post.hasMediaThumbnail()) { postImagePreview = Padding( padding: const EdgeInsets.only(left: 10), - child: ClipRRect( - borderRadius: BorderRadius.circular(8.0), - child: Image( - image: - AdvancedNetworkImage(post.getImage(), useDiskCache: true), - height: postImagePreviewSize, - width: postImagePreviewSize, - fit: BoxFit.cover, - ))); + child: OBNotificationTilePostMediaPreview( + post: post, + )); } OpenbookProviderState openbookProvider = OpenbookProvider.of(context); var utilsService = openbookProvider.utilsService; - LocalizationService _localizationService = openbookProvider.localizationService; + LocalizationService _localizationService = + openbookProvider.localizationService; Function navigateToReactorProfile = () { openbookProvider.navigationService @@ -67,11 +62,13 @@ class OBPostReactionNotificationTile extends StatelessWidget { avatarUrl: postReaction.reactor.getProfileAvatar(), ), title: OBNotificationTileTitle( - text: TextSpan(text: _localizationService.notifications__reacted_to_post_tile), + text: TextSpan( + text: _localizationService.notifications__reacted_to_post_tile), onUsernamePressed: navigateToReactorProfile, user: postReaction.reactor, ), - subtitle: OBSecondaryText(utilsService.timeAgo(notification.created, _localizationService)), + subtitle: OBSecondaryText( + utilsService.timeAgo(notification.created, _localizationService)), trailing: Row( children: [ OBEmoji( diff --git a/lib/widgets/tiles/notification_tile/widgets/post_user_mention_notification_tile.dart b/lib/widgets/tiles/notification_tile/widgets/post_user_mention_notification_tile.dart index 983a262a3..501e9312d 100644 --- a/lib/widgets/tiles/notification_tile/widgets/post_user_mention_notification_tile.dart +++ b/lib/widgets/tiles/notification_tile/widgets/post_user_mention_notification_tile.dart @@ -6,8 +6,8 @@ import 'package:Okuna/provider.dart'; import 'package:Okuna/services/localization.dart'; import 'package:Okuna/widgets/avatars/avatar.dart'; import 'package:Okuna/widgets/theming/secondary_text.dart'; +import 'package:Okuna/widgets/tiles/notification_tile/notification_tile_post_media_preview.dart'; import 'package:flutter/material.dart'; -import 'package:flutter_advanced_networkimage/provider.dart'; import 'notification_tile_skeleton.dart'; import 'notification_tile_title.dart'; @@ -32,15 +32,9 @@ class OBPostUserMentionNotificationTile extends StatelessWidget { Post post = postUserMention.post; Widget postImagePreview; - if (post.hasImage()) { - postImagePreview = ClipRRect( - borderRadius: BorderRadius.circular(8.0), - child: Image( - image: AdvancedNetworkImage(post.getImage(), useDiskCache: true), - height: postImagePreviewSize, - width: postImagePreviewSize, - fit: BoxFit.cover, - ), + if (post.hasMediaThumbnail()) { + postImagePreview = OBNotificationTilePostMediaPreview( + post: post, ); } OpenbookProviderState openbookProvider = OpenbookProvider.of(context); @@ -50,9 +44,10 @@ class OBPostUserMentionNotificationTile extends StatelessWidget { openbookProvider.navigationService.navigateToUserProfile( user: postUserMention.post.creator, context: context); }; - LocalizationService _localizationService = openbookProvider.localizationService; + LocalizationService _localizationService = + openbookProvider.localizationService; - Function onTileTapped = (){ + Function onTileTapped = () { if (onPressed != null) onPressed(); OpenbookProviderState openbookProvider = OpenbookProvider.of(context); openbookProvider.navigationService @@ -72,7 +67,8 @@ class OBPostUserMentionNotificationTile extends StatelessWidget { text: _localizationService.notifications__mentioned_in_post_tile), ), trailing: postImagePreview, - subtitle: OBSecondaryText(utilsService.timeAgo(notification.created, _localizationService)), + subtitle: OBSecondaryText( + utilsService.timeAgo(notification.created, _localizationService)), ); } } diff --git a/lib/widgets/video_player/aspect_ratio_video.dart b/lib/widgets/video_player/aspect_ratio_video.dart deleted file mode 100644 index 45c7c374f..000000000 --- a/lib/widgets/video_player/aspect_ratio_video.dart +++ /dev/null @@ -1,50 +0,0 @@ -import 'package:Okuna/widgets/progress_indicator.dart'; -import 'package:Okuna/widgets/video_player/play_pause_state.dart'; -import 'package:flutter/material.dart'; -import 'package:video_player/video_player.dart'; - -class OBAspectRatioVideo extends StatefulWidget { - OBAspectRatioVideo(this.controller); - - final VideoPlayerController controller; - - @override - OBAspectRatioVideoState createState() => OBAspectRatioVideoState(); -} - -class OBAspectRatioVideoState extends State { - VideoPlayerController get controller => widget.controller; - bool initialized = false; - - VoidCallback listener; - - @override - void initState() { - super.initState(); - listener = () { - if (!mounted) { - return; - } - if (initialized != controller.value.initialized) { - initialized = controller.value.initialized; - setState(() {}); - } - }; - controller.addListener(listener); - } - - @override - Widget build(BuildContext context) { - if (initialized) { - return Center( - child: AspectRatio( - aspectRatio: - controller.value.size.width / controller.value.size.height, - child: VideoPlayPause(controller), - ), - ); - } else { - return OBProgressIndicator(); - } - } -} diff --git a/lib/widgets/video_player/fade_animation.dart b/lib/widgets/video_player/fade_animation.dart deleted file mode 100644 index 9e35740de..000000000 --- a/lib/widgets/video_player/fade_animation.dart +++ /dev/null @@ -1,60 +0,0 @@ -import 'package:flutter/material.dart'; - -class OBVideoPlayPauseFadeAnimation extends StatefulWidget { - OBVideoPlayPauseFadeAnimation( - {this.child, this.duration = const Duration(milliseconds: 500)}); - - final Widget child; - final Duration duration; - - @override - _OBVideoPlayPauseFadeAnimationState createState() => _OBVideoPlayPauseFadeAnimationState(); -} - -class _OBVideoPlayPauseFadeAnimationState extends State - with SingleTickerProviderStateMixin { - AnimationController animationController; - - @override - void initState() { - super.initState(); - animationController = - AnimationController(duration: widget.duration, vsync: this); - animationController.addListener(() { - if (mounted) { - setState(() {}); - } - }); - animationController.forward(from: 0.0); - } - - @override - void deactivate() { - animationController.stop(); - super.deactivate(); - } - - @override - void didUpdateWidget(OBVideoPlayPauseFadeAnimation oldWidget) { - super.didUpdateWidget(oldWidget); - if (oldWidget.child != widget.child) { - animationController.forward(from: 0.0); - } - } - - @override - void dispose() { - animationController.dispose(); - super.dispose(); - } - - @override - Widget build(BuildContext context) { - return animationController.isAnimating - ? Opacity( - opacity: 1.0 - animationController.value, - child: widget.child, - ) - : SizedBox(); - } -} diff --git a/lib/widgets/video_player/network_player_lifecycle.dart b/lib/widgets/video_player/network_player_lifecycle.dart deleted file mode 100644 index 1140e016d..000000000 --- a/lib/widgets/video_player/network_player_lifecycle.dart +++ /dev/null @@ -1,87 +0,0 @@ -import 'package:flutter/material.dart'; -import 'package:video_player/video_player.dart'; - -typedef Widget VideoWidgetBuilder( - BuildContext context, VideoPlayerController controller); - -abstract class PlayerLifeCycle extends StatefulWidget { - PlayerLifeCycle(this.dataSource, this.childBuilder); - - final VideoWidgetBuilder childBuilder; - final dynamic dataSource; -} - -/// A widget connecting its life cycle to a [VideoPlayerController] using -/// a data source from the network. -class NetworkPlayerLifeCycle extends PlayerLifeCycle { - NetworkPlayerLifeCycle(String dataSource, VideoWidgetBuilder childBuilder) - : super(dataSource, childBuilder); - - @override - _NetworkPlayerLifeCycleState createState() => _NetworkPlayerLifeCycleState(); -} - -/// A widget connecting its life cycle to a [VideoPlayerController] using -/// an asset as data source -class AssetPlayerLifeCycle extends PlayerLifeCycle { - AssetPlayerLifeCycle(dynamic dataSource, VideoWidgetBuilder childBuilder) - : super(dataSource, childBuilder); - - @override - _AssetPlayerLifeCycleState createState() => _AssetPlayerLifeCycleState(); -} - -abstract class _PlayerLifeCycleState extends State { - VideoPlayerController controller; - - @override - - /// Subclasses should implement [createVideoPlayerController], which is used - /// by this method. - void initState() { - super.initState(); - controller = createVideoPlayerController(); - controller.addListener(() { - if (controller.value.hasError) { - print(controller.value.errorDescription); - } - }); - controller.initialize(); - controller.setLooping(true); - controller.setVolume(0.0); - controller.play(); - } - - @override - void deactivate() { - super.deactivate(); - } - - @override - void dispose() { - super.dispose(); - controller.pause(); - controller.dispose(); - } - - @override - Widget build(BuildContext context) { - return widget.childBuilder(context, controller); - } - - VideoPlayerController createVideoPlayerController(); -} - -class _NetworkPlayerLifeCycleState extends _PlayerLifeCycleState { - @override - VideoPlayerController createVideoPlayerController() { - return VideoPlayerController.network(widget.dataSource); - } -} - -class _AssetPlayerLifeCycleState extends _PlayerLifeCycleState { - @override - VideoPlayerController createVideoPlayerController() { - return VideoPlayerController.file(widget.dataSource); - } -} diff --git a/lib/widgets/video_player/play_pause_state.dart b/lib/widgets/video_player/play_pause_state.dart deleted file mode 100644 index 6326cd04b..000000000 --- a/lib/widgets/video_player/play_pause_state.dart +++ /dev/null @@ -1,86 +0,0 @@ -import 'package:Okuna/widgets/icon.dart'; -import 'package:Okuna/widgets/video_player/fade_animation.dart'; -import 'package:flutter/material.dart'; -import 'package:video_player/video_player.dart'; - -class VideoPlayPause extends StatefulWidget { - VideoPlayPause(this.controller); - - final VideoPlayerController controller; - - @override - State createState() { - return _VideoPlayPauseState(); - } -} - -class _VideoPlayPauseState extends State { - _VideoPlayPauseState() { - listener = () { - if (!mounted) { - return; - } - }; - } - - OBVideoPlayPauseFadeAnimation imageFadeAnim = - OBVideoPlayPauseFadeAnimation(child: const Icon(Icons.play_arrow, size: 100.0)); - VoidCallback listener; - - VideoPlayerController get controller => widget.controller; - - @override - void initState() { - super.initState(); - controller.addListener(listener); - controller.setVolume(0.0); - controller.play(); - } - - @override - void deactivate() { - controller.setVolume(0.0); - controller.removeListener(listener); - super.deactivate(); - } - - @override - Widget build(BuildContext context) { - final List children = [ - GestureDetector( - child: VideoPlayer(controller), - onTap: () { - if (!controller.value.initialized) { - return; - } - if (controller.value.isPlaying) { - imageFadeAnim = - OBVideoPlayPauseFadeAnimation(child: const OBIcon(OBIcons.pause, customSize: 100.0)); - controller.pause(); - } else { - imageFadeAnim = - OBVideoPlayPauseFadeAnimation(child: const OBIcon(OBIcons.play_arrow, customSize: 100.0)); - controller.play(); - } - }, - ), - Align( - alignment: Alignment.bottomCenter, - child: VideoProgressIndicator( - controller, - allowScrubbing: true, - ), - ), - Center(child: imageFadeAnim), - Center( - child: controller.value.isBuffering - ? const CircularProgressIndicator() - : null), - ]; - - return Stack( - fit: StackFit.passthrough, - children: children, - ); - } -} \ No newline at end of file diff --git a/lib/widgets/video_player/video_player.dart b/lib/widgets/video_player/video_player.dart new file mode 100644 index 000000000..4c9d7ede6 --- /dev/null +++ b/lib/widgets/video_player/video_player.dart @@ -0,0 +1,356 @@ +import 'dart:async'; +import 'dart:io'; +import 'dart:math'; + +import 'package:Okuna/provider.dart'; +import 'package:Okuna/services/user_preferences.dart'; +import 'package:Okuna/widgets/video_player/widgets/chewie/chewie_player.dart'; +import 'package:Okuna/widgets/video_player/widgets/video_player_controls.dart'; +import 'package:flutter/cupertino.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter_advanced_networkimage/provider.dart'; +import 'package:flutter_widgets/flutter_widgets.dart'; +import 'package:video_player/video_player.dart'; + +import '../progress_indicator.dart'; + +var rng = new Random(); + +class OBVideoPlayer extends StatefulWidget { + final File video; + final String videoUrl; + final String thumbnailUrl; + final Key visibilityKey; + final ChewieController chewieController; + final VideoPlayerController videoPlayerController; + final bool isInDialog; + final bool autoPlay; + final OBVideoPlayerController controller; + final double height; + final double width; + final bool isConstrained; + + const OBVideoPlayer( + {Key key, + this.video, + this.videoUrl, + this.thumbnailUrl, + this.chewieController, + this.videoPlayerController, + this.isInDialog = false, + this.autoPlay = false, + this.visibilityKey, + this.height, + this.width, + this.controller, + this.isConstrained}) + : super(key: key); + + @override + State createState() { + return OBVideoPlayerState(); + } +} + +class OBVideoPlayerState extends State { + VideoPlayerController _playerController; + ChewieController _chewieController; + OBVideoPlayerControlsController _obVideoPlayerControlsController; + UserPreferencesService _userPreferencesService; + + Future _initializeVideoPlayerFuture; + + bool _needsChewieBootstrap; + + bool _isVideoHandover; + bool _hasVideoOpenedInDialog; + bool _isPausedDueToInvisibility; + bool _isPausedByUser; + bool _needsBootstrap; + + Key _visibilityKey; + + StreamSubscription _videosSoundSettingsChangeSubscription; + + @override + void initState() { + super.initState(); + if (widget.controller != null) widget.controller.attach(this); + _obVideoPlayerControlsController = OBVideoPlayerControlsController(); + _hasVideoOpenedInDialog = widget.isInDialog ?? false; + _needsChewieBootstrap = true; + _isPausedDueToInvisibility = false; + _isPausedByUser = false; + _needsBootstrap = true; + + _isVideoHandover = + widget.videoPlayerController != null && widget.chewieController != null; + + String visibilityKeyFallback; + if (widget.videoUrl != null) { + _playerController = VideoPlayerController.network(widget.videoUrl); + visibilityKeyFallback = widget.videoUrl; + } else if (widget.video != null) { + _playerController = VideoPlayerController.file(widget.video); + visibilityKeyFallback = widget.video.path; + } else if (widget.videoPlayerController != null) { + _playerController = widget.videoPlayerController; + visibilityKeyFallback = widget.videoPlayerController.dataSource; + } else { + throw Exception('Video dialog requires video or videoUrl.'); + } + + visibilityKeyFallback += '-${rng.nextInt(1000)}'; + + _playerController.setVolume(0); + + _visibilityKey = widget.visibilityKey != null + ? widget.visibilityKey + : Key(visibilityKeyFallback); + + _initializeVideoPlayerFuture = + _isVideoHandover ? Future.value() : _playerController.initialize(); + } + + @override + void dispose() { + super.dispose(); + if (!_isVideoHandover && mounted && !_hasVideoOpenedInDialog) { + _videosSoundSettingsChangeSubscription?.cancel(); + if (_playerController != null) _playerController.dispose(); + if (_chewieController != null) _chewieController.dispose(); + } + } + + void _onUserPreferencesVideosSoundSettingsChange( + VideosSoundSetting newVideosSoundSettings) { + if (newVideosSoundSettings == VideosSoundSetting.enabled) { + _playerController.setVolume(100); + } else { + _playerController.setVolume(0); + } + } + + void _bootstrap() async { + VideosSoundSetting videosSoundSetting = + await _userPreferencesService.getVideosSoundSetting(); + _onUserPreferencesVideosSoundSettingsChange(videosSoundSetting); + + _videosSoundSettingsChangeSubscription = _userPreferencesService + .videosSoundSettingChange + .listen(_onUserPreferencesVideosSoundSettingsChange); + } + + @override + Widget build(BuildContext context) { + if (_needsBootstrap) { + OpenbookProviderState openbookProvider = OpenbookProvider.of(context); + _userPreferencesService = openbookProvider.userPreferencesService; + _bootstrap(); + _needsBootstrap = false; + } + + return FutureBuilder( + future: _initializeVideoPlayerFuture, + builder: (context, snapshot) { + if (snapshot.connectionState == ConnectionState.done) { + if (_needsChewieBootstrap) { + _chewieController = _getChewieController(); + _needsChewieBootstrap = false; + } + + return VisibilityDetector( + key: _visibilityKey, + onVisibilityChanged: _onVisibilityChanged, + child: Chewie( + height: widget.height, + width: widget.width, + controller: _chewieController, + isConstrained: widget.isConstrained + ), + ); + } else { + // If the VideoPlayerController is still initializing, show a + // loading spinner. + return Stack( + children: [ + widget.thumbnailUrl != null + ? Container( + decoration: BoxDecoration( + image: DecorationImage( + fit: BoxFit.cover, + image: AdvancedNetworkImage(widget.thumbnailUrl, + useDiskCache: true), + )), + ) + : const SizedBox(), + Positioned( + top: 0, + bottom: 0, + right: 0, + left: 0, + child: Center( + child: OBProgressIndicator( + color: Colors.white, + )), + ) + ], + ); + } + }, + ); + } + + void _onControlsPlay(Function originalPlayFunction) { + debugLog('User is playing'); + _isPausedByUser = false; + originalPlayFunction(); + } + + void _onControlsPause(Function originalPauseFunction) { + debugLog('User is pausing'); + _isPausedByUser = true; + originalPauseFunction(); + } + + void _onControlsMute(Function originalMuteFunction) { + _userPreferencesService.setVideosSoundSetting(VideosSoundSetting.disabled); + } + + void _onControlsUnmute(Function originalUnmuteFunction) { + _userPreferencesService.setVideosSoundSetting(VideosSoundSetting.enabled); + } + + void _onExpandCollapse(Function originalExpandFunction) async { + if (_hasVideoOpenedInDialog) { + _obVideoPlayerControlsController.pop(); + _hasVideoOpenedInDialog = false; + return; + } + + _hasVideoOpenedInDialog = true; + OpenbookProviderState openbookProvider = OpenbookProvider.of(context); + await openbookProvider.dialogService.showVideo( + context: context, + video: widget.video, + videoUrl: widget.videoUrl, + videoPlayerController: _playerController, + chewieController: _chewieController); + _hasVideoOpenedInDialog = false; + } + + // Return back to config + + ChewieController _getChewieController() { + if (widget.chewieController != null) return widget.chewieController; + double aspectRatio = _playerController.value.aspectRatio; + return ChewieController( + videoPlayerController: _playerController, + showControlsOnInitialize: false, + customControls: OBVideoPlayerControls( + controller: _obVideoPlayerControlsController, + onExpandCollapse: _onExpandCollapse, + onPause: _onControlsPause, + onPlay: _onControlsPlay, + onMute: _onControlsMute, + onUnmute: _onControlsUnmute, + ), + aspectRatio: aspectRatio, + autoPlay: widget.autoPlay, + looping: true); + } + + void _onVisibilityChanged(VisibilityInfo visibilityInfo) { + if (_hasVideoOpenedInDialog) return; + bool isVisible = visibilityInfo.visibleFraction != 0; + + debugLog( + 'isVisible: ${isVisible.toString()} with fraction ${visibilityInfo.visibleFraction}'); + + if (!isVisible && _playerController.value.isPlaying && mounted) { + debugLog('Its not visible and the video is playing. Now pausing. .'); + _isPausedDueToInvisibility = true; + _playerController.pause(); + } + } + + void _pause() { + _playerController.pause(); + _isPausedByUser = false; + _isPausedDueToInvisibility = false; + } + + void _play() { + _isPausedDueToInvisibility = false; + _isPausedByUser = false; + _playerController.play(); + } + + void debugLog(String log) { + //ValueKey key = _visibilityKey; + //debugPrint('OBVideoPlayer:${key.value}: $log'); + } +} + +class OBVideoPlayerController { + OBVideoPlayerState _state; + + void attach(state) { + _state = state; + } + + void pause() { + if (!isReady()) { + debugLog('State is not ready. Wont pause.'); + return; + } + _state._pause(); + } + + void play() { + if (!isReady()) { + debugLog('State is not ready. Wont play.'); + return; + } + _state._play(); + } + + bool isPlaying() { + if (!isReady()) return false; + + return _state._playerController.value.isPlaying; + } + + bool isReady() { + return _state != null && _state.mounted && _state._playerController != null; + } + + bool hasVideoOpenedInDialog() { + if (!isReady()) return false; + + return _state._hasVideoOpenedInDialog; + } + + bool isPausedByUser() { + if (!isReady()) return false; + return _state._isPausedByUser; + } + + bool isPausedDueToInvisibility() { + if (!isReady()) return false; + return _state._isPausedDueToInvisibility; + } + + String getIdentifier() { + if (!isReady()) { + debugLog('State is not ready. Can not get identifier.'); + return 'unknown'; + } + + return _state._playerController.dataSource; + } + + void debugLog(String log) { + debugPrint('OBVideoPlayerController: $log'); + } +} diff --git a/lib/widgets/video_player/widgets/chewie/LICENSE b/lib/widgets/video_player/widgets/chewie/LICENSE new file mode 100644 index 000000000..5867bab26 --- /dev/null +++ b/lib/widgets/video_player/widgets/chewie/LICENSE @@ -0,0 +1,24 @@ +The MIT License (MIT) +Copyright (c) 2017 Brian Egan + +Permission is hereby granted, free of charge, to any +person obtaining a copy of this software and associated +documentation files (the "Software"), to deal in the +Software without restriction, including without limitation +the rights to use, copy, modify, merge, publish, distribute, +sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do +so, subject to the following conditions: + +The above copyright notice and this permission notice shall +be included in all copies or substantial portions of +the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS +BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN +ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. \ No newline at end of file diff --git a/lib/widgets/video_player/widgets/chewie/chewie_player.dart b/lib/widgets/video_player/widgets/chewie/chewie_player.dart new file mode 100644 index 000000000..a1d2bc26c --- /dev/null +++ b/lib/widgets/video_player/widgets/chewie/chewie_player.dart @@ -0,0 +1,377 @@ +import 'dart:async'; + +import 'package:Okuna/widgets/video_player/widgets/chewie/chewie_progress_colors.dart'; +import 'package:Okuna/widgets/video_player/widgets/chewie/player_with_controls.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/services.dart'; +import 'package:flutter/widgets.dart'; +import 'package:screen/screen.dart'; +import 'package:video_player/video_player.dart'; + +typedef Widget ChewieRoutePageBuilder( + BuildContext context, + Animation animation, + Animation secondaryAnimation, + _ChewieControllerProvider controllerProvider); + +/// A Video Player with Material and Cupertino skins. +/// +/// `video_player` is pretty low level. Chewie wraps it in a friendly skin to +/// make it easy to use! +class Chewie extends StatefulWidget { + final double height; + final double width; + final bool isConstrained; + + Chewie({ + Key key, + this.controller, + this.height, + this.width, + this.isConstrained = false, + }) : assert(controller != null, 'You must provide a chewie controller'), + super(key: key); + + /// The [ChewieController] + final ChewieController controller; + + @override + ChewieState createState() { + return ChewieState(); + } +} + +class ChewieState extends State { + bool _isFullScreen = false; + + @override + void initState() { + super.initState(); + widget.controller.addListener(listener); + } + + @override + void dispose() { + widget.controller.removeListener(listener); + super.dispose(); + } + + @override + void didUpdateWidget(Chewie oldWidget) { + if (oldWidget.controller != widget.controller) { + widget.controller.addListener(listener); + } + super.didUpdateWidget(oldWidget); + } + + void listener() async { + if (widget.controller.isFullScreen && !_isFullScreen) { + _isFullScreen = true; + await _pushFullScreenWidget(context); + } else if (_isFullScreen) { + Navigator.of(context).pop(); + _isFullScreen = false; + } + } + + @override + Widget build(BuildContext context) { + return _ChewieControllerProvider( + controller: widget.controller, + child: PlayerWithControls(height: widget.height, width: widget.width, isConstrained: widget.isConstrained), + ); + } + + Widget _buildFullScreenVideo( + BuildContext context, + Animation animation, + _ChewieControllerProvider controllerProvider) { + return Scaffold( + resizeToAvoidBottomPadding: false, + body: Container( + alignment: Alignment.center, + color: Colors.black, + child: controllerProvider, + ), + ); + } + + AnimatedWidget _defaultRoutePageBuilder( + BuildContext context, + Animation animation, + Animation secondaryAnimation, + _ChewieControllerProvider controllerProvider) { + return AnimatedBuilder( + animation: animation, + builder: (BuildContext context, Widget child) { + return _buildFullScreenVideo(context, animation, controllerProvider); + }, + ); + } + + Widget _fullScreenRoutePageBuilder( + BuildContext context, + Animation animation, + Animation secondaryAnimation, + ) { + var controllerProvider = _ChewieControllerProvider( + controller: widget.controller, + child: PlayerWithControls(), + ); + + if (widget.controller.routePageBuilder == null) { + return _defaultRoutePageBuilder( + context, animation, secondaryAnimation, controllerProvider); + } + return widget.controller.routePageBuilder( + context, animation, secondaryAnimation, controllerProvider); + } + + Future _pushFullScreenWidget(BuildContext context) async { + final isAndroid = Theme.of(context).platform == TargetPlatform.android; + final TransitionRoute route = PageRouteBuilder( + settings: RouteSettings(isInitialRoute: false), + pageBuilder: _fullScreenRoutePageBuilder, + ); + + SystemChrome.setEnabledSystemUIOverlays([]); + if (isAndroid) { + SystemChrome.setPreferredOrientations([ + DeviceOrientation.landscapeLeft, + DeviceOrientation.landscapeRight, + ]); + } + + if (!widget.controller.allowedScreenSleep) { + Screen.keepOn(true); + } + + await Navigator.of(context).push(route); + _isFullScreen = false; + widget.controller.exitFullScreen(); + + bool isKeptOn = await Screen.isKeptOn; + if (isKeptOn) { + Screen.keepOn(false); + } + + SystemChrome.setEnabledSystemUIOverlays( + widget.controller.systemOverlaysAfterFullScreen); + SystemChrome.setPreferredOrientations( + widget.controller.deviceOrientationsAfterFullScreen); + } +} + +/// The ChewieController is used to configure and drive the Chewie Player +/// Widgets. It provides methods to control playback, such as [pause] and +/// [play], as well as methods that control the visual appearance of the player, +/// such as [enterFullScreen] or [exitFullScreen]. +/// +/// In addition, you can listen to the ChewieController for presentational +/// changes, such as entering and exiting full screen mode. To listen for +/// changes to the playback, such as a change to the seek position of the +/// player, please use the standard information provided by the +/// `VideoPlayerController`. +class ChewieController extends ChangeNotifier { + ChewieController({ + this.videoPlayerController, + this.aspectRatio, + this.autoInitialize = false, + this.autoPlay = false, + this.startAt, + this.looping = false, + this.fullScreenByDefault = false, + this.cupertinoProgressColors, + this.materialProgressColors, + this.placeholder, + this.overlay, + this.showControlsOnInitialize = true, + this.showControls = true, + this.customControls, + this.errorBuilder, + this.allowedScreenSleep = true, + this.isLive = false, + this.allowFullScreen = true, + this.allowMuting = true, + this.systemOverlaysAfterFullScreen = SystemUiOverlay.values, + this.deviceOrientationsAfterFullScreen = const [ + DeviceOrientation.portraitUp, + DeviceOrientation.portraitDown, + DeviceOrientation.landscapeLeft, + DeviceOrientation.landscapeRight, + ], + this.routePageBuilder = null, + }) : assert(videoPlayerController != null, + 'You must provide a controller to play a video') { + _initialize(); + } + + /// The controller for the video you want to play + final VideoPlayerController videoPlayerController; + + /// Initialize the Video on Startup. This will prep the video for playback. + final bool autoInitialize; + + /// Play the video as soon as it's displayed + final bool autoPlay; + + /// Start video at a certain position + final Duration startAt; + + /// Whether or not the video should loop + final bool looping; + + /// Weather or not to show the controls when initializing the widget. + final bool showControlsOnInitialize; + + /// Whether or not to show the controls at all + final bool showControls; + + /// Defines customised controls. Check [MaterialControls] or + /// [CupertinoControls] for reference. + final Widget customControls; + + /// When the video playback runs into an error, you can build a custom + /// error message. + final Widget Function(BuildContext context, String errorMessage) errorBuilder; + + /// The Aspect Ratio of the Video. Important to get the correct size of the + /// video! + /// + /// Will fallback to fitting within the space allowed. + final double aspectRatio; + + /// The colors to use for controls on iOS. By default, the iOS player uses + /// colors sampled from the original iOS 11 designs. + final ChewieProgressColors cupertinoProgressColors; + + /// The colors to use for the Material Progress Bar. By default, the Material + /// player uses the colors from your Theme. + final ChewieProgressColors materialProgressColors; + + /// The placeholder is displayed underneath the Video before it is initialized + /// or played. + final Widget placeholder; + + /// A widget which is placed between the video and the controls + final Widget overlay; + + /// Defines if the player will start in fullscreen when play is pressed + final bool fullScreenByDefault; + + /// Defines if the player will sleep in fullscreen or not + final bool allowedScreenSleep; + + /// Defines if the controls should be for live stream video + final bool isLive; + + /// Defines if the fullscreen control should be shown + final bool allowFullScreen; + + /// Defines if the mute control should be shown + final bool allowMuting; + + /// Defines the system overlays visible after exiting fullscreen + final List systemOverlaysAfterFullScreen; + + /// Defines the set of allowed device orientations after exiting fullscreen + final List deviceOrientationsAfterFullScreen; + + /// Defines a custom RoutePageBuilder for the fullscreen + final ChewieRoutePageBuilder routePageBuilder; + + static ChewieController of(BuildContext context) { + final chewieControllerProvider = + context.inheritFromWidgetOfExactType(_ChewieControllerProvider) + as _ChewieControllerProvider; + + return chewieControllerProvider.controller; + } + + bool _isFullScreen = false; + + bool get isFullScreen => _isFullScreen; + + Future _initialize() async { + await videoPlayerController.setLooping(looping); + + if ((autoInitialize || autoPlay) && + !videoPlayerController.value.initialized) { + await videoPlayerController.initialize(); + } + + if (autoPlay) { + if (fullScreenByDefault) { + enterFullScreen(); + } + + await videoPlayerController.play(); + } + + if (startAt != null) { + await videoPlayerController.seekTo(startAt); + } + + if (fullScreenByDefault) { + videoPlayerController.addListener(_fullScreenListener); + } + } + + void _fullScreenListener() async { + if (videoPlayerController.value.isPlaying && !_isFullScreen) { + enterFullScreen(); + videoPlayerController.removeListener(_fullScreenListener); + } + } + + void enterFullScreen() { + _isFullScreen = true; + notifyListeners(); + } + + void exitFullScreen() { + _isFullScreen = false; + notifyListeners(); + } + + void toggleFullScreen() { + _isFullScreen = !_isFullScreen; + notifyListeners(); + } + + Future play() async { + await videoPlayerController.play(); + } + + Future setLooping(bool looping) async { + await videoPlayerController.setLooping(looping); + } + + Future pause() async { + await videoPlayerController.pause(); + } + + Future seekTo(Duration moment) async { + await videoPlayerController.seekTo(moment); + } + + Future setVolume(double volume) async { + await videoPlayerController.setVolume(volume); + } +} + +class _ChewieControllerProvider extends InheritedWidget { + const _ChewieControllerProvider({ + Key key, + @required this.controller, + @required Widget child, + }) : assert(controller != null), + assert(child != null), + super(key: key, child: child); + + final ChewieController controller; + + @override + bool updateShouldNotify(_ChewieControllerProvider old) => + controller != old.controller; +} diff --git a/lib/widgets/video_player/widgets/chewie/chewie_progress_colors.dart b/lib/widgets/video_player/widgets/chewie/chewie_progress_colors.dart new file mode 100644 index 000000000..9f73717c4 --- /dev/null +++ b/lib/widgets/video_player/widgets/chewie/chewie_progress_colors.dart @@ -0,0 +1,18 @@ +import 'package:flutter/rendering.dart'; + +class ChewieProgressColors { + ChewieProgressColors({ + Color playedColor: const Color.fromRGBO(255, 0, 0, 0.7), + Color bufferedColor: const Color.fromRGBO(30, 30, 200, 0.2), + Color handleColor: const Color.fromRGBO(200, 200, 200, 1.0), + Color backgroundColor: const Color.fromRGBO(200, 200, 200, 0.5), + }) : playedPaint = Paint()..color = playedColor, + bufferedPaint = Paint()..color = bufferedColor, + handlePaint = Paint()..color = handleColor, + backgroundPaint = Paint()..color = backgroundColor; + + final Paint playedPaint; + final Paint bufferedPaint; + final Paint handlePaint; + final Paint backgroundPaint; +} diff --git a/lib/widgets/video_player/widgets/chewie/cupertino_controls.dart b/lib/widgets/video_player/widgets/chewie/cupertino_controls.dart new file mode 100644 index 000000000..d78438c55 --- /dev/null +++ b/lib/widgets/video_player/widgets/chewie/cupertino_controls.dart @@ -0,0 +1,540 @@ +import 'dart:async'; +import 'dart:math' as math; +import 'dart:ui' as ui; + +import 'package:Okuna/widgets/video_player/widgets/chewie/chewie_player.dart'; +import 'package:Okuna/widgets/video_player/widgets/chewie/chewie_progress_colors.dart'; +import 'package:Okuna/widgets/video_player/widgets/chewie/cupertino_progress_bar.dart'; +import 'package:Okuna/widgets/video_player/widgets/chewie/utils.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:open_iconic_flutter/open_iconic_flutter.dart'; +import 'package:video_player/video_player.dart'; + +class CupertinoControls extends StatefulWidget { + const CupertinoControls({ + @required this.backgroundColor, + @required this.iconColor, + }); + + final Color backgroundColor; + final Color iconColor; + + @override + State createState() { + return _CupertinoControlsState(); + } +} + +class _CupertinoControlsState extends State { + VideoPlayerValue _latestValue; + double _latestVolume; + bool _hideStuff = true; + Timer _hideTimer; + final marginSize = 5.0; + Timer _expandCollapseTimer; + Timer _initTimer; + + VideoPlayerController controller; + ChewieController chewieController; + + @override + Widget build(BuildContext context) { + chewieController = ChewieController.of(context); + + if (_latestValue.hasError) { + return chewieController.errorBuilder != null + ? chewieController.errorBuilder( + context, + chewieController.videoPlayerController.value.errorDescription, + ) + : Center( + child: Icon( + OpenIconicIcons.ban, + color: Colors.white, + size: 42, + ), + ); + } + + final backgroundColor = widget.backgroundColor; + final iconColor = widget.iconColor; + chewieController = ChewieController.of(context); + controller = chewieController.videoPlayerController; + final orientation = MediaQuery.of(context).orientation; + final barHeight = orientation == Orientation.portrait ? 30.0 : 47.0; + final buttonPadding = orientation == Orientation.portrait ? 16.0 : 24.0; + + return GestureDetector( + onTap: () { + _cancelAndRestartTimer(); + }, + child: AbsorbPointer( + absorbing: _hideStuff, + child: Column( + children: [ + _buildTopBar(backgroundColor, iconColor, barHeight, buttonPadding), + _buildHitArea(), + _buildBottomBar(backgroundColor, iconColor, barHeight), + ], + ), + ), + ); + } + + @override + void dispose() { + _dispose(); + super.dispose(); + } + + void _dispose() { + controller.removeListener(_updateState); + _hideTimer?.cancel(); + _expandCollapseTimer?.cancel(); + _initTimer?.cancel(); + } + + @override + void didChangeDependencies() { + final _oldController = chewieController; + chewieController = ChewieController.of(context); + controller = chewieController.videoPlayerController; + + if (_oldController != chewieController) { + _dispose(); + _initialize(); + } + + super.didChangeDependencies(); + } + + AnimatedOpacity _buildBottomBar( + Color backgroundColor, + Color iconColor, + double barHeight, + ) { + return AnimatedOpacity( + opacity: _hideStuff ? 0.0 : 1.0, + duration: Duration(milliseconds: 300), + child: Container( + color: Colors.transparent, + alignment: Alignment.bottomCenter, + margin: EdgeInsets.all(marginSize), + child: ClipRRect( + borderRadius: BorderRadius.circular(10.0), + child: BackdropFilter( + filter: ui.ImageFilter.blur( + sigmaX: 10.0, + sigmaY: 10.0, + ), + child: Container( + height: barHeight, + color: backgroundColor, + child: chewieController.isLive + ? Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + _buildPlayPause(controller, iconColor, barHeight), + _buildLive(iconColor), + ], + ) + : Row( + children: [ + _buildSkipBack(iconColor, barHeight), + _buildPlayPause(controller, iconColor, barHeight), + _buildSkipForward(iconColor, barHeight), + _buildPosition(iconColor), + _buildProgressBar(), + _buildRemaining(iconColor) + ], + ), + + ), + ), + ), + ), + ); + } + + Widget _buildLive(Color iconColor) { + return Padding( + padding: EdgeInsets.only(right: 12.0), + child: Text( + 'LIVE', + style: TextStyle(color: iconColor, fontSize: 12.0), + ), + ); + } + + GestureDetector _buildExpandButton( + Color backgroundColor, + Color iconColor, + double barHeight, + double buttonPadding, + ) { + return GestureDetector( + onTap: _onExpandCollapse, + child: AnimatedOpacity( + opacity: _hideStuff ? 0.0 : 1.0, + duration: Duration(milliseconds: 300), + child: ClipRRect( + borderRadius: BorderRadius.circular(10.0), + child: BackdropFilter( + filter: ui.ImageFilter.blur(sigmaX: 10.0), + child: Container( + height: barHeight, + padding: EdgeInsets.only( + left: buttonPadding, + right: buttonPadding, + ), + color: backgroundColor, + child: Center( + child: Icon( + chewieController.isFullScreen + ? OpenIconicIcons.fullscreenExit + : OpenIconicIcons.fullscreenEnter, + color: iconColor, + size: 12.0, + ), + ), + ), + ), + ), + ), + ); + } + + Expanded _buildHitArea() { + return Expanded( + child: GestureDetector( + onTap: _latestValue != null && _latestValue.isPlaying + ? _cancelAndRestartTimer + : () { + _hideTimer?.cancel(); + + setState(() { + _hideStuff = false; + }); + }, + child: Container( + color: Colors.transparent, + ), + ), + ); + } + + GestureDetector _buildMuteButton( + VideoPlayerController controller, + Color backgroundColor, + Color iconColor, + double barHeight, + double buttonPadding, + ) { + return GestureDetector( + onTap: () { + _cancelAndRestartTimer(); + + if (_latestValue.volume == 0) { + controller.setVolume(_latestVolume ?? 0.5); + } else { + _latestVolume = controller.value.volume; + controller.setVolume(0.0); + } + }, + child: AnimatedOpacity( + opacity: _hideStuff ? 0.0 : 1.0, + duration: Duration(milliseconds: 300), + child: ClipRRect( + borderRadius: BorderRadius.circular(10.0), + child: BackdropFilter( + filter: ui.ImageFilter.blur(sigmaX: 10.0), + child: Container( + color: backgroundColor, + child: Container( + height: barHeight, + padding: EdgeInsets.only( + left: buttonPadding, + right: buttonPadding, + ), + child: Icon( + (_latestValue != null && _latestValue.volume > 0) + ? Icons.volume_up + : Icons.volume_off, + color: iconColor, + size: 16.0, + ), + ), + ), + ), + ), + ), + ); + } + + GestureDetector _buildPlayPause( + VideoPlayerController controller, + Color iconColor, + double barHeight, + ) { + return GestureDetector( + onTap: _playPause, + child: Container( + height: barHeight, + color: Colors.transparent, + padding: EdgeInsets.only( + left: 6.0, + right: 6.0, + ), + child: Icon( + controller.value.isPlaying + ? OpenIconicIcons.mediaPause + : OpenIconicIcons.mediaPlay, + color: iconColor, + size: 16.0, + ), + ), + ); + } + + Widget _buildPosition(Color iconColor) { + final position = + _latestValue != null ? _latestValue.position : Duration(seconds: 0); + + return Padding( + padding: EdgeInsets.only(right: 12.0), + child: Text( + formatDuration(position), + style: TextStyle( + color: iconColor, + fontSize: 12.0, + ), + ), + ); + } + + Widget _buildRemaining(Color iconColor) { + final position = _latestValue != null && _latestValue.duration != null + ? _latestValue.duration - _latestValue.position + : Duration(seconds: 0); + + return Padding( + padding: EdgeInsets.only(right: 12.0), + child: Text( + '-${formatDuration(position)}', + style: TextStyle(color: iconColor, fontSize: 12.0), + ), + ); + } + + GestureDetector _buildSkipBack(Color iconColor, double barHeight) { + return GestureDetector( + onTap: _skipBack, + child: Container( + height: barHeight, + color: Colors.transparent, + margin: EdgeInsets.only(left: 10.0), + padding: EdgeInsets.only( + left: 6.0, + right: 6.0, + ), + child: Transform( + alignment: Alignment.center, + transform: Matrix4.skewY(0.0) + ..rotateX(math.pi) + ..rotateZ(math.pi), + child: Icon( + OpenIconicIcons.reload, + color: iconColor, + size: 12.0, + ), + ), + ), + ); + } + + GestureDetector _buildSkipForward(Color iconColor, double barHeight) { + return GestureDetector( + onTap: _skipForward, + child: Container( + height: barHeight, + color: Colors.transparent, + padding: EdgeInsets.only( + left: 6.0, + right: 8.0, + ), + margin: EdgeInsets.only( + right: 8.0, + ), + child: Icon( + OpenIconicIcons.reload, + color: iconColor, + size: 12.0, + ), + ), + ); + } + + Widget _buildTopBar( + Color backgroundColor, + Color iconColor, + double barHeight, + double buttonPadding, + ) { + return Container( + height: barHeight, + margin: EdgeInsets.only( + top: marginSize, + right: marginSize, + left: marginSize, + ), + child: Row( + children: [ + chewieController.allowFullScreen + ? _buildExpandButton( + backgroundColor, iconColor, barHeight, buttonPadding) + : Container(), + Expanded(child: Container()), + chewieController.allowMuting + ? _buildMuteButton(controller, backgroundColor, iconColor, + barHeight, buttonPadding) + : Container(), + ], + ), + ); + } + + void _cancelAndRestartTimer() { + _hideTimer?.cancel(); + + setState(() { + _hideStuff = false; + + _startHideTimer(); + }); + } + + Future _initialize() async { + controller.addListener(_updateState); + + _updateState(); + + if ((controller.value != null && controller.value.isPlaying) || + chewieController.autoPlay) { + _startHideTimer(); + } + + if (chewieController.showControlsOnInitialize) { + _initTimer = Timer(Duration(milliseconds: 200), () { + setState(() { + _hideStuff = false; + }); + }); + } + } + + void _onExpandCollapse() { + setState(() { + _hideStuff = true; + + chewieController.toggleFullScreen(); + _expandCollapseTimer = Timer(Duration(milliseconds: 300), () { + setState(() { + _cancelAndRestartTimer(); + }); + }); + }); + } + + Widget _buildProgressBar() { + return Expanded( + child: Padding( + padding: EdgeInsets.only(right: 12.0), + child: CupertinoVideoProgressBar( + controller, + onDragStart: () { + _hideTimer?.cancel(); + }, + onDragEnd: () { + _startHideTimer(); + }, + colors: chewieController.cupertinoProgressColors ?? + ChewieProgressColors( + playedColor: Color.fromARGB( + 120, + 255, + 255, + 255, + ), + handleColor: Color.fromARGB( + 255, + 255, + 255, + 255, + ), + bufferedColor: Color.fromARGB( + 60, + 255, + 255, + 255, + ), + backgroundColor: Color.fromARGB( + 20, + 255, + 255, + 255, + ), + ), + ), + ), + ); + } + + void _playPause() { + setState(() { + if (controller.value.isPlaying) { + _hideStuff = false; + _hideTimer?.cancel(); + controller.pause(); + } else { + _cancelAndRestartTimer(); + + if (!controller.value.initialized) { + controller.initialize().then((_) { + controller.play(); + }); + } else { + controller.play(); + } + } + }); + } + + void _skipBack() { + _cancelAndRestartTimer(); + final beginning = Duration(seconds: 0).inMilliseconds; + final skip = (_latestValue.position - Duration(seconds: 15)).inMilliseconds; + controller.seekTo(Duration(milliseconds: math.max(skip, beginning))); + } + + void _skipForward() { + _cancelAndRestartTimer(); + final end = _latestValue.duration.inMilliseconds; + final skip = (_latestValue.position + Duration(seconds: 15)).inMilliseconds; + controller.seekTo(Duration(milliseconds: math.min(skip, end))); + } + + void _startHideTimer() { + _hideTimer = Timer(const Duration(seconds: 3), () { + setState(() { + _hideStuff = true; + }); + }); + } + + void _updateState() { + setState(() { + _latestValue = controller.value; + }); + } +} diff --git a/lib/widgets/video_player/widgets/chewie/cupertino_progress_bar.dart b/lib/widgets/video_player/widgets/chewie/cupertino_progress_bar.dart new file mode 100644 index 000000000..c083a9151 --- /dev/null +++ b/lib/widgets/video_player/widgets/chewie/cupertino_progress_bar.dart @@ -0,0 +1,188 @@ +import 'package:Okuna/widgets/video_player/widgets/chewie/chewie_progress_colors.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; +import 'package:video_player/video_player.dart'; + +class CupertinoVideoProgressBar extends StatefulWidget { + CupertinoVideoProgressBar( + this.controller, { + ChewieProgressColors colors, + this.onDragEnd, + this.onDragStart, + this.onDragUpdate, + }) : colors = colors ?? ChewieProgressColors(); + + final VideoPlayerController controller; + final ChewieProgressColors colors; + final Function() onDragStart; + final Function() onDragEnd; + final Function() onDragUpdate; + + @override + _VideoProgressBarState createState() { + return _VideoProgressBarState(); + } +} + +class _VideoProgressBarState extends State { + _VideoProgressBarState() { + listener = () { + setState(() {}); + }; + } + + VoidCallback listener; + bool _controllerWasPlaying = false; + + VideoPlayerController get controller => widget.controller; + + @override + void initState() { + super.initState(); + controller.addListener(listener); + } + + @override + void deactivate() { + controller.removeListener(listener); + super.deactivate(); + } + + @override + Widget build(BuildContext context) { + void seekToRelativePosition(Offset globalPosition) { + final box = context.findRenderObject() as RenderBox; + final Offset tapPos = box.globalToLocal(globalPosition); + final double relative = tapPos.dx / box.size.width; + final Duration position = controller.value.duration * relative; + controller.seekTo(position); + } + + return GestureDetector( + child: Center( + child: Container( + height: MediaQuery.of(context).size.height, + width: MediaQuery.of(context).size.width, + color: Colors.transparent, + child: CustomPaint( + painter: _ProgressBarPainter( + controller.value, + widget.colors, + ), + ), + ), + ), + onHorizontalDragStart: (DragStartDetails details) { + if (!controller.value.initialized) { + return; + } + _controllerWasPlaying = controller.value.isPlaying; + if (_controllerWasPlaying) { + controller.pause(); + } + + if (widget.onDragStart != null) { + widget.onDragStart(); + } + }, + onHorizontalDragUpdate: (DragUpdateDetails details) { + if (!controller.value.initialized) { + return; + } + seekToRelativePosition(details.globalPosition); + + if (widget.onDragUpdate != null) { + widget.onDragUpdate(); + } + }, + onHorizontalDragEnd: (DragEndDetails details) { + if (_controllerWasPlaying) { + controller.play(); + } + + if (widget.onDragEnd != null) { + widget.onDragEnd(); + } + }, + onTapDown: (TapDownDetails details) { + if (!controller.value.initialized) { + return; + } + seekToRelativePosition(details.globalPosition); + }, + ); + } +} + +class _ProgressBarPainter extends CustomPainter { + _ProgressBarPainter(this.value, this.colors); + + VideoPlayerValue value; + ChewieProgressColors colors; + + @override + bool shouldRepaint(CustomPainter painter) { + return true; + } + + @override + void paint(Canvas canvas, Size size) { + final barHeight = 5.0; + final handleHeight = 6.0; + final baseOffset = size.height / 2 - barHeight / 2.0; + + canvas.drawRRect( + RRect.fromRectAndRadius( + Rect.fromPoints( + Offset(0.0, baseOffset), + Offset(size.width, baseOffset + barHeight), + ), + Radius.circular(4.0), + ), + colors.backgroundPaint, + ); + if (!value.initialized) { + return; + } + final double playedPartPercent = + value.position.inMilliseconds / value.duration.inMilliseconds; + final double playedPart = + playedPartPercent > 1 ? size.width : playedPartPercent * size.width; + for (DurationRange range in value.buffered) { + final double start = range.startFraction(value.duration) * size.width; + final double end = range.endFraction(value.duration) * size.width; + canvas.drawRRect( + RRect.fromRectAndRadius( + Rect.fromPoints( + Offset(start, baseOffset), + Offset(end, baseOffset + barHeight), + ), + Radius.circular(4.0), + ), + colors.bufferedPaint, + ); + } + canvas.drawRRect( + RRect.fromRectAndRadius( + Rect.fromPoints( + Offset(0.0, baseOffset), + Offset(playedPart, baseOffset + barHeight), + ), + Radius.circular(4.0), + ), + colors.playedPaint, + ); + + final shadowPath = Path() + ..addOval(Rect.fromCircle( + center: Offset(playedPart, baseOffset + barHeight / 2), + radius: handleHeight)); + + canvas.drawShadow(shadowPath, Colors.black, 0.2, false); + canvas.drawCircle( + Offset(playedPart, baseOffset + barHeight / 2), + handleHeight, + colors.handlePaint, + ); + } +} diff --git a/lib/widgets/video_player/widgets/chewie/material_controls.dart b/lib/widgets/video_player/widgets/chewie/material_controls.dart new file mode 100644 index 000000000..104352ce2 --- /dev/null +++ b/lib/widgets/video_player/widgets/chewie/material_controls.dart @@ -0,0 +1,376 @@ +import 'dart:async'; + +import 'package:Okuna/widgets/video_player/widgets/chewie/chewie_player.dart'; +import 'package:Okuna/widgets/video_player/widgets/chewie/chewie_progress_colors.dart'; +import 'package:Okuna/widgets/video_player/widgets/chewie/material_progress_bar.dart'; +import 'package:Okuna/widgets/video_player/widgets/chewie/utils.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:video_player/video_player.dart'; + +class MaterialControls extends StatefulWidget { + const MaterialControls({Key key}) : super(key: key); + + @override + State createState() { + return _MaterialControlsState(); + } +} + +class _MaterialControlsState extends State { + VideoPlayerValue _latestValue; + double _latestVolume; + bool _hideStuff = true; + Timer _hideTimer; + Timer _initTimer; + Timer _showAfterExpandCollapseTimer; + bool _dragging = false; + + final barHeight = 48.0; + final marginSize = 5.0; + + VideoPlayerController controller; + ChewieController chewieController; + + @override + Widget build(BuildContext context) { + if (_latestValue.hasError) { + return chewieController.errorBuilder != null + ? chewieController.errorBuilder( + context, + chewieController.videoPlayerController.value.errorDescription, + ) + : Center( + child: Icon( + Icons.error, + color: Colors.white, + size: 42, + ), + ); + } + + return GestureDetector( + onTap: () => _cancelAndRestartTimer(), + child: AbsorbPointer( + absorbing: _hideStuff, + child: Column( + children: [ + _latestValue != null && + !_latestValue.isPlaying && + _latestValue.duration == null || + _latestValue.isBuffering + ? const Expanded( + child: const Center( + child: const CircularProgressIndicator(), + ), + ) + : _buildHitArea(), + _buildBottomBar(context), + ], + ), + ), + ); + } + + @override + void dispose() { + _dispose(); + super.dispose(); + } + + void _dispose() { + controller.removeListener(_updateState); + _hideTimer?.cancel(); + _initTimer?.cancel(); + _showAfterExpandCollapseTimer?.cancel(); + } + + @override + void didChangeDependencies() { + final _oldController = chewieController; + chewieController = ChewieController.of(context); + controller = chewieController.videoPlayerController; + + if (_oldController != chewieController) { + _dispose(); + _initialize(); + } + + super.didChangeDependencies(); + } + + AnimatedOpacity _buildBottomBar( + BuildContext context, + ) { + final iconColor = Theme.of(context).textTheme.button.color; + + return AnimatedOpacity( + opacity: _hideStuff ? 0.0 : 1.0, + duration: Duration(milliseconds: 300), + child: Container( + height: barHeight, + color: Theme.of(context).dialogBackgroundColor, + child: Row( + children: [ + _buildPlayPause(controller), + chewieController.isLive + ? Expanded(child: const Text('LIVE')) + : _buildPosition(iconColor), + chewieController.isLive ? const SizedBox() : _buildProgressBar(), + chewieController.allowMuting + ? _buildMuteButton(controller) + : Container(), + chewieController.allowFullScreen + ? _buildExpandButton() + : Container(), + ], + ), + ), + ); + } + + GestureDetector _buildExpandButton() { + return GestureDetector( + onTap: _onExpandCollapse, + child: AnimatedOpacity( + opacity: _hideStuff ? 0.0 : 1.0, + duration: Duration(milliseconds: 300), + child: Container( + height: barHeight, + margin: EdgeInsets.only(right: 12.0), + padding: EdgeInsets.only( + left: 8.0, + right: 8.0, + ), + child: Center( + child: Icon( + chewieController.isFullScreen + ? Icons.fullscreen_exit + : Icons.fullscreen, + ), + ), + ), + ), + ); + } + + Expanded _buildHitArea() { + return Expanded( + child: GestureDetector( + onTap: _latestValue != null && _latestValue.isPlaying + ? _cancelAndRestartTimer + : () { + _playPause(); + + setState(() { + _hideStuff = true; + }); + }, + child: Container( + color: Colors.transparent, + child: Center( + child: AnimatedOpacity( + opacity: + _latestValue != null && !_latestValue.isPlaying && !_dragging + ? 1.0 + : 0.0, + duration: Duration(milliseconds: 300), + child: GestureDetector( + child: Container( + decoration: BoxDecoration( + color: Theme.of(context).dialogBackgroundColor, + borderRadius: BorderRadius.circular(48.0), + ), + child: Padding( + padding: EdgeInsets.all(12.0), + child: Icon(Icons.play_arrow, size: 32.0), + ), + ), + ), + ), + ), + ), + ), + ); + } + + GestureDetector _buildMuteButton( + VideoPlayerController controller, + ) { + return GestureDetector( + onTap: () { + _cancelAndRestartTimer(); + + if (_latestValue.volume == 0) { + controller.setVolume(_latestVolume ?? 0.5); + } else { + _latestVolume = controller.value.volume; + controller.setVolume(0.0); + } + }, + child: AnimatedOpacity( + opacity: _hideStuff ? 0.0 : 1.0, + duration: Duration(milliseconds: 300), + child: ClipRect( + child: Container( + child: Container( + height: barHeight, + padding: EdgeInsets.only( + left: 8.0, + right: 8.0, + ), + child: Icon( + (_latestValue != null && _latestValue.volume > 0) + ? Icons.volume_up + : Icons.volume_off, + ), + ), + ), + ), + ), + ); + } + + GestureDetector _buildPlayPause(VideoPlayerController controller) { + return GestureDetector( + onTap: _playPause, + child: Container( + height: barHeight, + color: Colors.transparent, + margin: EdgeInsets.only(left: 8.0, right: 4.0), + padding: EdgeInsets.only( + left: 12.0, + right: 12.0, + ), + child: Icon( + controller.value.isPlaying ? Icons.pause : Icons.play_arrow, + ), + ), + ); + } + + Widget _buildPosition(Color iconColor) { + final position = _latestValue != null && _latestValue.position != null + ? _latestValue.position + : Duration.zero; + final duration = _latestValue != null && _latestValue.duration != null + ? _latestValue.duration + : Duration.zero; + + return Padding( + padding: EdgeInsets.only(right: 24.0), + child: Text( + '${formatDuration(position)} / ${formatDuration(duration)}', + style: TextStyle( + fontSize: 14.0, + ), + ), + ); + } + + void _cancelAndRestartTimer() { + _hideTimer?.cancel(); + _startHideTimer(); + + setState(() { + _hideStuff = false; + }); + } + + Future _initialize() async { + controller.addListener(_updateState); + + _updateState(); + + if ((controller.value != null && controller.value.isPlaying) || + chewieController.autoPlay) { + _startHideTimer(); + } + + if (chewieController.showControlsOnInitialize) { + _initTimer = Timer(Duration(milliseconds: 200), () { + setState(() { + _hideStuff = false; + }); + }); + } + } + + void _onExpandCollapse() { + setState(() { + _hideStuff = true; + + chewieController.toggleFullScreen(); + _showAfterExpandCollapseTimer = Timer(Duration(milliseconds: 300), () { + setState(() { + _cancelAndRestartTimer(); + }); + }); + }); + } + + void _playPause() { + setState(() { + if (controller.value.isPlaying) { + _hideStuff = false; + _hideTimer?.cancel(); + controller.pause(); + } else { + _cancelAndRestartTimer(); + + if (!controller.value.initialized) { + controller.initialize().then((_) { + controller.play(); + }); + } else { + controller.play(); + } + } + }); + } + + void _startHideTimer() { + _hideTimer = Timer(const Duration(seconds: 3), () { + setState(() { + _hideStuff = true; + }); + }); + } + + void _updateState() { + setState(() { + _latestValue = controller.value; + }); + } + + Widget _buildProgressBar() { + return Expanded( + child: Padding( + padding: EdgeInsets.only(right: 20.0), + child: MaterialVideoProgressBar( + controller, + onDragStart: () { + setState(() { + _dragging = true; + }); + + _hideTimer?.cancel(); + }, + onDragEnd: () { + setState(() { + _dragging = false; + }); + + _startHideTimer(); + }, + colors: chewieController.materialProgressColors ?? + ChewieProgressColors( + playedColor: Theme.of(context).accentColor, + handleColor: Theme.of(context).accentColor, + bufferedColor: Theme.of(context).backgroundColor, + backgroundColor: Theme.of(context).disabledColor), + ), + ), + ); + } +} diff --git a/lib/widgets/video_player/widgets/chewie/material_progress_bar.dart b/lib/widgets/video_player/widgets/chewie/material_progress_bar.dart new file mode 100644 index 000000000..b5a0b2fa7 --- /dev/null +++ b/lib/widgets/video_player/widgets/chewie/material_progress_bar.dart @@ -0,0 +1,179 @@ +import 'package:Okuna/widgets/video_player/widgets/chewie/chewie_progress_colors.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; +import 'package:video_player/video_player.dart'; + +class MaterialVideoProgressBar extends StatefulWidget { + MaterialVideoProgressBar( + this.controller, { + ChewieProgressColors colors, + this.onDragEnd, + this.onDragStart, + this.onDragUpdate, + }) : colors = colors ?? ChewieProgressColors(); + + final VideoPlayerController controller; + final ChewieProgressColors colors; + final Function() onDragStart; + final Function() onDragEnd; + final Function() onDragUpdate; + + @override + _VideoProgressBarState createState() { + return _VideoProgressBarState(); + } +} + +class _VideoProgressBarState extends State { + _VideoProgressBarState() { + listener = () { + setState(() {}); + }; + } + + VoidCallback listener; + bool _controllerWasPlaying = false; + + VideoPlayerController get controller => widget.controller; + + @override + void initState() { + super.initState(); + controller.addListener(listener); + } + + @override + void deactivate() { + controller.removeListener(listener); + super.deactivate(); + } + + @override + Widget build(BuildContext context) { + void seekToRelativePosition(Offset globalPosition) { + final box = context.findRenderObject() as RenderBox; + final Offset tapPos = box.globalToLocal(globalPosition); + final double relative = tapPos.dx / box.size.width; + final Duration position = controller.value.duration * relative; + controller.seekTo(position); + } + + return GestureDetector( + child: Center( + child: Container( + height: MediaQuery.of(context).size.height / 2, + width: MediaQuery.of(context).size.width, + color: Colors.transparent, + child: CustomPaint( + painter: _ProgressBarPainter( + controller.value, + widget.colors, + ), + ), + ), + ), + onHorizontalDragStart: (DragStartDetails details) { + if (!controller.value.initialized) { + return; + } + _controllerWasPlaying = controller.value.isPlaying; + if (_controllerWasPlaying) { + controller.pause(); + } + + if (widget.onDragStart != null) { + widget.onDragStart(); + } + }, + onHorizontalDragUpdate: (DragUpdateDetails details) { + if (!controller.value.initialized) { + return; + } + seekToRelativePosition(details.globalPosition); + + if (widget.onDragUpdate != null) { + widget.onDragUpdate(); + } + }, + onHorizontalDragEnd: (DragEndDetails details) { + if (_controllerWasPlaying) { + controller.play(); + } + + if (widget.onDragEnd != null) { + widget.onDragEnd(); + } + }, + onTapDown: (TapDownDetails details) { + if (!controller.value.initialized) { + return; + } + seekToRelativePosition(details.globalPosition); + }, + ); + } +} + +class _ProgressBarPainter extends CustomPainter { + _ProgressBarPainter(this.value, this.colors); + + VideoPlayerValue value; + ChewieProgressColors colors; + + @override + bool shouldRepaint(CustomPainter painter) { + return true; + } + + @override + void paint(Canvas canvas, Size size) { + final height = 2.0; + + canvas.drawRRect( + RRect.fromRectAndRadius( + Rect.fromPoints( + Offset(0.0, size.height / 2), + Offset(size.width, size.height / 2 + height), + ), + Radius.circular(4.0), + ), + colors.backgroundPaint, + ); + if (!value.initialized) { + return; + } + final double playedPartPercent = + value.position.inMilliseconds / value.duration.inMilliseconds; + final double playedPart = + playedPartPercent > 1 ? size.width : playedPartPercent * size.width; + for (DurationRange range in value.buffered) { + final double start = range.startFraction(value.duration) * size.width; + final double end = range.endFraction(value.duration) * size.width; + canvas.drawRRect( + RRect.fromRectAndRadius( + Rect.fromPoints( + Offset(start, size.height / 2), + Offset(end, size.height / 2 + height), + ), + Radius.circular(4.0), + ), + colors.bufferedPaint, + ); + } + canvas.drawRRect( + RRect.fromRectAndRadius( + Rect.fromPoints( + Offset(0.0, size.height / 2), + Offset(playedPart, size.height / 2 + height), + ), + Radius.circular(4.0), + ), + colors.playedPaint, + ); + canvas.drawCircle( + Offset(playedPart, size.height / 2 + height / 2), + height * 3, + colors.handlePaint, + ); + } +} diff --git a/lib/widgets/video_player/widgets/chewie/player_with_controls.dart b/lib/widgets/video_player/widgets/chewie/player_with_controls.dart new file mode 100644 index 000000000..0dde6055d --- /dev/null +++ b/lib/widgets/video_player/widgets/chewie/player_with_controls.dart @@ -0,0 +1,91 @@ +import 'dart:ui'; + +import 'package:Okuna/widgets/video_player/widgets/chewie/chewie_player.dart'; +import 'package:Okuna/widgets/video_player/widgets/chewie/cupertino_controls.dart'; +import 'package:Okuna/widgets/video_player/widgets/chewie/material_controls.dart'; +import 'package:flutter/foundation.dart'; +import 'package:flutter/material.dart'; +import 'package:video_player/video_player.dart'; + +class PlayerWithControls extends StatelessWidget { + final height; + final width; + final bool isConstrained; + + const PlayerWithControls( + {Key key, this.height, this.width, this.isConstrained = false}) + : super(key: key); + + @override + Widget build(BuildContext context) { + final ChewieController chewieController = ChewieController.of(context); + + return Center( + child: Container( + width: MediaQuery.of(context).size.width, + child: _buildPlayerWithControls(chewieController, context)), + ); + } + + Container _buildPlayerWithControls( + ChewieController chewieController, BuildContext context) { + double containerWidth = width ?? MediaQuery.of(context).size.width; + bool hasHeight = height != null; + + double aspectRatio = + chewieController.aspectRatio ?? _calculateAspectRatio(context); + + double containerHeight = (containerWidth / aspectRatio); + + Widget videoWidget = Hero( + tag: chewieController.videoPlayerController, + child: AspectRatio( + aspectRatio: aspectRatio, + child: VideoPlayer(chewieController.videoPlayerController))); + + return Container( + height: height ?? null, + child: Stack( + children: [ + chewieController.placeholder ?? const SizedBox(), + hasHeight && isConstrained + ? Positioned( + top: -((containerHeight - height) / 2), + height: containerHeight, + width: containerWidth, + child: videoWidget, + ) + : Center( + child: videoWidget, + ), + chewieController.overlay ?? Container(), + _buildControls(context, chewieController), + ], + ), + ); + } + + Widget _buildControls( + BuildContext context, + ChewieController chewieController, + ) { + return chewieController.showControls + ? chewieController.customControls != null + ? chewieController.customControls + : Theme.of(context).platform == TargetPlatform.android + ? MaterialControls() + : CupertinoControls( + backgroundColor: Color.fromRGBO(41, 41, 41, 0.7), + iconColor: Color.fromARGB(255, 200, 200, 200), + ) + : Container(); + } + + double _calculateAspectRatio(BuildContext context) { + final size = MediaQuery.of(context).size; + final width = size.width; + final height = size.height; + + return width > height ? width / height : height / width; + } +} diff --git a/lib/widgets/video_player/widgets/chewie/utils.dart b/lib/widgets/video_player/widgets/chewie/utils.dart new file mode 100644 index 000000000..f1b216fa8 --- /dev/null +++ b/lib/widgets/video_player/widgets/chewie/utils.dart @@ -0,0 +1,22 @@ +String formatDuration(Duration position) { + final ms = position.inMilliseconds; + + int seconds = ms ~/ 1000; + final int hours = seconds ~/ 3600; + seconds = seconds % 3600; + var minutes = seconds ~/ 60; + seconds = seconds % 60; + + final hoursString = hours >= 10 ? '$hours' : hours == 0 ? '00' : '0$hours'; + + final minutesString = + minutes >= 10 ? '$minutes' : minutes == 0 ? '00' : '0$minutes'; + + final secondsString = + seconds >= 10 ? '$seconds' : seconds == 0 ? '00' : '0$seconds'; + + final formattedTime = + '${hoursString == '00' ? '' : hoursString + ':'}$minutesString:$secondsString'; + + return formattedTime; +} diff --git a/lib/widgets/video_player/widgets/utils.dart b/lib/widgets/video_player/widgets/utils.dart new file mode 100755 index 000000000..f2d1ab2c9 --- /dev/null +++ b/lib/widgets/video_player/widgets/utils.dart @@ -0,0 +1,22 @@ +String formatDuration(Duration position) { + final ms = position.inMilliseconds; + + int seconds = ms ~/ 1000; + final int hours = seconds ~/ 3600; + seconds = seconds % 3600; + var minutes = seconds ~/ 60; + seconds = seconds % 60; + + final hoursString = hours >= 10 ? '$hours' : hours == 0 ? '00' : '0$hours'; + + final minutesString = + minutes >= 10 ? '$minutes' : minutes == 0 ? '00' : '0$minutes'; + + final secondsString = + seconds >= 10 ? '$seconds' : seconds == 0 ? '00' : '0$seconds'; + + final formattedTime = '${hoursString == '00' ? '' : hoursString + + ':'}$minutesString:$secondsString'; + + return formattedTime; +} diff --git a/lib/widgets/video_player/widgets/video_player_controls.dart b/lib/widgets/video_player/widgets/video_player_controls.dart new file mode 100644 index 000000000..5c8e610c6 --- /dev/null +++ b/lib/widgets/video_player/widgets/video_player_controls.dart @@ -0,0 +1,499 @@ +import 'dart:async'; + +import 'package:Okuna/models/theme.dart'; +import 'package:Okuna/provider.dart'; +import 'package:Okuna/widgets/progress_indicator.dart'; +import 'package:Okuna/widgets/video_player/widgets/chewie/chewie_player.dart'; +import 'package:Okuna/widgets/video_player/widgets/chewie/chewie_progress_colors.dart'; +import 'package:Okuna/widgets/video_player/widgets/chewie/material_progress_bar.dart'; +import 'package:Okuna/widgets/video_player/widgets/chewie/utils.dart'; +import 'package:flutter/material.dart'; +import 'package:video_player/video_player.dart'; + +class OBVideoPlayerControls extends StatefulWidget { + final Function(Function) onExpandCollapse; + final Function(Function) onPause; + final Function(Function) onPlay; + final Function(Function) onMute; + final Function(Function) onUnmute; + final OBVideoPlayerControlsController controller; + + const OBVideoPlayerControls( + {Key key, + this.onExpandCollapse, + this.controller, + this.onMute, + this.onUnmute, + this.onPause, + this.onPlay}) + : super(key: key); + + @override + State createState() { + return OBVideoPlayerControlsState(); + } +} + +class OBVideoPlayerControlsState extends State { + VideoPlayerValue _latestValue; + double _latestVolume; + bool _hideStuff = true; + Timer _hideTimer; + Timer _initTimer; + Timer _showAfterExpandCollapseTimer; + bool _dragging = false; + bool _isDismissable; + + final barHeight = 48.0; + final marginSize = 5.0; + + VideoPlayerController controller; + ChewieController chewieController; + + @override + Widget build(BuildContext context) { + Widget mainWidget; + + bool isLoading = _latestValue != null && + !_latestValue.isPlaying && + _latestValue.duration == null || + _latestValue != null && _latestValue.isBuffering; + + bool hasError = _latestValue != null && _latestValue.hasError; + + if (isLoading) { + mainWidget = Expanded( + child: Center( + child: OBProgressIndicator( + color: Colors.white, + ), + ), + ); + } else if (hasError) { + mainWidget = chewieController.errorBuilder != null + ? chewieController.errorBuilder( + context, + chewieController.videoPlayerController.value.errorDescription, + ) + : Center( + child: Icon( + Icons.error, + color: Colors.white, + size: 42, + ), + ); + } else { + mainWidget = _buildHitArea(); + } + + return Stack(children: [ + new AnimatedOpacity( + opacity: _hideStuff ? 0.0 : 1.0, + duration: new Duration(milliseconds: 300), + child: new Container( + color: Colors.black38, + ), + ), + new Column( + children: [ + mainWidget, + _buildBottomBar(context, controller), + ], + ), + _hideStuff || !_isDismissable + ? new Container() + : new IconButton( + icon: new Icon( + Icons.close, + color: Colors.white, + ), + onPressed: () async { + print("pressed true"); + controller.pause(); + Navigator.pop(context); + }, + ), + ]); + } + + @override + void initState() { + super.initState(); + _isDismissable = false; + if (widget.controller != null) widget.controller.attach(this); + } + + @override + void dispose() { + _dispose(); + super.dispose(); + } + + void _dispose() { + controller.removeListener(_updateState); + _hideTimer?.cancel(); + _initTimer?.cancel(); + _showAfterExpandCollapseTimer?.cancel(); + } + + @override + void didChangeDependencies() { + final _oldController = chewieController; + chewieController = ChewieController.of(context); + controller = chewieController.videoPlayerController; + + if (_oldController != chewieController) { + _dispose(); + _initialize(); + } + + super.didChangeDependencies(); + } + + AnimatedOpacity _buildBottomBar( + BuildContext context, + VideoPlayerController controller, + ) { + return new AnimatedOpacity( + opacity: _hideStuff ? 0.0 : 1.0, + duration: new Duration(milliseconds: 300), + child: new Container( + height: barHeight, + color: Colors.transparent, + child: new Row( + children: [ + _buildPlayPause(controller), + _buildPosition(Colors.white), + _buildProgressBar(), + _buildMuteButton(controller), + chewieController.allowFullScreen + ? _buildExpandButton() + : const SizedBox(), + ], + ), + ), + ); + } + + GestureDetector _buildExpandButton() { + return new GestureDetector( + onTap: widget.onExpandCollapse != null + ? () { + widget.onExpandCollapse(_onExpandCollapse); + } + : _onExpandCollapse, + child: new AnimatedOpacity( + opacity: _hideStuff ? 0.0 : 1.0, + duration: new Duration(milliseconds: 300), + child: new Container( + height: barHeight, + margin: new EdgeInsets.only(right: 12.0), + padding: new EdgeInsets.only( + left: 8.0, + right: 8.0, + ), + child: new Center( + child: new Icon( + chewieController.isFullScreen + ? Icons.fullscreen_exit + : Icons.fullscreen, + color: Colors.white, + ), + ), + ), + ), + ); + } + + Expanded _buildHitArea() { + return new Expanded( + child: new GestureDetector( + onTap: _latestValue != null && _latestValue.isPlaying + ? () { + _playPause(); + //_cancelAndRestartTimer; + setState(() { + _hideStuff = false; + }); + } + : () { + _playPause(); + setState(() { + _hideStuff = true; + }); + }, + child: new Container( + color: Colors.transparent, + child: new Center( + child: new AnimatedOpacity( + opacity: + _latestValue != null && !_latestValue.isPlaying && !_dragging + ? 1.0 + : 0.0, + duration: new Duration(milliseconds: 300), + child: new GestureDetector( + child: new Container( + decoration: new BoxDecoration( + color: Colors.transparent, + borderRadius: new BorderRadius.circular(48.0), + ), + child: new Padding( + padding: new EdgeInsets.only(top: 30.0), + child: new Icon( + Icons.play_arrow, + size: 50.0, + color: Colors.white, + ), + ), + ), + ), + ), + ), + ), + ), + ); + } + + GestureDetector _buildMuteButton( + VideoPlayerController controller, + ) { + return new GestureDetector( + onTap: () { + _cancelAndRestartTimer(); + + if (_latestValue.volume == 0) { + if (widget.onUnmute != null) { + widget.onUnmute(_unMute); + } else { + _unMute(); + } + } else { + if (widget.onMute != null) { + widget.onMute(_mute); + } else { + _mute(); + } + } + }, + child: new AnimatedOpacity( + opacity: _hideStuff ? 0.0 : 1.0, + duration: new Duration(milliseconds: 300), + child: new ClipRect( + child: new Container( + child: new Container( + height: barHeight, + padding: new EdgeInsets.only( + left: 8.0, + right: 8.0, + ), + child: new Icon( + (_latestValue != null && _latestValue.volume > 0) + ? Icons.volume_up + : Icons.volume_off, + color: Colors.white, + ), + ), + ), + ), + ), + ); + } + + void _mute() { + _latestVolume = controller.value.volume; + controller.setVolume(0.0); + } + + void _unMute() { + controller.setVolume(_latestVolume ?? 0.5); + } + + GestureDetector _buildPlayPause(VideoPlayerController controller) { + return new GestureDetector( + onTap: _playPause, + child: new Container( + height: barHeight, + color: Colors.transparent, + margin: new EdgeInsets.only(left: 8.0, right: 8.0), + ), + ); + } + + Widget _buildPosition(Color iconColor) { + final position = _latestValue != null && _latestValue.position != null + ? _latestValue.position + : Duration.zero; + final duration = _latestValue != null && _latestValue.duration != null + ? _latestValue.duration + : Duration.zero; + + return new Padding( + padding: new EdgeInsets.only(right: 24.0), + child: new Text( + '${formatDuration(position)} / ${formatDuration(duration)}', + style: new TextStyle( + fontSize: 14.0, + color: Colors.white, + ), + ), + ); + } + + void _cancelAndRestartTimer() { + _hideTimer?.cancel(); + _startHideTimer(); + + setState(() { + _hideStuff = false; + }); + } + + Future _initialize() async { + controller.addListener(_updateState); + + _updateState(); + + if ((controller.value != null && controller.value.isPlaying) || + chewieController.autoPlay) { + _startHideTimer(); + } + + if (chewieController.showControlsOnInitialize) { + _initTimer = Timer(Duration(milliseconds: 200), () { + setState(() { + _hideStuff = false; + }); + }); + } + } + + void _onExpandCollapse() { + setState(() { + _hideStuff = true; + + chewieController.toggleFullScreen(); + _showAfterExpandCollapseTimer = Timer(Duration(milliseconds: 300), () { + setState(() { + _cancelAndRestartTimer(); + }); + }); + }); + } + + void _playPause() { + setState(() { + if (controller.value.isPlaying) { + if (widget.onPause != null) { + widget.onPause(_pause); + } else { + _pause(); + } + } else { + if (widget.onPlay != null) { + widget.onPlay(_play); + } else { + _play(); + } + } + }); + } + + void _pause() { + _hideStuff = false; + _hideTimer?.cancel(); + controller.pause(); + } + + void _play() { + _cancelAndRestartTimer(); + + if (!controller.value.initialized) { + controller.initialize().then((_) { + controller.play(); + }); + } else { + controller.play(); + } + } + + void _startHideTimer() { + _hideTimer = Timer(const Duration(seconds: 3), () { + setState(() { + _hideStuff = true; + }); + }); + } + + void _updateState() { + setState(() { + _latestValue = controller.value; + }); + } + + void setIsDismissible(bool isDismissible) { + debugLog('Setting isDismissible to ${isDismissible.toString()}'); + + setState(() { + _isDismissable = isDismissible; + }); + } + + Widget _buildProgressBar() { + OpenbookProviderState openbookProvider = OpenbookProvider.of(context); + OBTheme activeTheme = openbookProvider.themeService.getActiveTheme(); + + Color actionsForegroundColor = openbookProvider.themeValueParserService + .parseGradient(activeTheme.primaryAccentColor) + .colors[1]; + + return new Expanded( + child: new Padding( + padding: new EdgeInsets.only(right: 20.0), + child: MaterialVideoProgressBar( + controller, + onDragStart: () { + setState(() { + _dragging = true; + }); + + _hideTimer?.cancel(); + }, + onDragEnd: () { + setState(() { + _dragging = false; + }); + + _startHideTimer(); + }, + colors: ChewieProgressColors( + playedColor: actionsForegroundColor, + handleColor: actionsForegroundColor, + bufferedColor: Colors.grey, + backgroundColor: Colors.grey), + ), + ), + ); + } + + void debugLog(String log) { + debugPrint('OBVideoPlayerControls:$log'); + } +} + +class OBVideoPlayerControlsController { + OBVideoPlayerControlsState _state; + + OBVideoPlayerControlsController(); + + void attach(state) { + _state = state; + } + + void setIsDismissible(bool isDismissible) { + _state.setIsDismissible(isDismissible); + } + + void pop() { + Navigator.of(_state.context).pop(); + } +} diff --git a/lib/widgets/video_player/widgets/video_progress_bar.dart b/lib/widgets/video_player/widgets/video_progress_bar.dart new file mode 100755 index 000000000..e5a303ccd --- /dev/null +++ b/lib/widgets/video_player/widgets/video_progress_bar.dart @@ -0,0 +1,182 @@ +import 'package:Okuna/widgets/video_player/widgets/chewie/chewie_progress_colors.dart'; +import 'package:flutter/material.dart'; +import 'package:flutter/widgets.dart'; +import 'package:video_player/video_player.dart'; + +class OBVideoProgressBar extends StatefulWidget { + final VideoPlayerController controller; + final ChewieProgressColors colors; + + final Function() onDragStart; + final Function() onDragEnd; + final Function() onDragUpdate; + + OBVideoProgressBar( + this.controller, { + ChewieProgressColors colors, + this.onDragEnd, + this.onDragStart, + this.onDragUpdate, + }) : colors = colors ?? new ChewieProgressColors(); + + @override + _VideoProgressBarState createState() { + return new _VideoProgressBarState(); + } +} + +class _VideoProgressBarState extends State { + VoidCallback listener; + + bool _controllerWasPlaying = false; + + _VideoProgressBarState() { + listener = () { + setState(() {}); + }; + } + + VideoPlayerController get controller => widget.controller; + + @override + void initState() { + super.initState(); + controller.addListener(listener); + } + + @override + void deactivate() { + controller.removeListener(listener); + super.deactivate(); + } + + @override + Widget build(BuildContext context) { + void seekToRelativePosition(Offset globalPosition) { + final RenderBox box = context.findRenderObject(); + final Offset tapPos = box.globalToLocal(globalPosition); + final double relative = tapPos.dx / box.size.width; + final Duration position = controller.value.duration * relative; + controller.seekTo(position); + } + + return new GestureDetector( + child: (controller.value.hasError) + ? new Text(controller.value.errorDescription) + : new Center( + child: new Container( + height: MediaQuery.of(context).size.height / 2, + width: MediaQuery.of(context).size.width, + color: Colors.transparent, + child: new CustomPaint( + painter: new _ProgressBarPainter( + controller.value, + widget.colors, + ), + ), + ), + ), + onHorizontalDragStart: (DragStartDetails details) { + if (!controller.value.initialized) { + return; + } + _controllerWasPlaying = controller.value.isPlaying; + if (_controllerWasPlaying) { + controller.pause(); + } + + if (widget.onDragStart != null) { + widget.onDragStart(); + } + }, + onHorizontalDragUpdate: (DragUpdateDetails details) { + if (!controller.value.initialized) { + return; + } + seekToRelativePosition(details.globalPosition); + + if (widget.onDragUpdate != null) { + widget.onDragUpdate(); + } + }, + onHorizontalDragEnd: (DragEndDetails details) { + if (_controllerWasPlaying) { + controller.play(); + } + + if (widget.onDragEnd != null) { + widget.onDragEnd(); + } + }, + onTapDown: (TapDownDetails details) { + if (!controller.value.initialized) { + return; + } + seekToRelativePosition(details.globalPosition); + }, + ); + } +} + +class _ProgressBarPainter extends CustomPainter { + VideoPlayerValue value; + ChewieProgressColors colors; + + _ProgressBarPainter(this.value, this.colors); + + @override + bool shouldRepaint(CustomPainter painter) { + return true; + } + + @override + void paint(Canvas canvas, Size size) { + final height = 2.0; + + canvas.drawRRect( + new RRect.fromRectAndRadius( + new Rect.fromPoints( + new Offset(0.0, size.height / 2), + new Offset(size.width, size.height / 2 + height), + ), + new Radius.circular(4.0), + ), + colors.backgroundPaint, + ); + if (!value.initialized) { + return; + } + final double playedPart = value.position.inMilliseconds / + value.duration.inMilliseconds * + size.width; + for (DurationRange range in value.buffered) { + final double start = range.startFraction(value.duration) * size.width; + final double end = range.endFraction(value.duration) * size.width; + canvas.drawRRect( + new RRect.fromRectAndRadius( + new Rect.fromPoints( + new Offset(start, size.height / 2), + new Offset(end, size.height / 2 + height), + ), + new Radius.circular(4.0), + ), + colors.bufferedPaint, + ); + } + canvas.drawRRect( + new RRect.fromRectAndRadius( + new Rect.fromPoints( + new Offset(0.0, size.height / 2), + new Offset(playedPart, size.height / 2 + height), + ), + new Radius.circular(4.0), + ), + colors.playedPaint, + ); + canvas.drawCircle( + new Offset(playedPart, size.height / 2 + height / 2), + height * 3, + colors.handlePaint, + ); + } +} diff --git a/make.bat b/make.bat new file mode 100644 index 000000000..077b950a7 --- /dev/null +++ b/make.bat @@ -0,0 +1,50 @@ +@ECHO OFF + +REM Windows substitution for the Makefile and make command. + +setlocal enabledelayedexpansion + +IF "%1"=="run_prod" ( + flutter run --flavor production +) + +IF "%1"=="run_dev" ( + flutter run --flavor development +) + +IF "%1"=="build_prod" ( + flutter build --flavor production +) + +IF "%1"=="build_ios_dev" ( + flutter build ios --flavor development +) + +IF "%1"=="build_apk_dev" ( + flutter build apk --flavor development +) + +IF "%1"=="build_ios_prod" ( + flutter build ios --flavor production +) + +IF "%1"=="build_apk_prod" ( + flutter build apk --flavor production +) + +IF "%1"=="generate_locale" ( + call flutter pub pub run intl_translation:extract_to_arb --output-dir assets/i18n lib/services/localization.dart + call flutter pub pub run bin/split_locales.dart + DEL "assets\i18n\intl_messages.arb" +) + +IF "%1"=="build_locale" ( + call flutter pub pub run bin/build_locales.dart + SET "arbfiles=" + FOR %%a IN ("assets\i18n\intl_*.arb") DO @CALL SET "arbfiles=!arbfiles! %%a" + call flutter pub pub run intl_translation:generate_from_arb --output-dir=lib/locale --no-use-deferred-loading lib/services/localization.dart !arbfiles! +) + +IF "%1"=="" ( + ECHO Usage: make ^ +) \ No newline at end of file diff --git a/pubspec.lock b/pubspec.lock index c01b451c3..4281a558e 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -35,21 +35,21 @@ packages: name: async url: "https://pub.dartlang.org" source: hosted - version: "2.2.0" + version: "2.3.0" back_button_interceptor: dependency: "direct main" description: name: back_button_interceptor url: "https://pub.dartlang.org" source: hosted - version: "4.0.7" + version: "4.1.1" boolean_selector: dependency: transitive description: name: boolean_selector url: "https://pub.dartlang.org" source: hosted - version: "1.0.4" + version: "1.0.5" cached_network_image: dependency: "direct main" description: @@ -71,6 +71,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.14.11" + connectivity: + dependency: "direct main" + description: + name: connectivity + url: "https://pub.dartlang.org" + source: hosted + version: "0.4.4" convert: dependency: transitive description: @@ -84,7 +91,7 @@ packages: name: crypto url: "https://pub.dartlang.org" source: hosted - version: "2.1.1+1" + version: "2.1.3" csslib: dependency: transitive description: @@ -127,6 +134,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.2.3" + file_picker: + dependency: "direct main" + description: + name: file_picker + url: "https://pub.dartlang.org" + source: hosted + version: "1.4.0+1" flutter: dependency: "direct main" description: flutter @@ -160,13 +174,27 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.2.4" + flutter_ffmpeg: + dependency: "direct main" + description: + name: flutter_ffmpeg + url: "https://pub.dartlang.org" + source: hosted + version: "0.2.7" + flutter_image_compress: + dependency: "direct main" + description: + name: flutter_image_compress + url: "https://pub.dartlang.org" + source: hosted + version: "0.6.3" flutter_launcher_icons: dependency: "direct dev" description: name: flutter_launcher_icons url: "https://pub.dartlang.org" source: hosted - version: "0.7.2+1" + version: "0.7.3" flutter_localizations: dependency: "direct main" description: flutter @@ -192,7 +220,7 @@ packages: name: flutter_secure_storage url: "https://pub.dartlang.org" source: hosted - version: "3.2.1+1" + version: "3.3.1" flutter_slidable: dependency: "direct main" description: @@ -201,7 +229,7 @@ packages: source: hosted version: "0.4.9" flutter_svg: - dependency: transitive + dependency: "direct main" description: name: flutter_svg url: "https://pub.dartlang.org" @@ -212,6 +240,13 @@ packages: description: flutter source: sdk version: "0.0.0" + flutter_widgets: + dependency: "direct main" + description: + name: flutter_widgets + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.6" front_end: dependency: transitive description: @@ -227,7 +262,7 @@ packages: source: hosted version: "1.1.7" html: - dependency: transitive + dependency: "direct main" description: name: html url: "https://pub.dartlang.org" @@ -254,6 +289,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "3.1.3" + http_retry: + dependency: "direct main" + description: + name: http_retry + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.1+3" image: dependency: transitive description: @@ -295,7 +337,16 @@ packages: name: intl_translation url: "https://pub.dartlang.org" source: hosted - version: "0.17.5" + version: "0.17.7" + inview_notifier_list: + dependency: "direct main" + description: + path: "." + ref: c74749a052f91fbdd11fad959c2c59d0d10c7695 + resolved-ref: c74749a052f91fbdd11fad959c2c59d0d10c7695 + url: "https://github.com/OkunaOrg/inview_notifier_list.git" + source: git + version: "0.0.2" io: dependency: transitive description: @@ -344,7 +395,7 @@ packages: name: meta url: "https://pub.dartlang.org" source: hosted - version: "1.1.6" + version: "1.1.7" mime: dependency: "direct main" description: @@ -352,13 +403,6 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.9.6+3" - multi_image_picker: - dependency: "direct main" - description: - name: multi_image_picker - url: "https://pub.dartlang.org" - source: hosted - version: "4.5.0+2" multi_server_socket: dependency: transitive description: @@ -372,7 +416,7 @@ packages: name: node_preamble url: "https://pub.dartlang.org" source: hosted - version: "1.4.6" + version: "1.4.8" onesignal_flutter: dependency: "direct main" description: @@ -380,13 +424,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.2" + open_iconic_flutter: + dependency: "direct main" + description: + name: open_iconic_flutter + url: "https://pub.dartlang.org" + source: hosted + version: "0.3.0" package_config: dependency: transitive description: name: package_config url: "https://pub.dartlang.org" source: hosted - version: "1.0.5" + version: "1.1.0" package_resolver: dependency: transitive description: @@ -395,12 +446,12 @@ packages: source: hosted version: "1.0.10" path: - dependency: transitive + dependency: "direct main" description: name: path url: "https://pub.dartlang.org" source: hosted - version: "1.6.2" + version: "1.6.4" path_drawing: dependency: transitive description: @@ -421,14 +472,14 @@ packages: name: path_provider url: "https://pub.dartlang.org" source: hosted - version: "1.2.0" + version: "1.3.0" pedantic: dependency: transitive description: name: pedantic url: "https://pub.dartlang.org" source: hosted - version: "1.7.0" + version: "1.8.0+1" petitparser: dependency: transitive description: @@ -450,6 +501,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.0.3" + platform: + dependency: transitive + description: + name: platform + url: "https://pub.dartlang.org" + source: hosted + version: "2.2.1" pool: dependency: transitive description: @@ -464,13 +522,27 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.4.2" + public_suffix: + dependency: "direct main" + description: + name: public_suffix + url: "https://pub.dartlang.org" + source: hosted + version: "1.2.0" + punycode: + dependency: transitive + description: + name: punycode + url: "https://pub.dartlang.org" + source: hosted + version: "0.1.0" quiver: dependency: transitive description: name: quiver url: "https://pub.dartlang.org" source: hosted - version: "2.0.3" + version: "2.0.5" rxdart: dependency: "direct main" description: @@ -478,13 +550,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "0.18.1" - scroll_to_index: + screen: dependency: "direct main" description: - name: scroll_to_index + name: screen url: "https://pub.dartlang.org" source: hosted - version: "1.0.2" + version: "0.0.5" sentry: dependency: "direct main" description: @@ -540,7 +612,7 @@ packages: name: shimmer url: "https://pub.dartlang.org" source: hosted - version: "1.0.0" + version: "1.0.1" sky_engine: dependency: transitive description: flutter @@ -580,7 +652,7 @@ packages: name: sqflite url: "https://pub.dartlang.org" source: hosted - version: "1.1.6+3" + version: "1.1.6+4" stack_trace: dependency: transitive description: @@ -595,13 +667,20 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "2.0.0" + stream_transform: + dependency: transitive + description: + name: stream_transform + url: "https://pub.dartlang.org" + source: hosted + version: "0.0.19" string_scanner: dependency: transitive description: name: string_scanner url: "https://pub.dartlang.org" source: hosted - version: "1.0.4" + version: "1.0.5" synchronized: dependency: transitive description: @@ -643,7 +722,7 @@ packages: name: timeago url: "https://pub.dartlang.org" source: hosted - version: "2.0.18" + version: "2.0.19" tinycolor: dependency: "direct main" description: @@ -703,10 +782,19 @@ packages: video_player: dependency: "direct main" description: - name: video_player + path: "packages/video_player" + ref: "feature/caching" + resolved-ref: "7655d0961e3cae431fbf3aa8a98817461708d7dc" + url: "https://github.com/999eagle/plugins.git" + source: git + version: "0.10.2+1" + video_thumbnail: + dependency: "direct main" + description: + name: video_thumbnail url: "https://pub.dartlang.org" source: hosted - version: "0.10.1+6" + version: "0.1.5+1" vm_service_client: dependency: transitive description: @@ -744,4 +832,4 @@ packages: version: "2.1.16" sdks: dart: ">=2.4.0 <3.0.0" - flutter: ">=1.7.8 <2.0.0" + flutter: ">=1.9.1 <2.0.0" diff --git a/pubspec.yaml b/pubspec.yaml index 1200d93e7..d1b38f1d5 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -7,27 +7,39 @@ description: Social Network # Both the version and the builder number may be overridden in flutter # build by specifying --build-name and --build-number, respectively. # Read more about versioning at semver.org. -version: 0.0.51+56 +version: 0.0.52+59 environment: sdk: ">=2.1.0 <3.0.0" dependencies: - scroll_to_index: ^1.0.1 + html: ^0.14.0+2 expandable: ^2.2.2+3 uuid: ^2.0.1 - multi_image_picker: ^4.3.6 + flutter_image_compress: ^0.6.3 + inview_notifier_list: + git: + url: https://github.com/OkunaOrg/inview_notifier_list.git + ref: c74749a052f91fbdd11fad959c2c59d0d10c7695 + connectivity: ^0.4.4 + flutter_widgets: ^0.1.6 + http_retry: ^0.1.1+3 flutter_exif_rotation: ^0.2.2 + video_thumbnail: ^0.1.5+1 + flutter_ffmpeg: ^0.2.7 + open_iconic_flutter: ^0.3.0 shared_preferences: ^0.5.2 flutter_markdown: ^0.2.0 + file_picker: ^1.3.8 sentry: ^2.2.0 + screen: ^0.0.5 back_button_interceptor: ^4.0.1 flutter_colorpicker: any intercom_flutter: ^1.0.11 device_info: ^0.4.0+1 flutter_pagewise: ^1.2.2 tinycolor: ^1.0.2 - onesignal_flutter: ^2.0.1 + onesignal_flutter: ^2.0.2 flutter_advanced_networkimage: ^0.5.0 dcache: ^0.1.0 validators: ^1.0.0+1 @@ -37,19 +49,26 @@ dependencies: flutter_cache_manager: ^1.1.1 cached_network_image: ^1.1.1 timeago: ^2.0.9 + public_suffix: ^1.2.0 pigment: ^1.0.3 photo_view: ^0.4.2 + flutter_svg: ^0.13.0 flutter_secure_storage: ^3.1.2 mime: ^0.9.6+2 http: ^0.12.0 intl: ^0.15.7 rxdart: ^0.18.1 - video_player: ^0.10.0 + video_player: + git: + url: https://github.com/999eagle/plugins.git + ref: feature/caching + path: packages/video_player sprintf: "^4.0.0" image_picker: 0.6.1 image_cropper: ^1.0.1 shimmer: ^1.0.0 share: ^0.6.1 + path: ^1.6.2 flutter: sdk: flutter flutter_localizations: @@ -140,6 +159,7 @@ flutter: - assets/images/fallbacks/post-fallback.png - assets/images/fallbacks/cover-fallback.jpg - assets/images/fallbacks/avatar-fallback.jpg + - assets/other/public_suffix_list.dat - .env.json # An image asset can refer to one or more resolution-specific "variants", see