notedeck

One damus client to rule them all
git clone git://jb55.com/notedeck
Log | Files | Refs | README | LICENSE

commit e437a0db1ca931df33d13fc5056d124ae2c51e5f
parent 6e81b98d2f9a9b9c11e91b14b5e18c0960fd4ac3
Author: William Casarin <jb55@jb55.com>
Date:   Tue, 29 Jul 2025 10:25:56 -0700

Merge Portuguese translations by terry #1036

Terry Yiu (5):
      Export strings for translation
      Add human-readable names to locales in settings
      Internationalize ShowNoteClientOptions labels
      Import translations
      Add Portuguese (Brazil) language and translations

Diffstat:
Massets/translations/de/main.ftl | 6+++---
Massets/translations/en-US/main.ftl | 60++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Massets/translations/en-XA/main.ftl | 60++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Massets/translations/es-419/main.ftl | 42+++++++++++++++++++++---------------------
Massets/translations/es-ES/main.ftl | 38+++++++++++++++++++-------------------
Massets/translations/fr/main.ftl | 40++++++++++++++++++++++++++++++++++++++++
Aassets/translations/pt-BR/main.ftl | 408+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Massets/translations/th/main.ftl | 40++++++++++++++++++++++++++++++++++++++++
Massets/translations/zh-CN/main.ftl | 40++++++++++++++++++++++++++++++++++++++++
Massets/translations/zh-TW/main.ftl | 40++++++++++++++++++++++++++++++++++++++++
Mcrates/notedeck/src/i18n/manager.rs | 49+++++++++++++++++++++++++++++++++++++++++++------
Mcrates/notedeck_columns/src/ui/settings.rs | 46+++++++++++++++++++++++++++++++++++++++++-----
12 files changed, 815 insertions(+), 54 deletions(-)

