diff --git a/Cartesian.Frontend/messages/en.json b/Cartesian.Frontend/messages/en.json
index 658f448..21a2044 100644
--- a/Cartesian.Frontend/messages/en.json
+++ b/Cartesian.Frontend/messages/en.json
@@ -37,5 +37,177 @@
"tag_religious": "Religious",
"tag_study": "Study",
"tag_market": "Market",
- "tag_political": "Political"
+ "tag_political": "Political",
+ "error_something_went_wrong": "Something went wrong",
+ "error_page_not_found": "The page you are looking for does not exist. It might have been moved or deleted.",
+ "error_unexpected": "An unexpected error occurred. Please try again later.",
+ "return_home": "Return Home",
+ "sign_in": "Sign in",
+ "sign_up": "Sign up",
+ "sign_in_title": "Sign in",
+ "sign_in_subtitle": "Enter your credentials to continue",
+ "signing_in": "Signing in...",
+ "email": "Email",
+ "password": "Password",
+ "dont_have_account": "Don't have an account?",
+ "create_account": "Create an account",
+ "create_account_subtitle": "Enter your details to get started",
+ "creating_account": "Creating account...",
+ "username": "Username",
+ "confirm_password": "Confirm Password",
+ "already_have_account": "Already have an account?",
+ "profile": "Profile",
+ "events": "Events",
+ "logout": "Logout",
+ "settings": "Settings",
+ "settings_description": "Customize your experience",
+ "theme": "Theme",
+ "light": "Light",
+ "dark": "Dark",
+ "system": "System",
+ "language": "Language",
+ "close": "Close",
+ "cancel": "Cancel",
+ "new_event": "New Event",
+ "new_event_subtitle": "Create a public gathering",
+ "edit_event": "Edit Event",
+ "edit_event_subtitle": "Update your event details",
+ "event_title": "Event Title",
+ "event_title_placeholder": "What are you planning?",
+ "description": "Description",
+ "description_placeholder": "Add details about your event...",
+ "details": "Details",
+ "location": "Location",
+ "location_placeholder": "Search location...",
+ "use_current": "Use Current",
+ "pick_on_map": "Pick on Map",
+ "start_time": "Start Time",
+ "end_time": "End Time",
+ "start_time_placeholder": "Pick start time",
+ "end_time_placeholder": "Pick end time",
+ "images": "Images",
+ "window_images": "Window Images",
+ "session_title": "Session Title",
+ "session_title_placeholder": "Session Title",
+ "optional_description": "Optional description",
+ "filter_categories": "Filter categories...",
+ "publish_event": "Publish Event",
+ "keep_editing": "Keep Editing",
+ "discard": "Discard",
+ "delete_event": "Delete Event",
+ "delete_event_confirmation": "Are you sure you want to delete \"{eventName}\"? This action cannot be undone. All participants and favorites will be removed.",
+ "delete": "Delete",
+ "deleting": "Deleting...",
+ "hosted_by": "Hosted by",
+ "participate": "Participate",
+ "dont_participate": "Don't participate",
+ "share": "Share",
+ "share_event": "Share event",
+ "edit_event_tooltip": "Edit event",
+ "delete_event_tooltip": "Delete event",
+ "view_details": "View Details",
+ "add": "Add",
+ "create_an_event": "Create an Event",
+ "add_event_here": "Add event here",
+ "loading_address": "Loading address...",
+ "failed_to_load_address": "Failed to load address",
+ "unknown_location": "Unknown location",
+ "search_events": "Search events...",
+ "manage_events_schedule": "Manage your events and schedule",
+ "favorited": "Favorited",
+ "created": "Created",
+ "attending": "Attending",
+ "no_favorited_events": "No favorited events",
+ "no_events_match_search": "No events match your search query",
+ "events_favorited_appear_here": "Events you favorite will appear here",
+ "no_created_events": "No created events",
+ "events_created_appear_here": "Events you create will appear here",
+ "no_attending_events": "No attending events",
+ "events_attending_appear_here": "Events you attend will appear here",
+ "toggle_ai_mode": "Toggle AI mode",
+ "refresh_events": "Refresh events",
+ "enhance_with_ai": "Enhance with AI",
+ "new_community": "New Community",
+ "new_community_subtitle": "Create a space for people to gather",
+ "community_name": "Community Name",
+ "community_name_placeholder": "e.g. Hiking Enthusiasts",
+ "community_description_placeholder": "What is this community about?",
+ "privacy": "Privacy",
+ "toggle_invite_only": "Toggle invite only",
+ "private_community": "Private Community",
+ "leave_community": "Leave Community",
+ "banned_users": "Banned Users",
+ "delete_community": "Delete Community",
+ "no_pinned_messages": "No pinned messages",
+ "pinned_messages": "Pinned Messages",
+ "pinned_messages_count": "{count} pinned message(s)",
+ "pinned_by": "Pinned by {name}",
+ "members": "Members",
+ "members_list": "Community members list",
+ "banned_users_list": "Banned users list",
+ "admin": "Admin",
+ "open_menu": "Open menu",
+ "view_profile": "View Profile",
+ "make_member": "Make Member",
+ "make_admin": "Make Admin",
+ "kick": "Kick",
+ "ban": "Ban",
+ "kick_member": "Kick Member",
+ "kick_member_confirmation": "Are you sure you want to kick {name} from this community? They will be removed but can rejoin.",
+ "kicking": "Kicking...",
+ "ban_member": "Ban Member",
+ "ban_member_confirmation": "Are you sure you want to ban {name} from this community? They will be removed and cannot rejoin until unbanned.",
+ "reason_optional": "Reason (optional)",
+ "ban_reason_placeholder": "Enter reason for ban...",
+ "banning": "Banning...",
+ "no_banned_users": "No banned users",
+ "loading": "Loading...",
+ "unban": "Unban",
+ "unban_user": "Unban User",
+ "unban_user_confirmation": "Are you sure you want to unban {name}? They will be able to rejoin the community.",
+ "unbanning": "Unbanning...",
+ "banned": "Banned",
+ "joined": "Joined",
+ "joining": "Joining...",
+ "join": "Join",
+ "error_loading_community": "Error loading community",
+ "error_loading_communities": "Error loading communities",
+ "no_communities_joined": "No communities joined",
+ "your_communities": "Your Communities",
+ "discover": "Discover",
+ "profile_picture": "Profile Picture",
+ "profile_picture_info": "JPG, GIF or PNG. Max size of 5MB.",
+ "upload": "Upload",
+ "change": "Change",
+ "remove": "Remove",
+ "display_name": "Display Name",
+ "display_name_placeholder": "Your display name",
+ "email_address": "Email Address",
+ "manage_account_preferences": "Manage your account preferences",
+ "security": "Security",
+ "blocked": "Blocked",
+ "blocked_users": "Blocked Users",
+ "current_password": "Current Password",
+ "new_password": "New Password",
+ "updating": "Updating...",
+ "update_password": "Update Password",
+ "failed_to_load_profile": "Failed to load profile",
+ "this_user_blocked_you": "This user has blocked you",
+ "account_required": "Account Required",
+ "account_required_description": "You need to sign up before you can create an event.",
+ "log_in": "Log In",
+ "message_placeholder": "Message...",
+ "send": "Send",
+ "welcome_to_beginning": "Welcome to the beginning",
+ "be_first_to_say_something": "Be the first to say something.",
+ "view": "View",
+ "direct_message": "Direct Message",
+ "error_loading_messages": "Error loading messages",
+ "no_conversations_yet": "No conversations yet",
+ "drawer_content_placeholder": "Drawer content goes here",
+ "toggle_sidebar": "Toggle Sidebar",
+ "previous_slide": "Previous slide",
+ "next_slide": "Next slide",
+ "sidebar": "Sidebar",
+ "recenter_map": "Recenter map on my location"
}
diff --git a/Cartesian.Frontend/messages/pl.json b/Cartesian.Frontend/messages/pl.json
index f7471fb..ad104c4 100644
--- a/Cartesian.Frontend/messages/pl.json
+++ b/Cartesian.Frontend/messages/pl.json
@@ -37,5 +37,177 @@
"tag_religious": "Religia",
"tag_study": "Nauka",
"tag_market": "Targ",
- "tag_political": "Polityka"
+ "tag_political": "Polityka",
+ "error_something_went_wrong": "Coś poszło nie tak",
+ "error_page_not_found": "Strona, której szukasz, nie istnieje. Mogła zostać przeniesiona lub usunięta.",
+ "error_unexpected": "Wystąpił nieoczekiwany błąd. Spróbuj ponownie później.",
+ "return_home": "Wróć do strony głównej",
+ "sign_in": "Zaloguj się",
+ "sign_up": "Zarejestruj się",
+ "sign_in_title": "Zaloguj się",
+ "sign_in_subtitle": "Wprowadź swoje dane, aby kontynuować",
+ "signing_in": "Logowanie...",
+ "email": "Email",
+ "password": "Hasło",
+ "dont_have_account": "Nie masz konta?",
+ "create_account": "Utwórz konto",
+ "create_account_subtitle": "Wprowadź swoje dane, aby rozpocząć",
+ "creating_account": "Tworzenie konta...",
+ "username": "Nazwa użytkownika",
+ "confirm_password": "Potwierdź hasło",
+ "already_have_account": "Masz już konto?",
+ "profile": "Profil",
+ "events": "Wydarzenia",
+ "logout": "Wyloguj",
+ "settings": "Ustawienia",
+ "settings_description": "Dostosuj swoje preferencje",
+ "theme": "Motyw",
+ "light": "Jasny",
+ "dark": "Ciemny",
+ "system": "Systemowy",
+ "language": "Język",
+ "close": "Zamknij",
+ "cancel": "Anuluj",
+ "new_event": "Nowe wydarzenie",
+ "new_event_subtitle": "Utwórz publiczne spotkanie",
+ "edit_event": "Edytuj wydarzenie",
+ "edit_event_subtitle": "Zaktualizuj szczegóły wydarzenia",
+ "event_title": "Tytuł wydarzenia",
+ "event_title_placeholder": "Co planujesz?",
+ "description": "Opis",
+ "description_placeholder": "Dodaj szczegóły o swoim wydarzeniu...",
+ "details": "Szczegóły",
+ "location": "Lokalizacja",
+ "location_placeholder": "Szukaj lokalizacji...",
+ "use_current": "Użyj obecnej",
+ "pick_on_map": "Wybierz na mapie",
+ "start_time": "Czas rozpoczęcia",
+ "end_time": "Czas zakończenia",
+ "start_time_placeholder": "Wybierz czas rozpoczęcia",
+ "end_time_placeholder": "Wybierz czas zakończenia",
+ "images": "Zdjęcia",
+ "window_images": "Zdjęcia okna",
+ "session_title": "Tytuł sesji",
+ "session_title_placeholder": "Tytuł sesji",
+ "optional_description": "Opcjonalny opis",
+ "filter_categories": "Filtruj kategorie...",
+ "publish_event": "Opublikuj wydarzenie",
+ "keep_editing": "Kontynuuj edycję",
+ "discard": "Odrzuć",
+ "delete_event": "Usuń wydarzenie",
+ "delete_event_confirmation": "Czy na pewno chcesz usunąć \"{eventName}\"? Tej akcji nie można cofnąć. Wszyscy uczestnicy i ulubione zostaną usunięte.",
+ "delete": "Usuń",
+ "deleting": "Usuwanie...",
+ "hosted_by": "Organizator",
+ "participate": "Weź udział",
+ "dont_participate": "Zrezygnuj",
+ "share": "Udostępnij",
+ "share_event": "Udostępnij wydarzenie",
+ "edit_event_tooltip": "Edytuj wydarzenie",
+ "delete_event_tooltip": "Usuń wydarzenie",
+ "view_details": "Zobacz szczegóły",
+ "add": "Dodaj",
+ "create_an_event": "Utwórz wydarzenie",
+ "add_event_here": "Dodaj wydarzenie tutaj",
+ "loading_address": "Ładowanie adresu...",
+ "failed_to_load_address": "Nie udało się załadować adresu",
+ "unknown_location": "Nieznana lokalizacja",
+ "search_events": "Szukaj wydarzeń...",
+ "manage_events_schedule": "Zarządzaj swoimi wydarzeniami i harmonogramem",
+ "favorited": "Ulubione",
+ "created": "Utworzone",
+ "attending": "Uczestnictwo",
+ "no_favorited_events": "Brak ulubionych wydarzeń",
+ "no_events_match_search": "Żadne wydarzenia nie pasują do wyszukiwania",
+ "events_favorited_appear_here": "Ulubione wydarzenia pojawią się tutaj",
+ "no_created_events": "Brak utworzonych wydarzeń",
+ "events_created_appear_here": "Utworzone wydarzenia pojawią się tutaj",
+ "no_attending_events": "Brak wydarzeń z uczestnictwem",
+ "events_attending_appear_here": "Wydarzenia, w których uczestniczysz, pojawią się tutaj",
+ "toggle_ai_mode": "Przełącz tryb AI",
+ "refresh_events": "Odśwież wydarzenia",
+ "enhance_with_ai": "Ulepsz za pomocą AI",
+ "new_community": "Nowa społeczność",
+ "new_community_subtitle": "Stwórz przestrzeń dla ludzi do spotkań",
+ "community_name": "Nazwa społeczności",
+ "community_name_placeholder": "np. Entuzjaści wędrówek",
+ "community_description_placeholder": "O czym jest ta społeczność?",
+ "privacy": "Prywatność",
+ "toggle_invite_only": "Przełącz tylko na zaproszenie",
+ "private_community": "Prywatna społeczność",
+ "leave_community": "Opuść społeczność",
+ "banned_users": "Zablokowani użytkownicy",
+ "delete_community": "Usuń społeczność",
+ "no_pinned_messages": "Brak przypiętych wiadomości",
+ "pinned_messages": "Przypięte wiadomości",
+ "pinned_messages_count": "{count} przypiętych wiadomości",
+ "pinned_by": "Przypięte przez {name}",
+ "members": "Członkowie",
+ "members_list": "Lista członków społeczności",
+ "banned_users_list": "Lista zablokowanych użytkowników",
+ "admin": "Admin",
+ "open_menu": "Otwórz menu",
+ "view_profile": "Zobacz profil",
+ "make_member": "Zmień na członka",
+ "make_admin": "Zmień na admina",
+ "kick": "Wyrzuć",
+ "ban": "Zablokuj",
+ "kick_member": "Wyrzuć członka",
+ "kick_member_confirmation": "Czy na pewno chcesz wyrzucić {name} z tej społeczności? Zostanie usunięty, ale może dołączyć ponownie.",
+ "kicking": "Wyrzucanie...",
+ "ban_member": "Zablokuj członka",
+ "ban_member_confirmation": "Czy na pewno chcesz zablokować {name} w tej społeczności? Zostanie usunięty i nie będzie mógł dołączyć ponownie, dopóki nie zostanie odblokowany.",
+ "reason_optional": "Powód (opcjonalnie)",
+ "ban_reason_placeholder": "Wprowadź powód blokady...",
+ "banning": "Blokowanie...",
+ "no_banned_users": "Brak zablokowanych użytkowników",
+ "loading": "Ładowanie...",
+ "unban": "Odblokuj",
+ "unban_user": "Odblokuj użytkownika",
+ "unban_user_confirmation": "Czy na pewno chcesz odblokować {name}? Będzie mógł ponownie dołączyć do społeczności.",
+ "unbanning": "Odblokowywanie...",
+ "banned": "Zablokowany",
+ "joined": "Dołączył",
+ "joining": "Dołączanie...",
+ "join": "Dołącz",
+ "error_loading_community": "Błąd ładowania społeczności",
+ "error_loading_communities": "Błąd ładowania społeczności",
+ "no_communities_joined": "Nie dołączono do żadnej społeczności",
+ "your_communities": "Twoje społeczności",
+ "discover": "Odkryj",
+ "profile_picture": "Zdjęcie profilowe",
+ "profile_picture_info": "JPG, GIF lub PNG. Maksymalny rozmiar 5MB.",
+ "upload": "Prześlij",
+ "change": "Zmień",
+ "remove": "Usuń",
+ "display_name": "Nazwa wyświetlana",
+ "display_name_placeholder": "Twoja nazwa wyświetlana",
+ "email_address": "Adres email",
+ "manage_account_preferences": "Zarządzaj preferencjami konta",
+ "security": "Bezpieczeństwo",
+ "blocked": "Zablokowani",
+ "blocked_users": "Zablokowani użytkownicy",
+ "current_password": "Obecne hasło",
+ "new_password": "Nowe hasło",
+ "updating": "Aktualizowanie...",
+ "update_password": "Zaktualizuj hasło",
+ "failed_to_load_profile": "Nie udało się załadować profilu",
+ "this_user_blocked_you": "Ten użytkownik Cię zablokował",
+ "account_required": "Wymagane konto",
+ "account_required_description": "Musisz się zarejestrować, aby móc utworzyć wydarzenie.",
+ "log_in": "Zaloguj się",
+ "message_placeholder": "Wiadomość...",
+ "send": "Wyślij",
+ "welcome_to_beginning": "Witaj na początku",
+ "be_first_to_say_something": "Bądź pierwszy, który coś napisze.",
+ "view": "Zobacz",
+ "direct_message": "Wiadomość prywatna",
+ "error_loading_messages": "Błąd ładowania wiadomości",
+ "no_conversations_yet": "Brak rozmów",
+ "drawer_content_placeholder": "Zawartość szuflady",
+ "toggle_sidebar": "Przełącz pasek boczny",
+ "previous_slide": "Poprzedni slajd",
+ "next_slide": "Następny slajd",
+ "sidebar": "Pasek boczny",
+ "recenter_map": "Wyśrodkuj mapę na mojej lokalizacji"
}
diff --git a/Cartesian.Frontend/project.inlang/settings.json b/Cartesian.Frontend/project.inlang/settings.json
index 5333405..786af8c 100644
--- a/Cartesian.Frontend/project.inlang/settings.json
+++ b/Cartesian.Frontend/project.inlang/settings.json
@@ -7,6 +7,6 @@
"https://cdn.jsdelivr.net/npm/@inlang/plugin-m-function-matcher@2/dist/index.js"
],
"plugin.inlang.messageFormat": {
- "pathPattern": "./messages/{locale}.json"
+ "pathPattern": "../messages/{locale}.json"
}
}
diff --git a/Cartesian.Frontend/src/lib/components/auth/login-alert-dialog.svelte b/Cartesian.Frontend/src/lib/components/auth/login-alert-dialog.svelte
index a05d119..a2cf5d7 100644
--- a/Cartesian.Frontend/src/lib/components/auth/login-alert-dialog.svelte
+++ b/Cartesian.Frontend/src/lib/components/auth/login-alert-dialog.svelte
@@ -2,11 +2,12 @@
import * as AlertDialog from "$lib/components/ui/alert-dialog";
import { Button } from "$lib/components/ui/button";
import { goto } from "$app/navigation";
+ import * as m from "$lib/paraglide/messages";
let {
open = $bindable(false),
- title = "Account Required",
- description = "You need to sign up before you can create an event."
+ title = m.account_required(),
+ description = m.account_required_description(),
}: { open: boolean; title?: string; description?: string } = $props();
@@ -19,7 +20,7 @@
Be the first to say something.
{chatState.error}
+{chatState.error}
{/if}+
{ban.user?.name ?? "Unknown"}
{#if ban.reason} -+
{ban.reason}
{/if} -+
Banned {new Date(ban.createdAt as string).toLocaleDateString()}