diff --git a/assets/translations/de/main.ftl b/assets/translations/de/main.ftl @@ -6,7 +6,7 @@ # Regular strings # Profile about/bio field label -About_00c0 = Über +About_00c0 = Über mich # Column title for account management Accounts_f018 = Konten # Button label to add a relay @@ -88,7 +88,7 @@ Copy_Pubkey_9cc4 = Pubkey kopieren # Copy the text content of the note to clipboard Copy_Text_f81c = Text kopieren # Relative time in days -count_d_b9be = { $count }T. +count_d_b9be = { $count }Tg. # Relative time in hours count_h_3ecb = { $count }Std. # Relative time in minutes @@ -328,7 +328,7 @@ Tap_to_Load_4b05 = Zum Laden antippen # Message shown when Dave trial period has ended The_Dave_Nostr_AI_assistant_trial_has_ended_____Thanks_for_testing__Zap-enabled_Dave_coming_soon_c6c7 = Die Testphase des Dave Nostr KI-Assistenten ist beendet :(. Vielen Dank fürs Ausprobieren! Zap-fähiger Dave kommt bald! # Column title for note thread view -Thread_0f20 = Unterhaltungen +Thread_0f20 = Unterhaltung # Link text for thread references thread_ad1f = Unterhaltung # Title for universe column diff --git a/assets/translations/en-US/main.ftl b/assets/translations/en-US/main.ftl @@ -64,6 +64,9 @@ Algorithmic_feeds_to_aid_in_note_discovery_d344 = Algorithmic feeds to aid in no # Label for zap amount input field Amount_70f0 = Amount +# Label for appearance settings section +Appearance_4c7f = Appearance + # Button to send message to Dave AI assistant Ask_b7f4 = Ask @@ -76,6 +79,9 @@ Banner_52ef = Banner # Beta version label BETA_8e5d = BETA +# Option in settings section to show the source client label at the bottom of the note +Bottom_33c8 = Bottom + # Broadcast the note to all connected relays Broadcast_fe43 = Broadcast @@ -85,12 +91,24 @@ Broadcast_Local_7e50 = Broadcast Local # Button label to cancel an action Cancel_ed3b = Cancel +# Label for cancel clear cache, Storage settings section +Cancel_fd8b = Cancel + +# Label for clear cache button, Storage settings section +Clear_cache_dccb = Clear cache + # Hover text for editable zap amount Click_to_edit_0414 = Click to edit # Column title for note composition Compose_Note_c094 = Compose Note +# Label for configure relays, settings section +Configure_relays_d156 = Configure relays + +# Label for confirm clear cache, Storage settings section +Confirm_9d9d = Confirm + # Button label to confirm an action Confirm_f8a6 = Confirm @@ -163,6 +181,9 @@ Customize_Zap_Amount_cfc4 = Customize Zap Amount # Column title for support page Damus_Support_27c0 = Damus Support +# Label for Theme Dark, Appearance settings section +Dark_85fe = Dark + # Label for deck name input field Deck_name_cd32 = Deck name @@ -223,12 +244,18 @@ Find_User_bd12 = Find User # Title for hashtags column Hashtags_f8e0 = Hashtags +# Option in settings section to hide the source client label in note display +Hide_281d = Hide + # Title for Home column Home_8c19 = Home # Label for deck icon selection Icon_b0ab = Icon +# Label for Image cache size, Storage settings section +Image_cache_size_3004 = Image cache size: + # Title for individual user column Individual_b776 = Individual @@ -259,9 +286,15 @@ k_5K_f7e6 = 5K # Description for your notes column Keep_track_of_your_notes___replies_a334 = Keep track of your notes & replies +# Label for language, Appearance settings section +Language_e264 = Language: + # Title for last note per user column Last_Note_per_User_17ad = Last Note per User +# Label for Theme Light, Appearance settings section +Light_7475 = Light + # Bitcoin Lightning network address field label Lightning_network_address__lud16_ea51 = Lightning network address (lud16) @@ -325,6 +358,9 @@ Open_Email_25e9 = Open Email # Instruction to open email client Open_your_default_email_client_to_get_help_from_the_Damus_team_68dc = Open your default email client to get help from the Damus team +# Label for others settings section +Others_7267 = Others + # Placeholder text for NWC URI input Paste_your_NWC_URI_here_b471 = Paste your NWC URI here... @@ -394,6 +430,9 @@ Repost_this_note_8e56 = Repost this note # Label for reposted notes Reposted_61c8 = Reposted +# Label for reset zoom level, Appearance settings section +Reset_62d4 = Reset + # Heading for support section Running_into_a_bug_1796 = Running into a bug? @@ -427,6 +466,12 @@ See_the_whole_nostr_universe_7694 = See the whole nostr universe # Button label to send a zap Send_1ea4 = Send +# Column title for app settings +Settings_7a4f = Settings + +# Label for Show source client, others settings section +Show_source_client_9e31 = Show source client + # Description for last note per user column Show_the_last_note_for_each_user_from_a_list_50e7 = Show the last note for each user from a list @@ -466,6 +511,9 @@ Step_1_8656 = Step 1 # Step 2 label in support instructions Step_2_d08d = Step 2 +# Label for storage settings section +Storage_ed65 = Storage + # Column title for subscribing to external user Subscribe_to_someone_else_s_notes_d1e9 = Subscribe to someone else's notes @@ -484,12 +532,18 @@ Tap_to_Load_4b05 = Tap to Load # Message shown when Dave trial period has ended The_Dave_Nostr_AI_assistant_trial_has_ended_____Thanks_for_testing__Zap-enabled_Dave_coming_soon_c6c7 = The Dave Nostr AI assistant trial has ended :(. Thanks for testing! Zap-enabled Dave coming soon! +# Label for theme, Appearance settings section +Theme_4aac = Theme: + # Column title for note thread view Thread_0f20 = Thread # Link text for thread references thread_ad1f = thread +# Option in settings section to show the source client label at the top of the note +Top_6aeb = Top + # Title for universe column Universe_e01e = Universe @@ -505,6 +559,9 @@ username___at___domain___will_be_used_for_identification_a4fd = "{$username}" at # Profile username field label Username_daa7 = Username +# Label for view folder button, Storage settings section +View_folder_9742 = View folder: + # Column title for wallet management Wallet_5e50 = Wallet @@ -532,6 +589,9 @@ Zap_16b4 = Zap # Hover text for zap button Zap_this_note_42b2 = Zap this note +# Label for zoom level, Appearance settings section +Zoom_Level_29a8 = Zoom Level: + # Pluralized strings # Search results count diff --git a/assets/translations/en-XA/main.ftl b/assets/translations/en-XA/main.ftl @@ -64,6 +64,9 @@ Algorithmic_feeds_to_aid_in_note_discovery_d344 = {"["}Àlgóríthmíç fééds # Label for zap amount input field Amount_70f0 = {"["}Àmóúñt{"]"} +# Label for appearance settings section +Appearance_4c7f = {"["}Àppéàràñçé{"]"} + # Button to send message to Dave AI assistant Ask_b7f4 = {"["}Àsk{"]"} @@ -76,6 +79,9 @@ Banner_52ef = {"["}Bàññér{"]"} # Beta version label BETA_8e5d = {"["}BÉTÀ{"]"} +# Option in settings section to show the source client label at the bottom of the note +Bottom_33c8 = {"["}Bóttóm{"]"} + # Broadcast the note to all connected relays Broadcast_fe43 = {"["}Bróàdçàst{"]"} @@ -85,12 +91,24 @@ Broadcast_Local_7e50 = {"["}Bróàdçàst Lóçàl{"]"} # Button label to cancel an action Cancel_ed3b = {"["}Çàñçél{"]"} +# Label for cancel clear cache, Storage settings section +Cancel_fd8b = {"["}Çàñçél{"]"} + +# Label for clear cache button, Storage settings section +Clear_cache_dccb = {"["}Çléàr çàçhé{"]"} + # Hover text for editable zap amount Click_to_edit_0414 = {"["}Çlíçk tó édít{"]"} # Column title for note composition Compose_Note_c094 = {"["}Çómpósé Ñóté{"]"} +# Label for configure relays, settings section +Configure_relays_d156 = {"["}Çóñfígúré rélàys{"]"} + +# Label for confirm clear cache, Storage settings section +Confirm_9d9d = {"["}Çóñfírm{"]"} + # Button label to confirm an action Confirm_f8a6 = {"["}Çóñfírm{"]"} @@ -163,6 +181,9 @@ Customize_Zap_Amount_cfc4 = {"["}Çústómízé Zàp Àmóúñt{"]"} # Column title for support page Damus_Support_27c0 = {"["}Dàmús Súppórt{"]"} +# Label for Theme Dark, Appearance settings section +Dark_85fe = {"["}Dàrk{"]"} + # Label for deck name input field Deck_name_cd32 = {"["}Déçk ñàmé{"]"} @@ -223,12 +244,18 @@ Find_User_bd12 = {"["}Fíñd Úsér{"]"} # Title for hashtags column Hashtags_f8e0 = {"["}Hàshtàgs{"]"} +# Option in settings section to hide the source client label in note display +Hide_281d = {"["}Hídé{"]"} + # Title for Home column Home_8c19 = {"["}Hómé{"]"} # Label for deck icon selection Icon_b0ab = {"["}Íçóñ{"]"} +# Label for Image cache size, Storage settings section +Image_cache_size_3004 = {"["}Ímàgé çàçhé sízé:{"]"} + # Title for individual user column Individual_b776 = {"["}Íñdívídúàl{"]"} @@ -259,9 +286,15 @@ k_5K_f7e6 = {"["}5K{"]"} # Description for your notes column Keep_track_of_your_notes___replies_a334 = {"["}Kéép tràçk óf yóúr ñótés & réplíés{"]"} +# Label for language, Appearance settings section +Language_e264 = {"["}Làñgúàgé:{"]"} + # Title for last note per user column Last_Note_per_User_17ad = {"["}Làst Ñóté pér Úsér{"]"} +# Label for Theme Light, Appearance settings section +Light_7475 = {"["}Líght{"]"} + # Bitcoin Lightning network address field label Lightning_network_address__lud16_ea51 = {"["}Líghtñíñg ñétwórk àddréss (lúd16){"]"} @@ -325,6 +358,9 @@ Open_Email_25e9 = {"["}Ópéñ Émàíl{"]"} # Instruction to open email client Open_your_default_email_client_to_get_help_from_the_Damus_team_68dc = {"["}Ópéñ yóúr défàúlt émàíl çlíéñt tó gét hélp fróm thé Dàmús téàm{"]"} +# Label for others settings section +Others_7267 = {"["}Óthérs{"]"} + # Placeholder text for NWC URI input Paste_your_NWC_URI_here_b471 = {"["}Pàsté yóúr ÑWÇ ÚRÍ héré...{"]"} @@ -394,6 +430,9 @@ Repost_this_note_8e56 = {"["}Répóst thís ñóté{"]"} # Label for reposted notes Reposted_61c8 = {"["}Répóstéd{"]"} +# Label for reset zoom level, Appearance settings section +Reset_62d4 = {"["}Rését{"]"} + # Heading for support section Running_into_a_bug_1796 = {"["}Rúññíñg íñtó à búg?{"]"} @@ -427,6 +466,12 @@ See_the_whole_nostr_universe_7694 = {"["}Séé thé whólé ñóstr úñívérs # Button label to send a zap Send_1ea4 = {"["}Séñd{"]"} +# Column title for app settings +Settings_7a4f = {"["}Séttíñgs{"]"} + +# Label for Show source client, others settings section +Show_source_client_9e31 = {"["}Shów sóúrçé çlíéñt{"]"} + # Description for last note per user column Show_the_last_note_for_each_user_from_a_list_50e7 = {"["}Shów thé làst ñóté fór éàçh úsér fróm à líst{"]"} @@ -466,6 +511,9 @@ Step_1_8656 = {"["}Stép 1{"]"} # Step 2 label in support instructions Step_2_d08d = {"["}Stép 2{"]"} +# Label for storage settings section +Storage_ed65 = {"["}Stóràgé{"]"} + # Column title for subscribing to external user Subscribe_to_someone_else_s_notes_d1e9 = {"["}Súbsçríbé tó sóméóñé élsé's ñótés{"]"} @@ -484,12 +532,18 @@ Tap_to_Load_4b05 = {"["}Tàp tó Lóàd{"]"} # Message shown when Dave trial period has ended The_Dave_Nostr_AI_assistant_trial_has_ended_____Thanks_for_testing__Zap-enabled_Dave_coming_soon_c6c7 = {"["}Thé Dàvé Ñóstr ÀÍ àssístàñt tríàl hàs éñdéd :(. Thàñks fór téstíñg! Zàp-éñàbléd Dàvé çómíñg sóóñ!{"]"} +# Label for theme, Appearance settings section +Theme_4aac = {"["}Thémé:{"]"} + # Column title for note thread view Thread_0f20 = {"["}Thréàd{"]"} # Link text for thread references thread_ad1f = {"["}thréàd{"]"} +# Option in settings section to show the source client label at the top of the note +Top_6aeb = {"["}Tóp{"]"} + # Title for universe column Universe_e01e = {"["}Úñívérsé{"]"} @@ -505,6 +559,9 @@ username___at___domain___will_be_used_for_identification_a4fd = {"["}"{$username # Profile username field label Username_daa7 = {"["}Úsérñàmé{"]"} +# Label for view folder button, Storage settings section +View_folder_9742 = {"["}Víéw fóldér:{"]"} + # Column title for wallet management Wallet_5e50 = {"["}Wàllét{"]"} @@ -532,6 +589,9 @@ Zap_16b4 = {"["}Zàp{"]"} # Hover text for zap button Zap_this_note_42b2 = {"["}Zàp thís ñóté{"]"} +# Label for zoom level, Appearance settings section +Zoom_Level_29a8 = {"["}Zóóm Lévél:{"]"} + # Pluralized strings # Search results count diff --git a/assets/translations/es-419/main.ftl b/assets/translations/es-419/main.ftl @@ -22,15 +22,15 @@ Add_account_1cfc = Agregar cuenta # Column title for adding new account Add_Account_d06c = Agregar cuenta # Column title for adding algorithm column -Add_Algo_Column_0d75 = Añadir columna algorítmica +Add_Algo_Column_0d75 = Agregar columna algorítmica # Column title for adding new column Add_Column_c764 = Agregar columna # Column title for adding new deck -Add_Deck_fabf = Agregar Deck +Add_Deck_fabf = Agregar deck # Column title for adding external notifications column Add_External_Notifications_Column_41ae = Agregar columna de notificaciones externas # Column title for adding hashtag column -Add_Hashtag_Column_ebf4 = Agregar columna de hashtag +Add_Hashtag_Column_ebf4 = Agregar columna de hashtags # Column title for adding last notes column Add_Last_Notes_Column_bbad = Agregar columna de últimas notas # Column title for adding notifications column @@ -84,7 +84,7 @@ Copy_Note_ID_6b45 = Copiar ID de nota # Copy the raw note data in JSON format to clipboard Copy_Note_JSON_9e4e = Copiar JSON de nota # Copy the author's public key to clipboard -Copy_Pubkey_9cc4 = Copiar Pubkey +Copy_Pubkey_9cc4 = Copiar pubkey # Copy the text content of the note to clipboard Copy_Text_f81c = Copiar texto # Relative time in days @@ -94,7 +94,7 @@ count_h_3ecb = { $count }h # Relative time in minutes count_m_b41e = { $count }m # Relative time in months -count_mo_7aba = { $count }ms +count_mo_7aba = { $count }mes # Relative time in seconds count_s_aa26 = { $count }s # Relative time in weeks @@ -104,23 +104,23 @@ count_y_9408 = { $count }a # Button to create a new account Create_Account_6994 = Crear cuenta # Button label to create a new deck -Create_Deck_16b7 = Crear Deck +Create_Deck_16b7 = Crear deck # Column title for custom timelines Custom_a69e = Personalizado # Column title for zap amount customization -Customize_Zap_Amount_cfc4 = Personalizar monto de zap +Customize_Zap_Amount_cfc4 = Personalizar cantidad de zap # Column title for support page Damus_Support_27c0 = Ayuda de Damus # Label for deck name input field -Deck_name_cd32 = Nombre del Deck +Deck_name_cd32 = Nombre del deck # Label for decks section in side panel DECKS_1fad = DECKS # Label for default zap amount input -Default_amount_per_zap_399d = Monto predeterminado por zap: +Default_amount_per_zap_399d = Cantidad predeterminada por zap: # Name of the default deck feed Default_Deck_fcca = Deck predeterminado # Button label to delete a deck -Delete_Deck_bb29 = Eliminar Deck +Delete_Deck_bb29 = Eliminar deck # Tooltip for deleting a column Delete_this_column_8d5a = Eliminar esta columna # Button label to delete a wallet @@ -130,9 +130,9 @@ Display_name_f9d9 = Nombre para mostrar # Domain identification message domain___will_be_used_for_identification_b67e = "{ $domain }" se utilizará para la identificación # Column title for editing deck -Edit_Deck_4018 = Editar Deck +Edit_Deck_4018 = Editar deck # Button label to edit a deck -Edit_Deck_fd93 = Editar Deck +Edit_Deck_fd93 = Editar deck # Button label to edit user profile Edit_Profile_49e6 = Editar perfil # Column title for profile editing @@ -158,7 +158,7 @@ Icon_b0ab = Ícono # Title for individual user column Individual_b776 = Individual # Error message for invalid zap amount -Invalid_amount_6630 = Importe no válido +Invalid_amount_6630 = Cantidad no válida # Error message for invalid key input Invalid_key_4726 = Clave no válida. # Error message for invalid Nostr Wallet Connect URI @@ -184,11 +184,11 @@ Login_9eef = Inicio de sesión # Login button text Login_now___let_s_do_this_5630 = Inicia sesión ahora, ¡manos a la obra! # Text shown on blurred media from unfollowed users -Media_from_someone_you_don_t_follow_5611 = Medios de alguien que no sigues +Media_from_someone_you_don_t_follow_5611 = Contenido multimedia de alguien que no sigues # Tooltip for moving a column Moves_this_column_to_another_position_0d4b = Mueve esta columna a otra posición # Title for the user's deck -My_Deck_4ac5 = Mi Deck +My_Deck_4ac5 = Mi deck # Label asking if the user is new to Nostr. Underneath this label is a button to create an account. New_to_Nostr_a2fd = ¿Primera vez en Nostr? # NIP-05 identity field label @@ -220,13 +220,13 @@ Open_Email_25e9 = Abrir correo electrónico # Instruction to open email client Open_your_default_email_client_to_get_help_from_the_Damus_team_68dc = Abre tu cliente de correo predeterminado para recibir ayuda del equipo de Damus # Placeholder text for NWC URI input -Paste_your_NWC_URI_here_b471 = Pega tu URI NWC aquí... +Paste_your_NWC_URI_here_b471 = Pega tu NWC URI aquí... # Error message for missing deck name -Please_create_a_name_for_the_deck_38e7 = Crea un nombre para el Deck. +Please_create_a_name_for_the_deck_38e7 = Crea un nombre para el deck. # Error message for missing deck name and icon -Please_create_a_name_for_the_deck_and_select_an_icon_0add = Crea un nombre para el Deck y selecciona un icono. +Please_create_a_name_for_the_deck_and_select_an_icon_0add = Crea un nombre para el deck y selecciona un ícono. # Error message for missing deck icon -Please_select_an_icon_655b = Selecciona un icono. +Please_select_an_icon_655b = Selecciona un ícono. # Button label to post a note Post_now_8a49 = Publicar ahora # Instruction for copying logs @@ -250,7 +250,7 @@ Reply_to_this_note_f5de = Responder a esta nota # Error message when reply note cannot be found Reply_to_unknown_note_4401 = Responder a nota desconocida # Fallback template for replying to user -replying_to__user_15ab = responder a { $user } +replying_to__user_15ab = respondiendo a { $user } # Template for replying to user in unknown thread replying_to__user__in_someone_s_thread_e148 = respondiendo a { $user } en la conversación de alguien # Template for replying to note in different user's thread @@ -356,7 +356,7 @@ Your_Notifications_080d = Tus notificaciones # Heading for zap (tip) action Zap_16b4 = Zap # Hover text for zap button -Zap_this_note_42b2 = Enviar zap a esta nota +Zap_this_note_42b2 = Enviar un zap a esta nota # Pluralized strings diff --git a/assets/translations/es-ES/main.ftl b/assets/translations/es-ES/main.ftl @@ -26,11 +26,11 @@ Add_Algo_Column_0d75 = Añadir columna algorítmica # Column title for adding new column Add_Column_c764 = Añadir columna # Column title for adding new deck -Add_Deck_fabf = Añadir Deck +Add_Deck_fabf = Añadir deck # Column title for adding external notifications column Add_External_Notifications_Column_41ae = Añadir columna de notificaciones externas # Column title for adding hashtag column -Add_Hashtag_Column_ebf4 = Añadir columna de hashtag +Add_Hashtag_Column_ebf4 = Añadir columna de hashtags # Column title for adding last notes column Add_Last_Notes_Column_bbad = Añadir columna de últimas notas # Column title for adding notifications column @@ -84,7 +84,7 @@ Copy_Note_ID_6b45 = Copiar ID de nota # Copy the raw note data in JSON format to clipboard Copy_Note_JSON_9e4e = Copiar JSON de nota # Copy the author's public key to clipboard -Copy_Pubkey_9cc4 = Copiar Pubkey +Copy_Pubkey_9cc4 = Copiar pubkey # Copy the text content of the note to clipboard Copy_Text_f81c = Copiar texto # Relative time in days @@ -94,7 +94,7 @@ count_h_3ecb = { $count }h # Relative time in minutes count_m_b41e = { $count }m # Relative time in months -count_mo_7aba = { $count }ms +count_mo_7aba = { $count }mes # Relative time in seconds count_s_aa26 = { $count }s # Relative time in weeks @@ -104,23 +104,23 @@ count_y_9408 = { $count }a # Button to create a new account Create_Account_6994 = Crear cuenta # Button label to create a new deck -Create_Deck_16b7 = Crear Deck +Create_Deck_16b7 = Crear deck # Column title for custom timelines Custom_a69e = Personalizado # Column title for zap amount customization -Customize_Zap_Amount_cfc4 = Personalizar monto de zap +Customize_Zap_Amount_cfc4 = Personalizar cantidad de zap # Column title for support page Damus_Support_27c0 = Ayuda de Damus # Label for deck name input field -Deck_name_cd32 = Nombre del Deck +Deck_name_cd32 = Nombre del deck # Label for decks section in side panel DECKS_1fad = DECKS # Label for default zap amount input -Default_amount_per_zap_399d = Monto predeterminado por zap: +Default_amount_per_zap_399d = Cantidad predeterminada por zap: # Name of the default deck feed Default_Deck_fcca = Deck predeterminado # Button label to delete a deck -Delete_Deck_bb29 = Eliminar Deck +Delete_Deck_bb29 = Eliminar deck # Tooltip for deleting a column Delete_this_column_8d5a = Eliminar esta columna # Button label to delete a wallet @@ -130,9 +130,9 @@ Display_name_f9d9 = Nombre para mostrar # Domain identification message domain___will_be_used_for_identification_b67e = "{ $domain }" se utilizará para la identificación # Column title for editing deck -Edit_Deck_4018 = Editar Deck +Edit_Deck_4018 = Editar deck # Button label to edit a deck -Edit_Deck_fd93 = Editar Deck +Edit_Deck_fd93 = Editar deck # Button label to edit user profile Edit_Profile_49e6 = Editar perfil # Column title for profile editing @@ -154,11 +154,11 @@ Hashtags_f8e0 = Hashtags # Title for Home column Home_8c19 = Inicio # Label for deck icon selection -Icon_b0ab = Ícono +Icon_b0ab = Icono # Title for individual user column Individual_b776 = Individual # Error message for invalid zap amount -Invalid_amount_6630 = Importe no válido +Invalid_amount_6630 = Cantidad no válida # Error message for invalid key input Invalid_key_4726 = Clave no válida. # Error message for invalid Nostr Wallet Connect URI @@ -184,11 +184,11 @@ Login_9eef = Inicio de sesión # Login button text Login_now___let_s_do_this_5630 = Inicia sesión ahora, ¡manos a la obra! # Text shown on blurred media from unfollowed users -Media_from_someone_you_don_t_follow_5611 = Medios de alguien que no sigues +Media_from_someone_you_don_t_follow_5611 = Contenido multimedia de alguien que no sigues # Tooltip for moving a column Moves_this_column_to_another_position_0d4b = Mueve esta columna a otra posición # Title for the user's deck -My_Deck_4ac5 = Mi Deck +My_Deck_4ac5 = Mi deck # Label asking if the user is new to Nostr. Underneath this label is a button to create an account. New_to_Nostr_a2fd = ¿Primera vez en Nostr? # NIP-05 identity field label @@ -220,11 +220,11 @@ Open_Email_25e9 = Abrir correo electrónico # Instruction to open email client Open_your_default_email_client_to_get_help_from_the_Damus_team_68dc = Abre tu cliente de correo predeterminado para recibir ayuda del equipo de Damus # Placeholder text for NWC URI input -Paste_your_NWC_URI_here_b471 = Pega tu URI NWC aquí... +Paste_your_NWC_URI_here_b471 = Pega tu NWC URI aquí... # Error message for missing deck name Please_create_a_name_for_the_deck_38e7 = Crea un nombre para el Deck. # Error message for missing deck name and icon -Please_create_a_name_for_the_deck_and_select_an_icon_0add = Crea un nombre para el Deck y selecciona un icono. +Please_create_a_name_for_the_deck_and_select_an_icon_0add = Crea un nombre para el deck y selecciona un icono. # Error message for missing deck icon Please_select_an_icon_655b = Selecciona un icono. # Button label to post a note @@ -250,7 +250,7 @@ Reply_to_this_note_f5de = Responder a esta nota # Error message when reply note cannot be found Reply_to_unknown_note_4401 = Responder a nota desconocida # Fallback template for replying to user -replying_to__user_15ab = responder a { $user } +replying_to__user_15ab = respondiendo a { $user } # Template for replying to user in unknown thread replying_to__user__in_someone_s_thread_e148 = respondiendo a { $user } en la conversación de alguien # Template for replying to note in different user's thread @@ -356,7 +356,7 @@ Your_Notifications_080d = Tus notificaciones # Heading for zap (tip) action Zap_16b4 = Zap # Hover text for zap button -Zap_this_note_42b2 = Enviar zap a esta nota +Zap_this_note_42b2 = Enviar un zap a esta nota # Pluralized strings diff --git a/assets/translations/fr/main.ftl b/assets/translations/fr/main.ftl @@ -45,6 +45,8 @@ Algo_2452 = Algo Algorithmic_feeds_to_aid_in_note_discovery_d344 = Des fils algorithmiques pour faciliter la découverte de notes # Label for zap amount input field Amount_70f0 = Montant +# Label for appearance settings section +Appearance_4c7f = Apparence # Button to send message to Dave AI assistant Ask_b7f4 = Demander # Placeholder text for Dave AI input field @@ -53,16 +55,26 @@ Ask_dave_anything_33d1 = Demandez à Dave n'importe quoi... Banner_52ef = Bannière # Beta version label BETA_8e5d = BETA +# Option in settings section to show the source client label at the bottom of the note +Bottom_33c8 = En bas # Broadcast the note to all connected relays Broadcast_fe43 = Diffusion # Broadcast the note only to local network relays Broadcast_Local_7e50 = Diffusion locale # Button label to cancel an action Cancel_ed3b = Annuler +# Label for cancel clear cache, Storage settings section +Cancel_fd8b = Annuler +# Label for clear cache button, Storage settings section +Clear_cache_dccb = Vider le cache # Hover text for editable zap amount Click_to_edit_0414 = Cliquer pour modifier # Column title for note composition Compose_Note_c094 = Ecrire une note +# Label for configure relays, settings section +Configure_relays_d156 = Configurer les relais +# Label for confirm clear cache, Storage settings section +Confirm_9d9d = Confirmer # Button label to confirm an action Confirm_f8a6 = Confirmer # Status label for connected relay @@ -111,6 +123,8 @@ Custom_a69e = Personnaliser Customize_Zap_Amount_cfc4 = Personnaliser le montant du Zap # Column title for support page Damus_Support_27c0 = Assistance Damus +# Label for Theme Dark, Appearance settings section +Dark_85fe = Sombre # Label for deck name input field Deck_name_cd32 = Nom du deck # Label for decks section in side panel @@ -151,10 +165,14 @@ Enter_your_public_key__npub___nostr_address__e_g___address____or_private_key__ns Find_User_bd12 = Trouver un utilisateur # Title for hashtags column Hashtags_f8e0 = Hashtags +# Option in settings section to hide the source client label in note display +Hide_281d = Masquer # Title for Home column Home_8c19 = Accueil # Label for deck icon selection Icon_b0ab = Icone +# Label for Image cache size, Storage settings section +Image_cache_size_3004 = Taille du cache des images : # Title for individual user column Individual_b776 = Individuel # Error message for invalid zap amount @@ -175,8 +193,12 @@ k_50K_c2dc = 50K k_5K_f7e6 = 5K # Description for your notes column Keep_track_of_your_notes___replies_a334 = Gardez une trace de vos notes & réponses +# Label for language, Appearance settings section +Language_e264 = Langue : # Title for last note per user column Last_Note_per_User_17ad = Dernière note par utilisateur +# Label for Theme Light, Appearance settings section +Light_7475 = Clair # Bitcoin Lightning network address field label Lightning_network_address__lud16_ea51 = Adresse réseau Lightning (lud16) # Login page title @@ -219,6 +241,8 @@ now_2181 = maintenant Open_Email_25e9 = Ouvrir Email # Instruction to open email client Open_your_default_email_client_to_get_help_from_the_Damus_team_68dc = Ouvrez votre service d'email par défaut pour obtenir de l'aide de l'équipe Damus +# Label for others settings section +Others_7267 = Autres # Placeholder text for NWC URI input Paste_your_NWC_URI_here_b471 = Collez ici votre NWC URI... # Error message for missing deck name @@ -265,6 +289,8 @@ replying_to_a_note_e0bc = répondre à une note Repost_this_note_8e56 = Republier cette note # Label for reposted notes Reposted_61c8 = Republier +# Label for reset zoom level, Appearance settings section +Reset_62d4 = Réinitialiser # Heading for support section Running_into_a_bug_1796 = Vous rencontrez un problème ? # Label for satoshis (Bitcoin unit) for custom zap amount input field @@ -287,6 +313,10 @@ See_notes_from_your_contacts_ac16 = Afficher les notes de vos contacts See_the_whole_nostr_universe_7694 = Voir l'ensemble de l'univers nostr # Button label to send a zap Send_1ea4 = Envoyer +# Column title for app settings +Settings_7a4f = Paramètres +# Label for Show source client, others settings section +Show_source_client_9e31 = Afficher le client source # Description for last note per user column Show_the_last_note_for_each_user_from_a_list_50e7 = Afficher la dernière note de chaque utilisateur à partir d'une liste # Button label to sign out of account @@ -313,6 +343,8 @@ Stay_up_to_date_with_your_notifications_and_mentions_e73e = Restez informé pour Step_1_8656 = Etape 1 # Step 2 label in support instructions Step_2_d08d = Etape 2 +# Label for storage settings section +Storage_ed65 = Stockage # Column title for subscribing to external user Subscribe_to_someone_else_s_notes_d1e9 = S'abonner aux notes de quelqu'un d'autre # Column title for subscribing to individual user @@ -325,10 +357,14 @@ Switch_to_light_mode_72ce = Passer en mode clair Tap_to_Load_4b05 = Appuyer pour charger # Message shown when Dave trial period has ended The_Dave_Nostr_AI_assistant_trial_has_ended_____Thanks_for_testing__Zap-enabled_Dave_coming_soon_c6c7 = La période d'essai de l'assistant IA Dave Nostr est terminée :(. Merci de l'avoir testé ! Un Dave compatible-Zap sera bientôt disponible ! +# Label for theme, Appearance settings section +Theme_4aac = Thème : # Column title for note thread view Thread_0f20 = Fil # Link text for thread references thread_ad1f = fil +# Option in settings section to show the source client label at the top of the note +Top_6aeb = En haut # Title for universe column Universe_e01e = Universel # Column title for universe feed @@ -339,6 +375,8 @@ Use_this_wallet_for_the_current_account_only_61dc = Utiliser ce portefeuille pou username___at___domain___will_be_used_for_identification_a4fd = "{ $username }" à "{ $domain }" sera utilisé pour l'identification # Profile username field label Username_daa7 = Nom d'utilisateur +# Label for view folder button, Storage settings section +View_folder_9742 = Voir le dossier : # Column title for wallet management Wallet_5e50 = Portefeuille # Hint for deck name input field @@ -357,6 +395,8 @@ Your_Notifications_080d = Vos notifications Zap_16b4 = Zap # Hover text for zap button Zap_this_note_42b2 = Zap cette note +# Label for zoom level, Appearance settings section +Zoom_Level_29a8 = Niveau de zoom : # Pluralized strings diff --git a/assets/translations/pt-BR/main.ftl b/assets/translations/pt-BR/main.ftl @@ -0,0 +1,408 @@ +# Main translation file for Notedeck +# This file contains common UI strings used throughout the application +# Auto-generated by extract_i18n.py - DO NOT EDIT MANUALLY + + +# Regular strings + +# Profile about/bio field label +About_00c0 = Sobre +# Column title for account management +Accounts_f018 = Contas +# Button label to add a relay +Add_269d = Transmitir +# Label for add column button +Add_47df = Adicionar coluna +# Button label to add a different wallet +Add_a_different_wallet_that_will_only_be_used_for_this_account_de8d = Adicionar outra carteira a ser usada apenas nesta conta +# Error message for missing wallet +Add_a_wallet_to_continue_d170 = Obrigatório adicionar carteira +# Button label to add a new account +Add_account_1cfc = Adicionar conta nova aqui +# Column title for adding new account +Add_Account_d06c = Adicionar nova conta +# Column title for adding algorithm column +Add_Algo_Column_0d75 = Adicionar coluna de algoritmo +# Column title for adding new column +Add_Column_c764 = Adicionar coluna +# Column title for adding new deck +Add_Deck_fabf = Adicionar aba +# Column title for adding external notifications column +Add_External_Notifications_Column_41ae = Adicionar coluna de notificações externas +# Column title for adding hashtag column +Add_Hashtag_Column_ebf4 = Adicionar coluna de # +# Column title for adding last notes column +Add_Last_Notes_Column_bbad = Adicionar última coluna de notas +# Column title for adding notifications column +Add_Notifications_Column_79f8 = Adicionar coluna de notificações +# Button label to add a relay +Add_relay_269d = Adicionar transmissão +# Button label to add a wallet +Add_Wallet_d1be = Adicionar carteira +# Title for algorithmic feeds column +Algo_2452 = Algoritmos +# Description for algorithmic feeds column +Algorithmic_feeds_to_aid_in_note_discovery_d344 = Algoritmos para pesquisar notas +# Label for zap amount input field +Amount_70f0 = Valor +# Label for appearance settings section +Appearance_4c7f = Aparência +# Button to send message to Dave AI assistant +Ask_b7f4 = Perguntar +# Placeholder text for Dave AI input field +Ask_dave_anything_33d1 = Perguntar ao Dave +# Profile banner URL field label +Banner_52ef = Destaque +# Beta version label +BETA_8e5d = Beta +# Option in settings section to show the source client label at the bottom of the note +Bottom_33c8 = Abaixo +# Broadcast the note to all connected relays +Broadcast_fe43 = Encaminhar +# Broadcast the note only to local network relays +Broadcast_Local_7e50 = Encaminhar especificamente +# Button label to cancel an action +Cancel_ed3b = Cancelar +# Label for cancel clear cache, Storage settings section +Cancel_fd8b = Cancelar +# Label for clear cache button, Storage settings section +Clear_cache_dccb = Limpar cache +# Hover text for editable zap amount +Click_to_edit_0414 = Editar valor +# Column title for note composition +Compose_Note_c094 = Compor nota +# Label for configure relays, settings section +Configure_relays_d156 = Configurar canais +# Label for confirm clear cache, Storage settings section +Confirm_9d9d = Confirmar +# Button label to confirm an action +Confirm_f8a6 = Confirmar +# Status label for connected relay +Connected_f8cc = Conectar +# Status label for connecting relay +Connecting_6b7e = Conectando... +# Title for contact list column +Contact_List_f85a = Lista de contatos +# Column title for contact lists +Contacts_7533 = Contatos +# Column title for last notes per contact +Contacts__last_notes_3f84 = Contatos (últimas notas) +# Button label to copy logs +Copy_a688 = Copiar +# Button to copy media link to clipboard +Copy_Link_dc7c = Copiar link +# Copy the unique note identifier to clipboard +Copy_Note_ID_6b45 = Copiar ID da nota +# Copy the raw note data in JSON format to clipboard +Copy_Note_JSON_9e4e = Copiar nota "JSON" +# Copy the author's public key to clipboard +Copy_Pubkey_9cc4 = Copiar chave pública +# Copy the text content of the note to clipboard +Copy_Text_f81c = Copiar texto +# Relative time in days +count_d_b9be = { $count }D +# Relative time in hours +count_h_3ecb = { $count }H +# Relative time in minutes +count_m_b41e = { $count }M +# Relative time in months +count_mo_7aba = { $count }Mes +# Relative time in seconds +count_s_aa26 = { $count }S +# Relative time in weeks +count_w_7468 = { $count }Sem +# Relative time in years +count_y_9408 = { $count }A +# Button to create a new account +Create_Account_6994 = Criar conta +# Button label to create a new deck +Create_Deck_16b7 = Criar aba +# Column title for custom timelines +Custom_a69e = Personalizar +# Column title for zap amount customization +Customize_Zap_Amount_cfc4 = Personalizar valor do ZAP +# Column title for support page +Damus_Support_27c0 = Ajuda +# Label for Theme Dark, Appearance settings section +Dark_85fe = Modo escuro +# Label for deck name input field +Deck_name_cd32 = Nome da aba +# Label for decks section in side panel +DECKS_1fad = ABAS +# Label for default zap amount input +Default_amount_per_zap_399d = Valor padrão de ZAP +# Name of the default deck feed +Default_Deck_fcca = Nome padrão de abas +# Button label to delete a deck +Delete_Deck_bb29 = Deletar aba +# Tooltip for deleting a column +Delete_this_column_8d5a = Deletar esta coluna +# Button label to delete a wallet +Delete_Wallet_d1d4 = Deletar carteira +# Profile display name field label +Display_name_f9d9 = Nome de exibição +# Domain identification message +domain___will_be_used_for_identification_b67e = "{ $domain }" será utilizado para identificação +# Column title for editing deck +Edit_Deck_4018 = Editar aba +# Button label to edit a deck +Edit_Deck_fd93 = Editar +# Button label to edit user profile +Edit_Profile_49e6 = Editar perfil +# Column title for profile editing +Edit_Profile_8ad4 = Editar perfil +# Placeholder for hashtag input field +Enter_the_desired_hashtags_here__for_multiple_space-separated_7a69 = Digite as # desejadas aqui (para múltiplos espaços separados) +# Placeholder for relay input field +Enter_the_relay_here_1c8b = Insira a retransmissão aqui +# Hint text to prompt entering the user's public key. +Enter_the_user_s_key__npub__hex__nip05__here_650c = Digite a chave do usuário (npub, hex, nip05) aqui... +# Label for key input field. Key can be public key (npub), private key (nsec), or Nostr address (NIP-05). +Enter_your_key_0fca = Sua chave aqui +# Instructions for entering Nostr credentials +Enter_your_public_key__npub___nostr_address__e_g___address____or_private_key__nsec___You_must_enter_your_private_key_to_be_able_to_post__reply__etc_48e9 = Insira sua chave pública (npub), endereço do Nostr (e.g. { $address }), ou chave privada (nsec). Você deve digitar sua chave privada para conseguir publicar, responder, etc. +# Label for find user button +Find_User_bd12 = Pesquisar usuário +# Title for hashtags column +Hashtags_f8e0 = # +# Option in settings section to hide the source client label in note display +Hide_281d = Ocultar +# Title for Home column +Home_8c19 = Início +# Label for deck icon selection +Icon_b0ab = Ícone +# Label for Image cache size, Storage settings section +Image_cache_size_3004 = Tamanho do cache de imagem: +# Title for individual user column +Individual_b776 = Individual +# Error message for invalid zap amount +Invalid_amount_6630 = Quantia inválida +# Error message for invalid key input +Invalid_key_4726 = Chave inválida +# Error message for invalid Nostr Wallet Connect URI +Invalid_NWC_URI_031b = NWC URI Inválido +# Zap amount button for 100000 sats. Abbreviated because the button is too small to display the full amount. +k_100K_686c = 100 mil +# Zap amount button for 10000 sats. Abbreviated because the button is too small to display the full amount. +k_10K_f7e6 = 10 mil +# Zap amount button for 20000 sats. Abbreviated because the button is too small to display the full amount. +k_20K_4977 = 20 mil +# Zap amount button for 50000 sats. Abbreviated because the button is too small to display the full amount. +k_50K_c2dc = 50 mil +# Zap amount button for 5000 sats. Abbreviated because the button is too small to display the full amount. +k_5K_f7e6 = 5 mil +# Description for your notes column +Keep_track_of_your_notes___replies_a334 = Acompanhe suas notas e respostas +# Label for language, Appearance settings section +Language_e264 = Idioma +# Title for last note per user column +Last_Note_per_User_17ad = Última Nota por Usuário +# Label for Theme Light, Appearance settings section +Light_7475 = Modo claro +# Bitcoin Lightning network address field label +Lightning_network_address__lud16_ea51 = Endereço de rede de eletrização (lud16) +# Login page title +Login_9eef = Entrar +# Login button text +Login_now___let_s_do_this_5630 = Entrar agora! Vamos nessa! +# Text shown on blurred media from unfollowed users +Media_from_someone_you_don_t_follow_5611 = Conteúdo de pessoas que você não segue +# Tooltip for moving a column +Moves_this_column_to_another_position_0d4b = Mover esta coluna +# Title for the user's deck +My_Deck_4ac5 = Minha aba +# Label asking if the user is new to Nostr. Underneath this label is a button to create an account. +New_to_Nostr_a2fd = Novo no Nostr? +# NIP-05 identity field label +Nostr_address__NIP-05_identity_74a2 = Endereço Nostr (Identidade NIP-05) +# Default username when profile is not available +nostrich_df29 = Nostrich +# Status label for disconnected relay +Not_Connected_6292 = Desconectado +# Link text for note references +note_cad6 = Nota +# Beta product warning message +Notedeck_is_a_beta_product__Expect_bugs_and_contact_us_when_you_run_into_issues_a671 = Notedeck é um produto beta. Espere erros e entre em contato conosco quando tiver problemas. +# Filter label for notes only view +Notes_03fb = Notas +# Label for notes-only filter +Notes_60d2 = Notas +# Filter label for notes and replies view +Notes___Replies_1ec2 = Notas e respostas +# Label for notes and replies filter +Notes___Replies_6e3b = Notas e respostas +# Column title for notifications +Notifications_d673 = Notificações +# Title for notifications column +Notifications_ef56 = Notificações +# Relative time for very recent events (less than 3 seconds) +now_2181 = Agora +# Button label to open email client +Open_Email_25e9 = Abrir E-mail +# Instruction to open email client +Open_your_default_email_client_to_get_help_from_the_Damus_team_68dc = Abra o seu cliente de e-mail padrão para obter ajuda do time Damus +# Label for others settings section +Others_7267 = Outros +# Placeholder text for NWC URI input +Paste_your_NWC_URI_here_b471 = Cole seu URI NWC aqui... +# Error message for missing deck name +Please_create_a_name_for_the_deck_38e7 = Por favor, crie um nome para a aba. +# Error message for missing deck name and icon +Please_create_a_name_for_the_deck_and_select_an_icon_0add = Por favor, crie um nome para a aba e selecione um ícone. +# Error message for missing deck icon +Please_select_an_icon_655b = Favor selecionar um ícone. +# Button label to post a note +Post_now_8a49 = Postar +# Instruction for copying logs +Press_the_button_below_to_copy_your_most_recent_logs_to_your_system_s_clipboard__Then_paste_it_into_your_email_322e = Clique abaixo para copiar seus registros mais recentes para a área de transferência do seu sistema. Em seguida, cole-os no seu E-mail. +# Profile picture URL field label +Profile_picture_81ff = Foto de perfil +# Column title for quote composition +Quote_475c = Citação +# Error message when quote note cannot be found +Quote_of_unknown_note_e4f0 = Citação de nota desconhecida +# Label for read-only profile mode +Read_only_82ff = Modo leitura +# Column title for relay management +Relays_9d89 = Canais +# Label for relay list section +Relays_ad5e = Canais +# Column title for reply composition +Reply_3bf1 = Responder +# Hover text for reply button +Reply_to_this_note_f5de = Responder esta nota +# Error message when reply note cannot be found +Reply_to_unknown_note_4401 = Responder nota desconhecida +# Fallback template for replying to user +replying_to__user_15ab = Respondendo { $user } +# Template for replying to user in unknown thread +replying_to__user__in_someone_s_thread_e148 = Respondendo { $user } no tópico de alguém +# Template for replying to note in different user's thread +replying_to__user__s__note__in__thread_user__s__thread_daa8 = Resposta { $user }de { $note } em { $thread_user }' { $thread } +# Template for replying to user's note +replying_to__user__s__note_ccba = Respondendo { $user }de { $note } +# Template for replying to root thread +replying_to__user__s__thread_444d = Respondendo { $user }de { $thread } +# Fallback text when reply note is not found +replying_to_a_note_e0bc = Respondendo nota +# Hover text for repost button +Repost_this_note_8e56 = Republicar nota +# Label for reposted notes +Reposted_61c8 = Publicada +# Label for reset zoom level, Appearance settings section +Reset_62d4 = Resetar +# Heading for support section +Running_into_a_bug_1796 = Precisa de ajuda? +# Label for satoshis (Bitcoin unit) for custom zap amount input field +SATS_45d7 = SATS +# Unit label for satoshis (Bitcoin unit) for configuring default zap amount in wallet settings. +sats_e5ec = sats +# Button to save default zap amount +Save_6f7c = Salvar +# Button label to save profile changes +Save_changes_00db = Salvo +# Column title for search page +Search_c573 = Pesquisar +# Placeholder for search notes input field +Search_notes_42a6 = Pesquisar notas... +# Search in progress message +Searching_for___query_5d18 = Pesquisando por '{ $query }' +# Description for Home column +See_notes_from_your_contacts_ac16 = Veja notas dos seus contatos +# Description for universe column +See_the_whole_nostr_universe_7694 = Veja todo o universo Nostr +# Button label to send a zap +Send_1ea4 = Enviar +# Column title for app settings +Settings_7a4f = Configurações +# Label for Show source client, others settings section +Show_source_client_9e31 = Mostrar cliente de origem +# Description for last note per user column +Show_the_last_note_for_each_user_from_a_list_50e7 = Mostrar a última nota para cada usuário de uma lista +# Button label to sign out of account +Sign_out_337b = Sair +# Title for someone else's notes column +Someone_else_s_Notes_7e5f = Notas de outra pessoa +# Title for someone else's notifications column +Someone_else_s_Notifications_82e6 = Notificações de outra pessoa +# Description for contact list column +Source_the_last_note_for_each_user_in_your_contact_list_e157 = Fonte da última nota para cada usuário em sua lista de contatos +# Description for hashtags column +Stay_up_to_date_with_a_certain_hashtag_88e3 = Mantenha-se atualizado com uma certa hashtag +# Description for notifications column +Stay_up_to_date_with_notifications_and_mentions_6f4e = Ficar atualizado com notificações e menções +# Description for someone else's notes column +Stay_up_to_date_with_someone_else_s_notes___replies_464c = Mantenha-se atualizado com as notas e respostas de alguém +# Description for someone else's notifications column +Stay_up_to_date_with_someone_else_s_notifications_and_mentions_3473 = Mantenha-se atualizado com as notificações e menções de alguém +# Description for individual user column +Stay_up_to_date_with_someone_s_notes___replies_aa78 = Mantenha-se atualizado com as notas e respostas de alguém +# Description for your notifications column +Stay_up_to_date_with_your_notifications_and_mentions_e73e = Mantenha-se atualizado com suas notificações e menções +# Step 1 label in support instructions +Step_1_8656 = Passo 1 +# Step 2 label in support instructions +Step_2_d08d = Passo 2 +# Label for storage settings section +Storage_ed65 = Armazenamento +# Column title for subscribing to external user +Subscribe_to_someone_else_s_notes_d1e9 = Inscrever-se em notas de outra pessoa +# Column title for subscribing to individual user +Subscribe_to_someone_s_notes_b3c8 = Inscrever-se nas notas de alguém +# Hover text for dark mode toggle button +Switch_to_dark_mode_4dec = Mudar para modo escuro +# Hover text for light mode toggle button +Switch_to_light_mode_72ce = Mudar para modo claro +# Button text to load blurred media +Tap_to_Load_4b05 = Toque para carregar +# Message shown when Dave trial period has ended +The_Dave_Nostr_AI_assistant_trial_has_ended_____Thanks_for_testing__Zap-enabled_Dave_coming_soon_c6c7 = O teste do assistente de IA Dave Nostr terminou :(. Obrigado por testar! Em breve teremos Dave habilitado para Zap +# Label for theme, Appearance settings section +Theme_4aac = Tema: +# Column title for note thread view +Thread_0f20 = Fio +# Link text for thread references +thread_ad1f = Fio +# Option in settings section to show the source client label at the top of the note +Top_6aeb = Topo +# Title for universe column +Universe_e01e = Universo +# Column title for universe feed +Universe_ffaa = Universo +# Checkbox label for using wallet only for current account +Use_this_wallet_for_the_current_account_only_61dc = Use esta carteira apenas para a conta atual +# Username and domain identification message +username___at___domain___will_be_used_for_identification_a4fd = d = "{ $username }" em "{ $domain }" será usado para identificação +# Profile username field label +Username_daa7 = Usuário +# Label for view folder button, Storage settings section +View_folder_9742 = Visualizar pasta: +# Column title for wallet management +Wallet_5e50 = Carteira +# Hint for deck name input field +We_recommend_short_names_083e = Recomendamos nomes pequenos +# Profile website field label +Website_7980 = Site +# Placeholder for note input field +Write_a_banger_note_here_bad2 = Escreva uma nota criativa aqui. +# Placeholder text for key input field +Your_key_here_81bd = Sua chave aqui... +# Title for your notes column +Your_Notes_f6db = Suas notas +# Title for your notifications column +Your_Notifications_080d = Suas notificações +# Heading for zap (tip) action +Zap_16b4 = Zap +# Hover text for zap button +Zap_this_note_42b2 = Zap esta nota +# Label for zoom level, Appearance settings section +Zoom_Level_29a8 = Nível de zoom: + +# Pluralized strings + +# Search results count +Got__count__results_for___query_85fb = + { $count -> + [one] Obteve um resultado { $count } para '{ $query }' + *[other] Obteve { $count } resultados para '{ $query }' + } diff --git a/assets/translations/th/main.ftl b/assets/translations/th/main.ftl @@ -45,6 +45,8 @@ Algo_2452 = อัลกอฯ Algorithmic_feeds_to_aid_in_note_discovery_d344 = ฟีดแบบอัลกอริทึมที่ช่วยในการค้นหาโน้ต # Label for zap amount input field Amount_70f0 = จำนวน +# Label for appearance settings section +Appearance_4c7f = รูปลักษณ์ # Button to send message to Dave AI assistant Ask_b7f4 = ถาม # Placeholder text for Dave AI input field @@ -53,16 +55,26 @@ Ask_dave_anything_33d1 = ถามเดฟได้ทุกเรื่อง. Banner_52ef = ภาพปก # Beta version label BETA_8e5d = เบต้า +# Option in settings section to show the source client label at the bottom of the note +Bottom_33c8 = ด้านล่าง # Broadcast the note to all connected relays Broadcast_fe43 = เผยแพร่ # Broadcast the note only to local network relays Broadcast_Local_7e50 = เผยแพร่เฉพาะที่ # Button label to cancel an action Cancel_ed3b = ยกเลิก +# Label for cancel clear cache, Storage settings section +Cancel_fd8b = ยกเลิก +# Label for clear cache button, Storage settings section +Clear_cache_dccb = ล้างแคช # Hover text for editable zap amount Click_to_edit_0414 = คลิกเพื่อแก้ไข # Column title for note composition Compose_Note_c094 = เขียนโน้ต +# Label for configure relays, settings section +Configure_relays_d156 = กำหนดค่ารีเลย์ +# Label for confirm clear cache, Storage settings section +Confirm_9d9d = ยืนยัน # Button label to confirm an action Confirm_f8a6 = ยืนยัน # Status label for connected relay @@ -111,6 +123,8 @@ Custom_a69e = กำหนดเอง Customize_Zap_Amount_cfc4 = กำหนดจำนวน Zap # Column title for support page Damus_Support_27c0 = ฝ่ายสนับสนุน Damus +# Label for Theme Dark, Appearance settings section +Dark_85fe = มืด # Label for deck name input field Deck_name_cd32 = ชื่อ Deck # Label for decks section in side panel @@ -153,10 +167,14 @@ Enter_your_public_key__npub___nostr_address__e_g___address____or_private_key__ns Find_User_bd12 = ค้นหาผู้ใช้ # Title for hashtags column Hashtags_f8e0 = แฮชแท็ก +# Option in settings section to hide the source client label in note display +Hide_281d = ซ่อน # Title for Home column Home_8c19 = หน้าแรก # Label for deck icon selection Icon_b0ab = ไอคอน +# Label for Image cache size, Storage settings section +Image_cache_size_3004 = ขนาดแคชรูปภาพ: # Title for individual user column Individual_b776 = ปัจเจคบุคคล # Error message for invalid zap amount @@ -177,8 +195,12 @@ k_50K_c2dc = 50K k_5K_f7e6 = 5K # Description for your notes column Keep_track_of_your_notes___replies_a334 = ติดตามโน้ตและการตอบกลับของคุณ +# Label for language, Appearance settings section +Language_e264 = ภาษา: # Title for last note per user column Last_Note_per_User_17ad = โน้ตล่าสุดของผู้ใช้แต่ละคน +# Label for Theme Light, Appearance settings section +Light_7475 = สว่าง # Bitcoin Lightning network address field label Lightning_network_address__lud16_ea51 = ที่อยู่ Lightning Network (lud16) # Login page title @@ -221,6 +243,8 @@ now_2181 = เมื่อสักครู่ Open_Email_25e9 = เปิดอีเมล # Instruction to open email client Open_your_default_email_client_to_get_help_from_the_Damus_team_68dc = เปิดโปรแกรมอีเมลของคุณเพื่อรับความช่วยเหลือจากทีม Damus +# Label for others settings section +Others_7267 = อื่นๆ # Placeholder text for NWC URI input Paste_your_NWC_URI_here_b471 = วาง NWC URI ของคุณที่นี่... # Error message for missing deck name @@ -267,6 +291,8 @@ replying_to_a_note_e0bc = ตอบกลับโน้ต Repost_this_note_8e56 = รีโพสต์โน้ตนี้ # Label for reposted notes Reposted_61c8 = รีโพสต์แล้ว +# Label for reset zoom level, Appearance settings section +Reset_62d4 = รีเซ็ต # Heading for support section Running_into_a_bug_1796 = พบปัญหาในการใช้งานใช่ไหม? # Label for satoshis (Bitcoin unit) for custom zap amount input field @@ -289,6 +315,10 @@ See_notes_from_your_contacts_ac16 = ดูโน้ตจากผู้ติ See_the_whole_nostr_universe_7694 = ท่องจักรวาล Nostr ทั้งหมด # Button label to send a zap Send_1ea4 = ส่ง +# Column title for app settings +Settings_7a4f = การตั้งค่า +# Label for Show source client, others settings section +Show_source_client_9e31 = แสดงไคลเอนต์ต้นทาง # Description for last note per user column Show_the_last_note_for_each_user_from_a_list_50e7 = แสดงโน้ตล่าสุดของผู้ใช้แต่ละคนจากรายการ # Button label to sign out of account @@ -315,6 +345,8 @@ Stay_up_to_date_with_your_notifications_and_mentions_e73e = ติดตาม Step_1_8656 = ขั้นตอนที่ 1 # Step 2 label in support instructions Step_2_d08d = ขั้นตอนที่ 2 +# Label for storage settings section +Storage_ed65 = พื้นที่จัดเก็บ # Column title for subscribing to external user Subscribe_to_someone_else_s_notes_d1e9 = ติดตามโน้ตของผู้อื่น # Column title for subscribing to individual user @@ -327,10 +359,14 @@ Switch_to_light_mode_72ce = เปลี่ยนเป็นโหมดสว Tap_to_Load_4b05 = แตะเพื่อโหลด # Message shown when Dave trial period has ended The_Dave_Nostr_AI_assistant_trial_has_ended_____Thanks_for_testing__Zap-enabled_Dave_coming_soon_c6c7 = ช่วงทดลองใช้ผู้ช่วย AI 'Dave Nostr' ได้สิ้นสุดลงแล้ว :( ขอบคุณที่ร่วมทดสอบ! Dave ที่รองรับการ Zap กำลังจะมาเร็วๆ นี้! +# Label for theme, Appearance settings section +Theme_4aac = ธีม: # Column title for note thread view Thread_0f20 = เธรด # Link text for thread references thread_ad1f = เธรด +# Option in settings section to show the source client label at the top of the note +Top_6aeb = ด้านบน # Title for universe column Universe_e01e = จักรวาล # Column title for universe feed @@ -341,6 +377,8 @@ Use_this_wallet_for_the_current_account_only_61dc = ใช้วอลเล็ username___at___domain___will_be_used_for_identification_a4fd = "{ $username }" ที่ "{ $domain }" จะถูกใช้สำหรับการระบุตัวตน # Profile username field label Username_daa7 = ชื่อผู้ใช้ +# Label for view folder button, Storage settings section +View_folder_9742 = ดูโฟลเดอร์: # Column title for wallet management Wallet_5e50 = วอลเล็ต # Hint for deck name input field @@ -359,6 +397,8 @@ Your_Notifications_080d = การแจ้งเตือนของคุณ Zap_16b4 = Zap # Hover text for zap button Zap_this_note_42b2 = Zap โน้ตนี้ +# Label for zoom level, Appearance settings section +Zoom_Level_29a8 = ระดับการซูม: # Pluralized strings diff --git a/assets/translations/zh-CN/main.ftl b/assets/translations/zh-CN/main.ftl @@ -45,6 +45,8 @@ Algo_2452 = 算法 Algorithmic_feeds_to_aid_in_note_discovery_d344 = 用于帮助发现笔记的算法源 # Label for zap amount input field Amount_70f0 = 金额 +# Label for appearance settings section +Appearance_4c7f = 外观 # Button to send message to Dave AI assistant Ask_b7f4 = 询问 # Placeholder text for Dave AI input field @@ -53,16 +55,26 @@ Ask_dave_anything_33d1 = 向 Dave 提问任何问题… Banner_52ef = 横幅 # Beta version label BETA_8e5d = BETA +# Option in settings section to show the source client label at the bottom of the note +Bottom_33c8 = 底部 # Broadcast the note to all connected relays Broadcast_fe43 = 广播 # Broadcast the note only to local network relays Broadcast_Local_7e50 = 仅广播至本地中继 # Button label to cancel an action Cancel_ed3b = 取消 +# Label for cancel clear cache, Storage settings section +Cancel_fd8b = 取消 +# Label for clear cache button, Storage settings section +Clear_cache_dccb = 清除缓存 # Hover text for editable zap amount Click_to_edit_0414 = 点击以编辑 # Column title for note composition Compose_Note_c094 = 撰写笔记 +# Label for configure relays, settings section +Configure_relays_d156 = 配置中继器 +# Label for confirm clear cache, Storage settings section +Confirm_9d9d = 确认 # Button label to confirm an action Confirm_f8a6 = 确认 # Status label for connected relay @@ -111,6 +123,8 @@ Custom_a69e = 自定义 Customize_Zap_Amount_cfc4 = 自定义打闪金额 # Column title for support page Damus_Support_27c0 = 达摩支持 +# Label for Theme Dark, Appearance settings section +Dark_85fe = 暗色 # Label for deck name input field Deck_name_cd32 = 仪表板名称 # Label for decks section in side panel @@ -151,10 +165,14 @@ Enter_your_public_key__npub___nostr_address__e_g___address____or_private_key__ns Find_User_bd12 = 查找用户 # Title for hashtags column Hashtags_f8e0 = 标签 +# Option in settings section to hide the source client label in note display +Hide_281d = 隐藏 # Title for Home column Home_8c19 = 主页 # Label for deck icon selection Icon_b0ab = 图标 +# Label for Image cache size, Storage settings section +Image_cache_size_3004 = 图像缓存大小: # Title for individual user column Individual_b776 = 个人 # Error message for invalid zap amount @@ -175,8 +193,12 @@ k_50K_c2dc = 5万 k_5K_f7e6 = 5千 # Description for your notes column Keep_track_of_your_notes___replies_a334 = 随时查看你的笔记和回复 +# Label for language, Appearance settings section +Language_e264 = 语言: # Title for last note per user column Last_Note_per_User_17ad = 每个用户的最新笔记 +# Label for Theme Light, Appearance settings section +Light_7475 = 亮色 # Bitcoin Lightning network address field label Lightning_network_address__lud16_ea51 = 闪电网络地址(lud16) # Login page title @@ -219,6 +241,8 @@ now_2181 = 刚刚 Open_Email_25e9 = 打开电子邮箱 # Instruction to open email client Open_your_default_email_client_to_get_help_from_the_Damus_team_68dc = 打开你的默认电子邮件客户端以获得达摩团队的帮助 +# Label for others settings section +Others_7267 = 其它 # Placeholder text for NWC URI input Paste_your_NWC_URI_here_b471 = 在此粘贴你的 NWC URI... # Error message for missing deck name @@ -265,6 +289,8 @@ replying_to_a_note_e0bc = 正在回复笔记 Repost_this_note_8e56 = 转发此笔记 # Label for reposted notes Reposted_61c8 = 已转发 +# Label for reset zoom level, Appearance settings section +Reset_62d4 = 重置 # Heading for support section Running_into_a_bug_1796 = 遇到故障了吗? # Label for satoshis (Bitcoin unit) for custom zap amount input field @@ -287,6 +313,10 @@ See_notes_from_your_contacts_ac16 = 查看来自你的联系人的笔记 See_the_whole_nostr_universe_7694 = 查看整个 nostr 宇宙 # Button label to send a zap Send_1ea4 = 发送 +# Column title for app settings +Settings_7a4f = 设置 +# Label for Show source client, others settings section +Show_source_client_9e31 = 显示来源客户端 # Description for last note per user column Show_the_last_note_for_each_user_from_a_list_50e7 = 显示列表中每个用户的最新一条笔记 # Button label to sign out of account @@ -313,6 +343,8 @@ Stay_up_to_date_with_your_notifications_and_mentions_e73e = 获取你的通知 Step_1_8656 = 第一步 # Step 2 label in support instructions Step_2_d08d = 第二步 +# Label for storage settings section +Storage_ed65 = 存储 # Column title for subscribing to external user Subscribe_to_someone_else_s_notes_d1e9 = 订阅他人的笔记 # Column title for subscribing to individual user @@ -325,10 +357,14 @@ Switch_to_light_mode_72ce = 切换到亮色模式 Tap_to_Load_4b05 = 点击加载 # Message shown when Dave trial period has ended The_Dave_Nostr_AI_assistant_trial_has_ended_____Thanks_for_testing__Zap-enabled_Dave_coming_soon_c6c7 = Dave Nostr AI 助手试用期已经结束 :(。感谢测试!可打闪付款的 Dave 即将来临! +# Label for theme, Appearance settings section +Theme_4aac = 主题: # Column title for note thread view Thread_0f20 = 帖子 # Link text for thread references thread_ad1f = 帖子 +# Option in settings section to show the source client label at the top of the note +Top_6aeb = 顶部 # Title for universe column Universe_e01e = 宇宙 # Column title for universe feed @@ -339,6 +375,8 @@ Use_this_wallet_for_the_current_account_only_61dc = 此钱包仅限用于当前 username___at___domain___will_be_used_for_identification_a4fd = "{ $username }" 于 "{ $domain }" 将被用于身份识别 # Profile username field label Username_daa7 = 用户名 +# Label for view folder button, Storage settings section +View_folder_9742 = 查看文件夹: # Column title for wallet management Wallet_5e50 = 钱包 # Hint for deck name input field @@ -357,6 +395,8 @@ Your_Notifications_080d = 你的通知 Zap_16b4 = 打闪 # Hover text for zap button Zap_this_note_42b2 = 打闪此笔记 +# Label for zoom level, Appearance settings section +Zoom_Level_29a8 = 缩放大小: # Pluralized strings diff --git a/assets/translations/zh-TW/main.ftl b/assets/translations/zh-TW/main.ftl @@ -45,6 +45,8 @@ Algo_2452 = 算法 Algorithmic_feeds_to_aid_in_note_discovery_d344 = 用於幫助發現筆記的算法源 # Label for zap amount input field Amount_70f0 = 金額 +# Label for appearance settings section +Appearance_4c7f = 外觀 # Button to send message to Dave AI assistant Ask_b7f4 = 詢問 # Placeholder text for Dave AI input field @@ -53,16 +55,26 @@ Ask_dave_anything_33d1 = 向 Dave 提問任何問題... Banner_52ef = 橫幅 # Beta version label BETA_8e5d = 測試版 +# Option in settings section to show the source client label at the bottom of the note +Bottom_33c8 = 底部 # Broadcast the note to all connected relays Broadcast_fe43 = 廣播 # Broadcast the note only to local network relays Broadcast_Local_7e50 = 僅廣播至本地中繼 # Button label to cancel an action Cancel_ed3b = 取消 +# Label for cancel clear cache, Storage settings section +Cancel_fd8b = 取消 +# Label for clear cache button, Storage settings section +Clear_cache_dccb = 清除快取 # Hover text for editable zap amount Click_to_edit_0414 = 點擊編輯 # Column title for note composition Compose_Note_c094 = 撰寫筆記 +# Label for configure relays, settings section +Configure_relays_d156 = 配置中繼器 +# Label for confirm clear cache, Storage settings section +Confirm_9d9d = 確認 # Button label to confirm an action Confirm_f8a6 = 確認 # Status label for connected relay @@ -111,6 +123,8 @@ Custom_a69e = 自訂 Customize_Zap_Amount_cfc4 = 自訂打閃金額 # Column title for support page Damus_Support_27c0 = 達摩支持 +# Label for Theme Dark, Appearance settings section +Dark_85fe = 暗色 # Label for deck name input field Deck_name_cd32 = 儀表板名稱 # Label for decks section in side panel @@ -151,10 +165,14 @@ Enter_your_public_key__npub___nostr_address__e_g___address____or_private_key__ns Find_User_bd12 = 查找用戶 # Title for hashtags column Hashtags_f8e0 = 標籤 +# Option in settings section to hide the source client label in note display +Hide_281d = 隱藏 # Title for Home column Home_8c19 = 主頁 # Label for deck icon selection Icon_b0ab = 圖標 +# Label for Image cache size, Storage settings section +Image_cache_size_3004 = 圖像快取大小: # Title for individual user column Individual_b776 = 個人 # Error message for invalid zap amount @@ -175,8 +193,12 @@ k_50K_c2dc = 5萬 k_5K_f7e6 = 5千 # Description for your notes column Keep_track_of_your_notes___replies_a334 = 隨時查看你的筆記和回覆 +# Label for language, Appearance settings section +Language_e264 = 語言: # Title for last note per user column Last_Note_per_User_17ad = 每個用戶的最新筆記 +# Label for Theme Light, Appearance settings section +Light_7475 = 亮色 # Bitcoin Lightning network address field label Lightning_network_address__lud16_ea51 = 閃電網絡地址(lud16) # Login page title @@ -219,6 +241,8 @@ now_2181 = 剛剛 Open_Email_25e9 = 打開電子郵箱 # Instruction to open email client Open_your_default_email_client_to_get_help_from_the_Damus_team_68dc = 打開你的默認電子郵件客戶端以獲得達摩團隊的幫助 +# Label for others settings section +Others_7267 = 其他 # Placeholder text for NWC URI input Paste_your_NWC_URI_here_b471 = 在此貼上你的 NWC URI... # Error message for missing deck name @@ -265,6 +289,8 @@ replying_to_a_note_e0bc = 正在回覆筆記 Repost_this_note_8e56 = 轉發此筆記 # Label for reposted notes Reposted_61c8 = 已轉發 +# Label for reset zoom level, Appearance settings section +Reset_62d4 = 重置 # Heading for support section Running_into_a_bug_1796 = 遇到故障了嗎? # Label for satoshis (Bitcoin unit) for custom zap amount input field @@ -287,6 +313,10 @@ See_notes_from_your_contacts_ac16 = 查看來自你的聯繫人的筆記 See_the_whole_nostr_universe_7694 = 查看整個 nostr 宇宙 # Button label to send a zap Send_1ea4 = 發送 +# Column title for app settings +Settings_7a4f = 設置 +# Label for Show source client, others settings section +Show_source_client_9e31 = 顯示來源客戶端 # Description for last note per user column Show_the_last_note_for_each_user_from_a_list_50e7 = 顯示列表中每個用戶的最後一條筆記 # Button label to sign out of account @@ -313,6 +343,8 @@ Stay_up_to_date_with_your_notifications_and_mentions_e73e = 獲取你的通知 Step_1_8656 = 第一步 # Step 2 label in support instructions Step_2_d08d = 第二步 +# Label for storage settings section +Storage_ed65 = 儲存 # Column title for subscribing to external user Subscribe_to_someone_else_s_notes_d1e9 = 訂閱他人的筆記 # Column title for subscribing to individual user @@ -325,10 +357,14 @@ Switch_to_light_mode_72ce = 切換到亮色模式 Tap_to_Load_4b05 = 點擊加載 # Message shown when Dave trial period has ended The_Dave_Nostr_AI_assistant_trial_has_ended_____Thanks_for_testing__Zap-enabled_Dave_coming_soon_c6c7 = Dave Nostr AI 助手試用期已經結束 :(。感謝測試!可打閃付款的 Dave 即將來臨! +# Label for theme, Appearance settings section +Theme_4aac = 主題: # Column title for note thread view Thread_0f20 = 串文 # Link text for thread references thread_ad1f = 串文 +# Option in settings section to show the source client label at the top of the note +Top_6aeb = 頂部 # Title for universe column Universe_e01e = 宇宙 # Column title for universe feed @@ -339,6 +375,8 @@ Use_this_wallet_for_the_current_account_only_61dc = 此錢包僅限用於當前 username___at___domain___will_be_used_for_identification_a4fd = "{ $username }" 於 "{ $domain }" 將被用於身份識別 # Profile username field label Username_daa7 = 用戶名 +# Label for view folder button, Storage settings section +View_folder_9742 = 查看文件夾: # Column title for wallet management Wallet_5e50 = 錢包 # Hint for deck name input field @@ -357,6 +395,8 @@ Your_Notifications_080d = 你的通知 Zap_16b4 = 打閃 # Hover text for zap button Zap_this_note_42b2 = 打閃此筆記 +# Label for zoom level, Appearance settings section +Zoom_Level_29a8 = 縮放大小: # Pluralized strings diff --git a/crates/notedeck/src/i18n/manager.rs b/crates/notedeck/src/i18n/manager.rs @@ -5,16 +5,28 @@ use std::borrow::Cow; use std::collections::HashMap; use unic_langid::{langid, LanguageIdentifier}; -const EN_XA: LanguageIdentifier = langid!("en-XA"); const EN_US: LanguageIdentifier = langid!("en-US"); +const EN_XA: LanguageIdentifier = langid!("en-XA"); const DE: LanguageIdentifier = langid!("de"); const ES_419: LanguageIdentifier = langid!("es-419"); const ES_ES: LanguageIdentifier = langid!("es-ES"); -const FR: LanguageIdentifier = langid!("FR"); -const TH: LanguageIdentifier = langid!("TH"); -const ZH_CN: LanguageIdentifier = langid!("ZH_CN"); -const ZH_TW: LanguageIdentifier = langid!("ZH_TW"); -const NUM_FTLS: usize = 9; +const FR: LanguageIdentifier = langid!("fr"); +const PT_BR: LanguageIdentifier = langid!("pt-BR"); +const TH: LanguageIdentifier = langid!("th"); +const ZH_CN: LanguageIdentifier = langid!("zh-CN"); +const ZH_TW: LanguageIdentifier = langid!("zh-TW"); +const NUM_FTLS: usize = 10; + +const EN_US_NATIVE_NAME: &str = "English (US)"; +const EN_XA_NATIVE_NAME: &str = "Éñglísh (Pséúdólóçàlé)"; +const DE_NATIVE_NAME: &str = "Deutsch"; +const ES_419_NATIVE_NAME: &str = "Español (Latinoamérica)"; +const ES_ES_NATIVE_NAME: &str = "Español (España)"; +const FR_NATIVE_NAME: &str = "Français"; +const PT_BR_NATIVE_NAME: &str = "Português (Brasil)"; +const TH_NATIVE_NAME: &str = "ภาษาไทย"; +const ZH_CN_NATIVE_NAME: &str = "简体中文"; +const ZH_TW_NATIVE_NAME: &str = "繁體中文"; struct StaticBundle { identifier: LanguageIdentifier, @@ -47,6 +59,10 @@ const FTLS: [StaticBundle; NUM_FTLS] = [ ftl: include_str!("../../../../assets/translations/fr/main.ftl"), }, StaticBundle { + identifier: PT_BR, + ftl: include_str!("../../../../assets/translations/pt-BR/main.ftl"), + }, + StaticBundle { identifier: TH, ftl: include_str!("../../../../assets/translations/th/main.ftl"), }, @@ -70,6 +86,8 @@ pub struct Localization { available_locales: Vec<LanguageIdentifier>, /// Fallback locale fallback_locale: LanguageIdentifier, + /// Native names for locales + locale_native_names: HashMap<LanguageIdentifier, String>, /// Cached string results per locale (only for strings without arguments) string_cache: HashMap<LanguageIdentifier, HashMap<String, String>>, @@ -95,15 +113,30 @@ impl Default for Localization { ES_419.clone(), ES_ES.clone(), FR.clone(), + PT_BR.clone(), TH.clone(), ZH_CN.clone(), ZH_TW.clone(), ]; + let locale_native_names = HashMap::from([ + (EN_US, EN_US_NATIVE_NAME.to_owned()), + (EN_XA, EN_XA_NATIVE_NAME.to_owned()), + (DE, DE_NATIVE_NAME.to_owned()), + (ES_419, ES_419_NATIVE_NAME.to_owned()), + (ES_ES, ES_ES_NATIVE_NAME.to_owned()), + (FR, FR_NATIVE_NAME.to_owned()), + (PT_BR, PT_BR_NATIVE_NAME.to_owned()), + (TH, TH_NATIVE_NAME.to_owned()), + (ZH_CN, ZH_CN_NATIVE_NAME.to_owned()), + (ZH_TW, ZH_TW_NATIVE_NAME.to_owned()), + ]); + Self { current_locale: default_locale.to_owned(), available_locales, fallback_locale, + locale_native_names, use_isolating: true, normalized_key_cache: HashMap::new(), string_cache: HashMap::new(), @@ -391,6 +424,10 @@ impl Localization { &self.fallback_locale } + pub fn get_locale_native_name(&self, locale: &LanguageIdentifier) -> Option<&str> { + self.locale_native_names.get(locale).map(|s| s.as_str()) + } + /// Gets cache statistics for monitoring performance pub fn get_cache_stats(&self) -> Result<CacheStats, Box<dyn std::error::Error + Send + Sync>> { let mut total_strings = 0; diff --git a/crates/notedeck_columns/src/ui/settings.rs b/crates/notedeck_columns/src/ui/settings.rs @@ -103,6 +103,39 @@ impl<'a> SettingsView<'a> { } } + /// Get the localized name for a language identifier + fn get_selected_language_name(&mut self) -> String { + if let Ok(lang_id) = self.selected_language.parse::<LanguageIdentifier>() { + self.i18n + .get_locale_native_name(&lang_id) + .map(|s| s.to_owned()) + .unwrap_or_else(|| lang_id.to_string()) + } else { + self.selected_language.clone() + } + } + + /// Get the localized label for ShowNoteClientOptions + fn get_show_note_client_label(&mut self, option: ShowNoteClientOptions) -> String { + match option { + ShowNoteClientOptions::Hide => tr!( + self.i18n, + "Hide", + "Option in settings section to hide the source client label in note display" + ), + ShowNoteClientOptions::Top => tr!( + self.i18n, + "Top", + "Option in settings section to show the source client label at the top of the note" + ), + ShowNoteClientOptions::Bottom => tr!( + self.i18n, + "Bottom", + "Option in settings section to show the source client label at the bottom of the note" + ), + }.to_string() + } + pub fn ui(&mut self, ui: &mut egui::Ui) -> Option<SettingsAction> { let id = ui.id(); let mut action = None; @@ -190,19 +223,22 @@ impl<'a> SettingsView<'a> { .text_style(NotedeckTextStyle::Small.text_style()), ); ComboBox::from_label("") - .selected_text(self.selected_language.to_owned()) + .selected_text(self.get_selected_language_name()) .show_ui(ui, |ui| { for lang in self.i18n.get_available_locales() { + let name = self.i18n + .get_locale_native_name(lang) + .map(|s| s.to_owned()) + .unwrap_or_else(|| lang.to_string()); if ui .selectable_value( self.selected_language, lang.to_string(), - lang.to_string(), + &name, ) .clicked() { - action = - Some(SettingsAction::SetLocale(lang.to_owned())) + action = Some(SettingsAction::SetLocale(lang.to_owned())) } } }) @@ -387,7 +423,7 @@ impl<'a> SettingsView<'a> { ShowNoteClientOptions::Top, ShowNoteClientOptions::Bottom, ] { - let label = option.clone().to_string(); + let label = self.get_show_note_client_label(option); if ui .selectable_value(