LibreChat/client/src/localization/languages/Nl.ts

1402 lines
56 KiB
TypeScript
Raw Normal View History

// Dutch phrases
export default {
com_ui_examples: 'Voorbeelden',
com_ui_new_chat: 'Nieuwe chat',
com_ui_happy_birthday: 'Het is mijn eerste verjaardag!',
com_ui_example_quantum_computing: 'Leg quantumcomputing in eenvoudige termen uit',
com_ui_example_10_year_old_b_day: 'Heb je creatieve ideeën voor de verjaardag van een 10-jarige?',
com_ui_example_http_in_js: 'Hoe maak ik een HTTP-aanvraag in Javascript?',
com_ui_capabilities: 'Mogelijkheden',
com_ui_capability_remember: 'Onthoudt wat de gebruiker eerder in het gesprek heeft gezegd',
com_ui_capability_correction: 'Staat de gebruiker toe om vervolgcorrigeringen te geven',
com_ui_capability_decline_requests: 'Getraind om ongepaste verzoeken te weigeren',
com_ui_limitations: 'Beperkingen',
com_ui_limitation_incorrect_info: 'Kan af en toe onjuiste informatie genereren',
com_ui_limitation_harmful_biased:
'Kan af en toe schadelijke instructies of bevooroordeelde inhoud produceren',
com_ui_limitation_limited_2021: 'Beperkte kennis van de wereld en gebeurtenissen na 2021',
com_ui_input: 'Invoer',
com_ui_close: 'Sluiten',
com_ui_model: 'Model',
com_ui_select_model: 'Selecteer een model',
com_ui_use_prompt: 'Gebruik prompt',
com_ui_prev: 'Vorige',
com_ui_next: 'Volgende',
com_ui_stop: 'Stop',
com_ui_prompt_templates: 'Prompt-sjablonen',
com_ui_hide_prompt_templates: 'Prompt-sjablonen verbergen',
com_ui_showing: 'Tonen',
com_ui_of: 'van',
com_ui_entries: 'Items',
com_ui_pay_per_call: 'Alle AI-gesprekken op één plek. Betaal per gesprek en niet per maand',
com_ui_new_footer: 'Alle AI-gesprekken op één plek.',
com_ui_enter: 'Invoeren',
com_ui_submit: 'Indienen',
com_ui_upload_success: 'Bestand succesvol geüpload',
com_ui_upload_invalid: 'Ongeldig bestand voor uploaden',
com_ui_cancel: 'Annuleren',
com_ui_save: 'Opslaan',
com_ui_copy_to_clipboard: 'Kopiëren naar klembord',
com_ui_copied_to_clipboard: 'Gekopieerd naar klembord',
com_ui_regenerate: 'Opnieuw genereren',
com_ui_continue: 'Doorgaan',
com_ui_edit: 'Bewerken',
com_ui_success: 'Succes',
com_ui_all: 'alle',
com_ui_clear: 'Wissen',
com_ui_revoke: 'Intrekken',
com_ui_revoke_info: 'Trek alle door de gebruiker verstrekte referenties in',
📥 feat: Import Conversations from LibreChat, ChatGPT, Chatbot UI (#2355) * Basic implementation of ChatGPT conversation import * remove debug code * Handle citations * Fix updatedAt in import * update default model * Use job scheduler to handle import requests * import job status endpoint * Add wrapper around Agenda * Rate limits for import endpoint * rename import api path * Batch save import to mongo * Improve naming * Add documenting comments * Test for importers * Change button for importing conversations * Frontend changes * Import job status endpoint * Import endpoint response * Add translations to new phrases * Fix conversations refreshing * cleanup unused functions * set timeout for import job status polling * Add documentation * get extra spaces back * Improve error message * Fix translation files after merge * fix translation files 2 * Add zh translation for import functionality * Sync mailisearch index after import * chore: add dummy uri for jest tests, as MONGO_URI should only be real for E2E tests * docs: fix links * docs: fix conversationsImport section * fix: user role issue for librechat imports * refactor: import conversations from json - organize imports - add additional jsdocs - use multer with diskStorage to avoid loading file into memory outside of job - use filepath instead of loading data string for imports - replace console logs and some logger.info() with logger.debug - only use multer for import route * fix: undefined metadata edge case and replace ChatGtp -> ChatGpt * Refactor importChatGptConvo function to handle undefined metadata edge case and replace ChatGtp with ChatGpt * fix: chatgpt importer * feat: maintain tree relationship for librechat messages * chore: use enum * refactor: saveMessage to use single object arg, replace console logs, add userId to log message * chore: additional comment * chore: multer edge case * feat: first pass, maintain tree relationship * chore: organize * chore: remove log * ci: add heirarchy test for chatgpt * ci: test maintaining of heirarchy for librechat * wip: allow non-text content type messages * refactor: import content part object json string * refactor: more content types to format * chore: consolidate messageText formatting * docs: update on changes, bump data-provider/config versions, update readme * refactor(indexSync): singleton pattern for MeiliSearchClient * refactor: debug log after batch is done * chore: add back indexSync error handling --------- Co-authored-by: jakubmieszczak <jakub.mieszczak@zendesk.com> Co-authored-by: Danny Avila <danny@librechat.ai>
2024-05-02 08:48:26 +02:00
com_ui_import_conversation: 'Importeren',
com_ui_import_conversation_info: 'Gesprekken importeren vanuit een JSON-bestand',
com_ui_import_conversation_success: 'Gesprekken succesvol geïmporteerd',
com_ui_import_conversation_error:
'Er is een fout opgetreden bij het importeren van je gesprekken',
com_ui_confirm_action: 'Bevestig actie',
com_ui_chats: 'chats',
🚀 feat: Shared Links (#2772) * ✨ feat(types): add necessary types for shared link feature * ✨ feat: add shared links functions to data service Added functions for retrieving, creating, updating, and deleting shared links and shared messages. * ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId. * ✨ feat: Add share schema and data access functions to API models * ✨ feat: Add share endpoint to API The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication. * ♻️ refactor(utils): generalize react-query cache manipulation functions Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application. - Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions. - Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections. - Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities. * ✨ feat(shared-link): add functions to manipulate shared link cache list implemented new utility functions to handle additions, updates, and deletions in the shared link cache list. * ✨ feat: Add mutations and queries for shared links * ✨ feat(shared-link): add `Share` button to conversation list - Added a share button in each conversation in the conversation list. - Implemented functionality where clicking the share button triggers a POST request to the API. - The API checks if a share link was already created for the conversation today; if so, it returns the existing link. - If no link was created for today, the API will create a new share link and return it. - Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature. * ♻️ refactor(hooks): generalize useNavScrolling for broader use - Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`. - Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`. * ✨ feat(settings): add shared links listing table with delete functionality in settings - Integrated a delete button for each shared link in the table, allowing users to remove links as needed. * ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use * ♻️ refactor: update useGetSharedMessages to return TSharedLink - Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself. - This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink. * ✨ feat(shared link): add UI for displaying shared conversations without authentication - Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication. - Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context. * 🔧 chore: Add translations Translate labels only. Messages remain in English as they are possibly subject to change. * ♻️ refactor: add icon and tooltip props to EditMenuButton component * moved icon and popover to arguments so that EditMenuButton can be reused. * modified so that when a ShareButton is closed, the parent DropdownMenu is also closed. * ♻️irefactor: added DropdownMenu for Export and Share * ♻️ refactor: renamed component names more intuitive * More accurate naming of the dropdown menu. * When the export button is closed, the parent dropdown menu is also closed. * 🌍 chore: updated translations * 🐞 Fix: OpenID Profile Image Download (#2757) * Add fetch requirement Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function * Update openidStrategy.js --------- Co-authored-by: Danny Avila <danacordially@gmail.com> * 🚑 fix(export): Issue exporting Conversation with Assistants (#2769) * 🚑 fix(export): use content as text if content is present in the message If the endpoint is assistants, the text of the message goes into content, not message.text. * refactor(ExportModel): TypeScript, remove unused code --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> * 📤style: export button icon (#2752) * refactor(ShareDialog): logic and styling * refactor(ExportAndShareMenu): imports order and icon update * chore: imports * chore: imports/render logic * feat: message branching * refactor: add optional config to useGetStartupConfig * refactor: disable endpoints query * chore: fix search view styling gradient in light mode * style: ShareView gradient styling * refactor(Share): use select queries * style: shared link table buttons * localization and dark text styling * style: fix clipboard button layout shift app-wide and add localization for copy code * support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages * add localizations * comparisons --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com> Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
com_ui_share: 'Share',
com_ui_share_link_to_chat: 'Share link to chat',
com_ui_share_error: 'There was an error sharing the chat link',
com_ui_share_create_message: 'Your name and any messages you add after sharing stay private.',
com_ui_share_created_message:
'A public link to your chat has been created. Manage previously shared chats at any time via Settings.',
com_ui_share_update_message:
'Your name, custom instructions, and any messages you add after sharing stay private.',
com_ui_share_updated_message:
'A public link to your chat has been updated. Manage previously shared chats at any time via Settings.',
com_ui_shared_link_not_found: 'Shared link not found',
com_ui_delete: 'Verwijderen',
com_ui_delete_conversation: 'Chat verwijderen?',
com_ui_delete_conversation_confirm: 'Hiermee wordt',
🚀feat: Archive conversations (#2590) * 🔧chore: add internationalization labels for archive feature * ✨ feat: Add function to useArchiveConversationMutation() This commit adds a new mutation function `useArchiveConversationMutation()` for archiving conversations. This function takes the ID string of the conversation to be archived and returns a mutation result object. Upon successful archiving, it removes and refreshes the conversation from the query data cache. While ChatGPT PATCHes the archived status by sending `{is_archived: true}` to the URL `/backend-api/conversation/$conversation_id`, this implementation uses the `dataService.updateConversation(payload)` with a POST method, aligning with the existing code conventions. * ✨ feat(api): add is_archived field to Conversation schema and update getConvosByPage method This commit adds a new field `is_archived` with a default value of false to the Conversation schema. It also modifies the `getConvosByPage` method within the Conversation API to adjust the query to only target conversations where `is_archived` is set to false or where the `is_archived` field does not exist. The function `getConvosQueried`, which returns conversations for a specified Conversation ID, was determined not to require consideration of whether `is_archived` is true or false, and thus was not modified. * ♻️ refactor: add className prop to DotsIcon component To enhance the versatility of the DotsIcon component, this commit introduces the ability to specify a className prop, allowing for greater customization. * ✨ feat(ui): add Edit Button to group Title change and Conversation delete buttons Added a new Edit Button to the conversations, similar to the ChatGPT UI, which groups options for editing the conversation title and deleting conversations. This grouping is accessible through a dialogue that appears when the three-dot icon is clicked. * ♻️ refactor(ui): enhance Delete Button to accept className and label options Enhanced the Delete Button component to accept a `className` for customization and an optional `appendLabel`. The DeleteButton component is used by both `Convo.tsx` and `Conversation.tsx`, but currently only `Convo.tsx` is active and `Conversation.tsx `is apparently not used; removing `Conversation.tsx` may eliminate the need for the `appendLabel` property in the future. * ♻️ refactor(ui): enhance RenameButton to accept label options Added the ability to optionally display labels; the Rename Button component is used by both `Convo.tsx` and `Conversation.tsx`, but currently only `Convo.tsx` is active and `Conversation.tsx `is apparently not used; removing `Conversation.tsx` may eliminate the need for the `appendLabel` property in the future. * 🔧 chors: additional localization labels * ♻️ refactor: change is_archived property of conversation to camelCase * Refactor the is_archived property of conversation to camelCase (isArchived) to adhere to the existing code conventions * Modify the function that retrieves conversations to accept the isArchived parameter * ♻️ refactor: add archiveConversation mutation I thought I could divert dataService.updateConversation, but added a new archiveConversation because the request types are different. It might be better to make them common, but to avoid side effects, I added a new function this time. Added process to deleteConversationMutation to delete archived conversations * ✨ feat: Add the function to hide a cancel button in DialogTemplate component The Cancel button is not needed when displaying the archive list, so I made the Cancel button optional. * ♻️ refactor: Add support for filtering archived conversations in Nav component This commit modifies the Nav component to add the ability to filter out archived conversations when fetching data. This is done by adding `isArchived: false` to the query parameters for both the `useConversationsInfiniteQuery()` and `useSearchInfiniteQuery()` hooks, effectively excluding any archived conversations from the results returned. * ♻️ refactor: add Tooltip to DeleteButton * Add Tooltip to DeleteButton component * Display Tooltip when DeleteButton only shows an Icon without text * ✨ feat(ui): add ArchiveButton component for archiving conversations To be compatible with the ChatGPT UI, no confirmation dialog is displayed when ArchiveButton is clicked. The basic behavior conforms to DeleteButton and RenameButton. * ✨ feat(ui): add Archive button to list of conversations Modify the Nav of the conversation list to include a dropdown that contains the Rename and Delete options, similar to the ChatGPT UI. Additionally, an Archive button has been added adjacent to the dropdown menu. * ✨ feat: Add ArchivedChatsTable component Adds the `ArchivedChatsTable` component, which displays a table of archived chats. It has been implemented to be as compatible with the ChatGPT UI as possible. * 🚑 fix(tooltip): increase z-index to ensure visibility over Dialog Resolve an issue where tooltips were not visible when displayed over a Dialog. The z-index of `DialogPrimitive.Portal` in `Dialog.tsx` is set to 999. Since the rationale for this value is unclear, the z-index of the tooltip has been increased to 1000 to guarantee its visibility above the Dialog component. * 🔧 chors: add internationalization labels
2024-05-06 20:07:00 -07:00
com_ui_rename: 'Hernoemen',
com_ui_archive: 'Archiveren',
com_ui_archive_error: 'Kan conversatie niet archiveren',
com_ui_unarchive: 'Uit archiveren',
com_ui_unarchive_error: 'Kan conversatie niet uit archiveren',
com_ui_more_options: 'Meer',
com_auth_error_login:
'Kan niet inloggen met de verstrekte informatie. Controleer uw referenties en probeer het opnieuw.',
com_auth_error_login_rl: 'Te veel inlogpogingen in een korte tijd. Probeer het later nog eens.',
com_auth_error_login_ban:
'Uw account is tijdelijk verbannen vanwege schendingen van onze service.',
com_auth_error_login_server:
'Er was een interne serverfout. Wacht een paar momenten en probeer het opnieuw.',
com_auth_no_account: 'Heb je geen account?',
com_auth_sign_up: 'Aanmelden',
com_auth_sign_in: 'Inloggen',
com_auth_google_login: 'Inloggen met Google',
com_auth_facebook_login: 'Inloggen met Facebook',
com_auth_github_login: 'Inloggen met Github',
com_auth_discord_login: 'Inloggen met Discord',
com_auth_email: 'E-mailadres',
com_auth_email_required: 'E-mailadres is verplicht',
com_auth_email_min_length: 'E-mailadres moet minstens 6 tekens bevatten',
com_auth_email_max_length: 'E-mailadres mag niet langer zijn dan 120 tekens',
com_auth_email_pattern: 'Je moet een geldig e-mailadres invoeren',
com_auth_email_address: 'E-mailadres',
com_auth_password: 'Wachtwoord',
com_auth_password_required: 'Wachtwoord is verplicht',
com_auth_password_min_length: 'Wachtwoord moet minstens 8 tekens bevatten',
com_auth_password_max_length: 'Wachtwoord moet minder dan 128 tekens bevatten',
com_auth_password_forgot: 'Wachtwoord vergeten?',
com_auth_password_confirm: 'Bevestig wachtwoord',
com_auth_password_not_match: 'Wachtwoorden komen niet overeen',
com_auth_continue: 'Doorgaan',
com_auth_create_account: 'Maak uw account aan',
com_auth_error_create:
'Er is een fout opgetreden bij het registreren van uw account. Probeer het opnieuw.',
com_auth_full_name: 'Volledige naam',
com_auth_name_required: 'Naam is verplicht',
com_auth_name_min_length: 'Naam moet minstens 3 tekens bevatten',
com_auth_name_max_length: 'Naam mag niet langer zijn dan 80 tekens',
com_auth_username: 'Gebruikersnaam (optioneel)',
com_auth_username_required: 'Gebruikersnaam is verplicht',
com_auth_username_min_length: 'Gebruikersnaam moet minstens 2 tekens bevatten',
com_auth_username_max_length: 'Gebruikersnaam mag niet langer zijn dan 20 tekens',
com_auth_already_have_account: 'Heb je al een account?',
com_auth_login: 'Inloggen',
com_auth_reset_password: 'Stel uw wachtwoord opnieuw in',
com_auth_click: 'Klik',
com_auth_here: 'HIER',
com_auth_to_reset_your_password: 'om uw wachtwoord opnieuw in te stellen.',
com_auth_reset_password_link_sent: 'E-mail verzonden',
com_auth_reset_password_email_sent:
'Er is een e-mail naar je verzonden met verdere instructies om je wachtwoord opnieuw in te stellen.',
com_auth_error_reset_password:
'Er was een probleem met het opnieuw instellen van uw wachtwoord. Er is geen gebruiker gevonden met het opgegeven e-mailadres. Probeer het opnieuw.',
com_auth_reset_password_success: 'Wachtwoord opnieuw ingesteld',
com_auth_login_with_new_password: 'Je kunt nu inloggen met je nieuwe wachtwoord.',
com_auth_error_invalid_reset_token: 'Dit wachtwoord resettoken is niet langer geldig.',
com_auth_click_here: 'Klik hier',
com_auth_to_try_again: 'om het opnieuw te proberen.',
com_auth_submit_registration: 'Registratie indienen',
com_auth_welcome_back: 'Welkom terug',
com_endpoint_open_menu: 'Open menu',
com_endpoint_bing_enable_sydney: 'Schakel Sydney in',
com_endpoint_bing_to_enable_sydney: 'Om Sydney in te schakelen',
com_endpoint_bing_jailbreak: 'Jailbreak',
com_endpoint_bing_context_placeholder:
'Bing kan maximaal 7k tokens voor \'context\' gebruiken, waarnaar het kan verwijzen voor het gesprek. De specifieke limiet is niet bekend, maar kan fouten opleveren bij meer dan 7k tokens',
com_endpoint_bing_system_message_placeholder:
'WAARSCHUWING: Misbruik van deze functie kan ertoe leiden dat je VERBANNEN wordt van het gebruik van Bing! Klik op \'Systeembericht\' voor volledige instructies en het standaardbericht indien weggelaten, wat de \'Sydney\'-voorinstelling is die veilig wordt geacht.',
com_endpoint_system_message: 'Systeembericht',
com_endpoint_default_blank: 'standaard: leeg',
com_endpoint_default_false: 'standaard: onwaar',
com_endpoint_default_creative: 'standaard: creatief',
com_endpoint_default_empty: 'standaard: leeg',
com_endpoint_default_with_num: 'standaard: {0}',
com_endpoint_context: 'Context',
com_endpoint_tone_style: 'Toonstijl',
com_endpoint_token_count: 'Aantal tokens',
com_endpoint_output: 'Uitvoer',
com_endpoint_google_temp:
'Hogere waarden = meer willekeurig, terwijl lagere waarden = meer gericht en deterministisch. We raden aan dit of Top P te wijzigen, maar niet beide.',
com_endpoint_google_topp:
'Top-p verandert hoe het model tokens selecteert voor uitvoer. Tokens worden geselecteerd van meest K (zie topK-parameter) waarschijnlijk tot minst waarschijnlijk totdat de som van hun kansen gelijk is aan de top-p-waarde.',
com_endpoint_google_topk:
'Top-k verandert hoe het model tokens selecteert voor uitvoer. Een top-k van 1 betekent dat het geselecteerde token het meest waarschijnlijk is van alle tokens in de vocabulaire van het model (ook wel \'greedy decoding\' genoemd), terwijl een top-k van 3 betekent dat het volgende token wordt geselecteerd uit de 3 meest waarschijnlijke tokens (met behulp van temperatuur).',
com_endpoint_google_maxoutputtokens:
' Maximum aantal tokens dat kan worden gegenereerd in de reactie. Geef een lagere waarde op voor kortere reacties en een hogere waarde voor langere reacties.',
feat(Google): Support all Text/Chat Models, Response streaming, `PaLM` -> `Google` 🤖 (#1316) * feat: update PaLM icons * feat: add additional google models * POC: formatting inputs for Vertex AI streaming * refactor: move endpoints services outside of /routes dir to /services/Endpoints * refactor: shorten schemas import * refactor: rename PALM to GOOGLE * feat: make Google editable endpoint * feat: reusable Ask and Edit controllers based off Anthropic * chore: organize imports/logic * fix(parseConvo): include examples in googleSchema * fix: google only allows odd number of messages to be sent * fix: pass proxy to AnthropicClient * refactor: change `google` altName to `Google` * refactor: update getModelMaxTokens and related functions to handle maxTokensMap with nested endpoint model key/values * refactor: google Icon and response sender changes (Codey and Google logo instead of PaLM in all cases) * feat: google support for maxTokensMap * feat: google updated endpoints with Ask/Edit controllers, buildOptions, and initializeClient * feat(GoogleClient): now builds prompt for text models and supports real streaming from Vertex AI through langchain * chore(GoogleClient): remove comments, left before for reference in git history * docs: update google instructions (WIP) * docs(apis_and_tokens.md): add images to google instructions * docs: remove typo apis_and_tokens.md * Update apis_and_tokens.md * feat(Google): use default settings map, fully support context for both text and chat models, fully support examples for chat models * chore: update more PaLM references to Google * chore: move playwright out of workflows to avoid failing tests
2023-12-10 14:54:13 -05:00
com_endpoint_google_custom_name_placeholder: 'Stel een aangepaste naam in voor Google',
com_endpoint_prompt_prefix_placeholder:
'Stel aangepaste instructies of context in. Wordt genegeerd indien leeg.',
com_endpoint_custom_name: 'Aangepaste naam',
com_endpoint_prompt_prefix: 'Prompt-voorvoegsel',
com_endpoint_temperature: 'Temperatuur',
com_endpoint_default: 'standaard',
com_endpoint_top_p: 'Top P',
com_endpoint_top_k: 'Top K',
com_endpoint_max_output_tokens: 'Max. uitvoertokens',
com_endpoint_openai_temp:
'Hogere waarden = meer willekeurig, terwijl lagere waarden = meer gericht en deterministisch. We raden aan dit of Top P te wijzigen, maar niet beide.',
com_endpoint_openai_max:
'Het max. aantal tokens dat kan worden gegenereerd. De totale lengte van invoer-tokens en gegenereerde tokens is beperkt door de contextlengte van het model.',
com_endpoint_openai_topp:
'Een alternatief voor sampling met temperatuur, genaamd nucleus sampling, waarbij het model de resultaten van de tokens met de top_p waarschijnlijkheidsmassa in overweging neemt. Dus 0,1 betekent dat alleen de tokens die de bovenste 10% waarschijnlijkheidsmassa omvatten, in overweging worden genomen. We raden aan dit of temperatuur te wijzigen, maar niet beide.',
com_endpoint_openai_freq:
'Getal tussen -2,0 en 2,0. Positieve waarden straffen nieuwe tokens op basis van hun bestaande frequentie in de tekst tot nu toe, waardoor de kans dat het model dezelfde regel letterlijk herhaalt, afneemt.',
com_endpoint_openai_pres:
'Getal tussen -2,0 en 2,0. Positieve waarden straffen nieuwe tokens op basis van of ze al voorkomen in de tekst tot nu toe, waardoor de kans dat het model over nieuwe onderwerpen praat toeneemt.',
com_endpoint_openai_custom_name_placeholder: 'Stel een aangepaste naam in voor ChatGPT',
com_endpoint_openai_prompt_prefix_placeholder:
'Stel aangepaste instructies in om op te nemen in Systeembericht. Standaard: geen',
com_endpoint_anthropic_temp:
'Varieert van 0 tot 1. Gebruik een lagere temp voor analytische / meerkeuze taken en een hogere temp voor creatieve en generatieve taken. We raden aan dit of Top P te wijzigen, maar niet beide.',
com_endpoint_anthropic_topp:
'Top-p verandert hoe het model tokens selecteert voor uitvoer. Tokens worden geselecteerd van meest K (zie topK-parameter) waarschijnlijk tot minst waarschijnlijk totdat de som van hun kansen gelijk is aan de top-p-waarde.',
com_endpoint_anthropic_topk:
'Top-k verandert hoe het model tokens selecteert voor uitvoer. Een top-k van 1 betekent dat het geselecteerde token het meest waarschijnlijk is van alle tokens in de vocabulaire van het model (ook wel \'greedy decoding\' genoemd), terwijl een top-k van 3 betekent dat het volgende token wordt geselecteerd uit de 3 meest waarschijnlijke tokens (met behulp van temperatuur).',
com_endpoint_anthropic_maxoutputtokens:
'Maximum aantal tokens dat kan worden gegenereerd in de reactie. Geef een lagere waarde op voor kortere reacties en een hogere waarde voor langere reacties.',
com_endpoint_anthropic_custom_name_placeholder: 'Stel een aangepaste naam in voor Anthropic',
com_endpoint_frequency_penalty: 'Frequentiestraf',
com_endpoint_presence_penalty: 'Aanwezigheidsstraf',
com_endpoint_plug_use_functions: 'Gebruik functies inschakelen',
com_endpoint_plug_skip_completion: 'Voltooiing overslaan',
com_endpoint_disabled_with_tools: 'uitgeschakeld met tools',
com_endpoint_disabled_with_tools_placeholder: 'Uitgeschakeld met geselecteerde tools',
com_endpoint_plug_set_custom_instructions_for_gpt_placeholder:
'Stel aangepaste instructies in om op te nemen in Systeembericht. Standaard: geen',
com_endpoint_import: 'Importeren',
com_endpoint_set_custom_name:
'Stel een aangepaste naam in, voor het geval je deze voorinstelling kunt vinden',
com_endpoint_preset: 'voorinstelling',
com_endpoint_presets: 'voorinstellingen',
com_endpoint_preset_selected: 'Voorinstelling actief!',
com_endpoint_preset_name: 'Naam voorinstelling',
com_endpoint_new_topic: 'Nieuw onderwerp',
com_endpoint: 'Eindpunt',
com_endpoint_hide: 'Verbergen',
com_endpoint_show: 'Weergeven',
com_endpoint_examples: ' Voorinstellingen',
com_endpoint_completion: 'Voltooiing',
com_endpoint_agent: 'Agent',
com_endpoint_show_what_settings: '{0} instellingen weergeven',
com_endpoint_save: 'Opslaan',
com_endpoint_export: 'Exporteren',
com_endpoint_save_as_preset: 'Opslaan als voorinstelling',
com_endpoint_presets_clear_warning:
'Weet u zeker dat u alle voorinstellingen wilt wissen? Dit is onomkeerbaar.',
com_endpoint_not_implemented: 'Niet geïmplementeerd',
com_endpoint_no_presets:
'Nog geen voorinstellingen, gebruik de instellingenknop om er een te maken',
com_endpoint_not_available: 'Geen eindpunt beschikbaar',
com_endpoint_view_options: 'Weergaveopties',
com_endpoint_save_convo_as_preset: 'Conversatie opslaan als voorinstelling',
com_endpoint_my_preset: 'Mijn voorinstelling',
com_endpoint_agent_model: 'Agentmodel (Aanbevolen: GPT-3,5)',
com_endpoint_completion_model: 'Voltooiingsmodel (Aanbevolen: GPT-4)',
com_endpoint_func_hover: 'Schakel het gebruik van plug-ins als OpenAI-functies in',
com_endpoint_skip_hover:
'Schakel het overslaan van de voltooiingsstap in, die het definitieve antwoord en gegenereerde stappen beoordeelt',
com_endpoint_config_key: 'API-sleutel instellen',
com_endpoint_config_key_for: 'API-sleutel instellen voor',
com_endpoint_config_key_name: 'Sleutel',
com_endpoint_config_value: 'Voer waarde in voor',
com_endpoint_config_key_name_placeholder: 'Stel eerst API-sleutel in',
com_endpoint_config_key_encryption: 'Uw sleutel wordt versleuteld en verwijderd op',
com_endpoint_config_key_expiry: 'het vervaltijdstip',
com_endpoint_config_key_import_json_key: 'Serviceaccount-JSON-sleutel importeren.',
com_endpoint_config_key_import_json_key_success:
'Serviceaccount-JSON-sleutel succesvol geïmporteerd',
com_endpoint_config_key_import_json_key_invalid:
'Ongeldige Serviceaccount-JSON-sleutel, heb je het juiste bestand geïmporteerd?',
com_endpoint_config_key_get_edge_key: 'Om uw toegangstoken voor Bing te krijgen, logt u in op',
com_endpoint_config_key_get_edge_key_dev_tool:
'Gebruik ontwikkelhulpmiddelen of een extensie terwijl u bent ingelogd op de site om de inhoud van de _U-cookie te kopiëren. Als dit mislukt, volg dan deze',
com_endpoint_config_key_edge_instructions: 'instructies',
com_endpoint_config_key_edge_full_key_string:
'om de volledige cookie-tekenreeksen te verstrekken.',
com_endpoint_config_key_chatgpt:
'Om uw toegangstoken voor ChatGPT \'Gratis versie\' te krijgen, logt u in op',
com_endpoint_config_key_chatgpt_then_visit: 'ga vervolgens naar',
com_endpoint_config_key_chatgpt_copy_token: 'Kopieer toegangstoken.',
com_endpoint_config_key_google_need_to: 'U moet',
com_endpoint_config_key_google_vertex_ai: 'Vertex AI inschakelen',
com_endpoint_config_key_google_vertex_api: 'API op Google Cloud, dan',
com_endpoint_config_key_google_service_account: 'Maak een serviceaccount',
com_endpoint_config_key_google_vertex_api_role:
'Zorg ervoor dat u op \'Maken en doorgaan\' klikt om ten minste de \'Vertex AI-gebruiker\'-rol te geven. Maak ten slotte een JSON-sleutel aan om hier te importeren.',
com_nav_auto_scroll: 'Automatisch scrollen naar Nieuwste bij openen',
com_nav_plugin_store: 'Plugin-opslag',
com_nav_plugin_search: 'Plugins zoeken',
com_nav_plugin_auth_error:
'Er trad een fout op bij het authenticeren van deze plugin. Probeer het opnieuw.',
com_nav_export_filename: 'Bestandsnaam',
com_nav_export_filename_placeholder: 'Stel de bestandsnaam in',
com_nav_export_type: 'Type',
com_nav_export_include_endpoint_options: 'Eindpuntopties opnemen',
com_nav_enabled: 'Ingeschakeld',
com_nav_not_supported: 'Niet ondersteund',
com_nav_export_all_message_branches: 'Alle berichtvertakkingen exporteren',
com_nav_export_recursive_or_sequential: 'Recursief of sequentieel?',
com_nav_export_recursive: 'Recursief',
com_nav_export_conversation: 'Conversatie exporteren',
🚀 feat: Shared Links (#2772) * ✨ feat(types): add necessary types for shared link feature * ✨ feat: add shared links functions to data service Added functions for retrieving, creating, updating, and deleting shared links and shared messages. * ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId. * ✨ feat: Add share schema and data access functions to API models * ✨ feat: Add share endpoint to API The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication. * ♻️ refactor(utils): generalize react-query cache manipulation functions Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application. - Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions. - Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections. - Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities. * ✨ feat(shared-link): add functions to manipulate shared link cache list implemented new utility functions to handle additions, updates, and deletions in the shared link cache list. * ✨ feat: Add mutations and queries for shared links * ✨ feat(shared-link): add `Share` button to conversation list - Added a share button in each conversation in the conversation list. - Implemented functionality where clicking the share button triggers a POST request to the API. - The API checks if a share link was already created for the conversation today; if so, it returns the existing link. - If no link was created for today, the API will create a new share link and return it. - Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature. * ♻️ refactor(hooks): generalize useNavScrolling for broader use - Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`. - Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`. * ✨ feat(settings): add shared links listing table with delete functionality in settings - Integrated a delete button for each shared link in the table, allowing users to remove links as needed. * ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use * ♻️ refactor: update useGetSharedMessages to return TSharedLink - Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself. - This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink. * ✨ feat(shared link): add UI for displaying shared conversations without authentication - Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication. - Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context. * 🔧 chore: Add translations Translate labels only. Messages remain in English as they are possibly subject to change. * ♻️ refactor: add icon and tooltip props to EditMenuButton component * moved icon and popover to arguments so that EditMenuButton can be reused. * modified so that when a ShareButton is closed, the parent DropdownMenu is also closed. * ♻️irefactor: added DropdownMenu for Export and Share * ♻️ refactor: renamed component names more intuitive * More accurate naming of the dropdown menu. * When the export button is closed, the parent dropdown menu is also closed. * 🌍 chore: updated translations * 🐞 Fix: OpenID Profile Image Download (#2757) * Add fetch requirement Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function * Update openidStrategy.js --------- Co-authored-by: Danny Avila <danacordially@gmail.com> * 🚑 fix(export): Issue exporting Conversation with Assistants (#2769) * 🚑 fix(export): use content as text if content is present in the message If the endpoint is assistants, the text of the message goes into content, not message.text. * refactor(ExportModel): TypeScript, remove unused code --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> * 📤style: export button icon (#2752) * refactor(ShareDialog): logic and styling * refactor(ExportAndShareMenu): imports order and icon update * chore: imports * chore: imports/render logic * feat: message branching * refactor: add optional config to useGetStartupConfig * refactor: disable endpoints query * chore: fix search view styling gradient in light mode * style: ShareView gradient styling * refactor(Share): use select queries * style: shared link table buttons * localization and dark text styling * style: fix clipboard button layout shift app-wide and add localization for copy code * support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages * add localizations * comparisons --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com> Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
com_nav_export: 'Exporteren',
com_nav_shared_links: 'Gedeelde links',
com_nav_shared_links_manage: 'Beheren',
com_nav_shared_links_empty: 'U hebt geen gedeeld links.',
com_nav_shared_links_name: 'Naam',
com_nav_shared_links_date_shared: 'Datum gedeeld',
com_nav_theme: 'Thema',
com_nav_theme_system: 'Systeem',
com_nav_theme_dark: 'Donker',
com_nav_theme_light: 'Licht',
com_nav_clear_all_chats: 'Alle chats wissen',
com_nav_confirm_clear: 'Wissen bevestigen',
com_nav_close_sidebar: 'Zijbalk sluiten',
com_nav_open_sidebar: 'Zijbalk openen',
com_nav_send_message: 'Bericht verzenden',
com_nav_log_out: 'Uitloggen',
com_nav_user: 'GEBRUIKER',
🚀feat: Archive conversations (#2590) * 🔧chore: add internationalization labels for archive feature * ✨ feat: Add function to useArchiveConversationMutation() This commit adds a new mutation function `useArchiveConversationMutation()` for archiving conversations. This function takes the ID string of the conversation to be archived and returns a mutation result object. Upon successful archiving, it removes and refreshes the conversation from the query data cache. While ChatGPT PATCHes the archived status by sending `{is_archived: true}` to the URL `/backend-api/conversation/$conversation_id`, this implementation uses the `dataService.updateConversation(payload)` with a POST method, aligning with the existing code conventions. * ✨ feat(api): add is_archived field to Conversation schema and update getConvosByPage method This commit adds a new field `is_archived` with a default value of false to the Conversation schema. It also modifies the `getConvosByPage` method within the Conversation API to adjust the query to only target conversations where `is_archived` is set to false or where the `is_archived` field does not exist. The function `getConvosQueried`, which returns conversations for a specified Conversation ID, was determined not to require consideration of whether `is_archived` is true or false, and thus was not modified. * ♻️ refactor: add className prop to DotsIcon component To enhance the versatility of the DotsIcon component, this commit introduces the ability to specify a className prop, allowing for greater customization. * ✨ feat(ui): add Edit Button to group Title change and Conversation delete buttons Added a new Edit Button to the conversations, similar to the ChatGPT UI, which groups options for editing the conversation title and deleting conversations. This grouping is accessible through a dialogue that appears when the three-dot icon is clicked. * ♻️ refactor(ui): enhance Delete Button to accept className and label options Enhanced the Delete Button component to accept a `className` for customization and an optional `appendLabel`. The DeleteButton component is used by both `Convo.tsx` and `Conversation.tsx`, but currently only `Convo.tsx` is active and `Conversation.tsx `is apparently not used; removing `Conversation.tsx` may eliminate the need for the `appendLabel` property in the future. * ♻️ refactor(ui): enhance RenameButton to accept label options Added the ability to optionally display labels; the Rename Button component is used by both `Convo.tsx` and `Conversation.tsx`, but currently only `Convo.tsx` is active and `Conversation.tsx `is apparently not used; removing `Conversation.tsx` may eliminate the need for the `appendLabel` property in the future. * 🔧 chors: additional localization labels * ♻️ refactor: change is_archived property of conversation to camelCase * Refactor the is_archived property of conversation to camelCase (isArchived) to adhere to the existing code conventions * Modify the function that retrieves conversations to accept the isArchived parameter * ♻️ refactor: add archiveConversation mutation I thought I could divert dataService.updateConversation, but added a new archiveConversation because the request types are different. It might be better to make them common, but to avoid side effects, I added a new function this time. Added process to deleteConversationMutation to delete archived conversations * ✨ feat: Add the function to hide a cancel button in DialogTemplate component The Cancel button is not needed when displaying the archive list, so I made the Cancel button optional. * ♻️ refactor: Add support for filtering archived conversations in Nav component This commit modifies the Nav component to add the ability to filter out archived conversations when fetching data. This is done by adding `isArchived: false` to the query parameters for both the `useConversationsInfiniteQuery()` and `useSearchInfiniteQuery()` hooks, effectively excluding any archived conversations from the results returned. * ♻️ refactor: add Tooltip to DeleteButton * Add Tooltip to DeleteButton component * Display Tooltip when DeleteButton only shows an Icon without text * ✨ feat(ui): add ArchiveButton component for archiving conversations To be compatible with the ChatGPT UI, no confirmation dialog is displayed when ArchiveButton is clicked. The basic behavior conforms to DeleteButton and RenameButton. * ✨ feat(ui): add Archive button to list of conversations Modify the Nav of the conversation list to include a dropdown that contains the Rename and Delete options, similar to the ChatGPT UI. Additionally, an Archive button has been added adjacent to the dropdown menu. * ✨ feat: Add ArchivedChatsTable component Adds the `ArchivedChatsTable` component, which displays a table of archived chats. It has been implemented to be as compatible with the ChatGPT UI as possible. * 🚑 fix(tooltip): increase z-index to ensure visibility over Dialog Resolve an issue where tooltips were not visible when displayed over a Dialog. The z-index of `DialogPrimitive.Portal` in `Dialog.tsx` is set to 999. Since the rationale for this value is unclear, the z-index of the tooltip has been increased to 1000 to guarantee its visibility above the Dialog component. * 🔧 chors: add internationalization labels
2024-05-06 20:07:00 -07:00
com_nav_archived_chats: 'Gearchiveerde chats',
com_nav_archived_chats_manage: 'Beheren',
com_nav_archived_chats_empty: 'Geen gearchiveerde chats',
com_nav_archive_all_chats: 'Alle chats archiveren',
com_nav_archive_all: 'Alle archiveren',
com_nav_archive_name: 'Naam',
com_nav_archive_created_at: 'Gemaakt op',
com_nav_clear_conversation: 'Conversaties wissen',
com_nav_clear_conversation_confirm_message:
'Weet u zeker dat u alle conversaties wilt wissen? Dit is onomkeerbaar.',
com_nav_help_faq: 'Help & FAQ',
com_nav_settings: 'Instellingen',
com_nav_search_placeholder: 'Berichten doorzoeken',
com_nav_setting_general: 'Algemeen',
com_nav_setting_data: 'Gegevensbesturing',
};
export const comparisons = {
com_ui_examples: {
english: 'Examples',
translated: 'Voorbeelden',
},
com_ui_new_chat: {
english: 'New chat',
translated: 'Nieuwe chat',
},
com_ui_happy_birthday: {
english: 'It\'s my 1st birthday!',
translated: 'Het is mijn eerste verjaardag!',
},
com_ui_example_quantum_computing: {
english: 'Explain quantum computing in simple terms',
translated: 'Leg quantumcomputing in eenvoudige termen uit',
},
com_ui_example_10_year_old_b_day: {
english: 'Got any creative ideas for a 10 year old\'s birthday?',
translated: 'Heb je creatieve ideeën voor de verjaardag van een 10-jarige?',
},
com_ui_example_http_in_js: {
english: 'How do I make an HTTP request in Javascript?',
translated: 'Hoe maak ik een HTTP-aanvraag in Javascript?',
},
com_ui_capabilities: {
english: 'Capabilities',
translated: 'Mogelijkheden',
},
com_ui_capability_remember: {
english: 'Remembers what user said earlier in the conversation',
translated: 'Onthoudt wat de gebruiker eerder in het gesprek heeft gezegd',
},
com_ui_capability_correction: {
english: 'Allows user to provide follow-up corrections',
translated: 'Staat de gebruiker toe om vervolgcorrigeringen te geven',
},
com_ui_capability_decline_requests: {
english: 'Trained to decline inappropriate requests',
translated: 'Getraind om ongepaste verzoeken te weigeren',
},
com_ui_limitations: {
english: 'Limitations',
translated: 'Beperkingen',
},
com_ui_limitation_incorrect_info: {
english: 'May occasionally generate incorrect information',
translated: 'Kan af en toe onjuiste informatie genereren',
},
com_ui_limitation_harmful_biased: {
english: 'May occasionally produce harmful instructions or biased content',
translated: 'Kan af en toe schadelijke instructies of bevooroordeelde inhoud produceren',
},
com_ui_limitation_limited_2021: {
english: 'Limited knowledge of world and events after 2021',
translated: 'Beperkte kennis van de wereld en gebeurtenissen na 2021',
},
com_ui_input: {
english: 'Input',
translated: 'Invoer',
},
com_ui_close: {
english: 'Close',
translated: 'Sluiten',
},
com_ui_model: {
english: 'Model',
translated: 'Model',
},
com_ui_select_model: {
english: 'Select a model',
translated: 'Selecteer een model',
},
com_ui_use_prompt: {
english: 'Use prompt',
translated: 'Gebruik prompt',
},
com_ui_prev: {
english: 'Prev',
translated: 'Vorige',
},
com_ui_next: {
english: 'Next',
translated: 'Volgende',
},
com_ui_stop: {
english: 'Stop',
translated: 'Stop',
},
com_ui_prompt_templates: {
english: 'Prompt Templates',
translated: 'Prompt-sjablonen',
},
com_ui_hide_prompt_templates: {
english: 'Hide Prompt Templates',
translated: 'Prompt-sjablonen verbergen',
},
com_ui_showing: {
english: 'Showing',
translated: 'Tonen',
},
com_ui_of: {
english: 'of',
translated: 'van',
},
com_ui_entries: {
english: 'Entries',
translated: 'Items',
},
com_ui_pay_per_call: {
english: 'All AI conversations in one place. Pay per call and not per month',
translated: 'Alle AI-gesprekken op één plek. Betaal per gesprek en niet per maand',
},
com_ui_new_footer: {
english: 'All AI conversations in one place.',
translated: 'Alle AI-gesprekken op één plek.',
},
com_ui_enter: {
english: 'Enter',
translated: 'Invoeren',
},
com_ui_submit: {
english: 'Submit',
translated: 'Indienen',
},
com_ui_upload_success: {
english: 'Successfully uploaded file',
translated: 'Bestand succesvol geüpload',
},
com_ui_upload_invalid: {
english: 'Invalid file for upload. Must be an image not exceeding 2 MB',
translated: 'Ongeldig bestand voor uploaden',
},
com_ui_cancel: {
english: 'Cancel',
translated: 'Annuleren',
},
com_ui_save: {
english: 'Save',
translated: 'Opslaan',
},
com_ui_copy_to_clipboard: {
english: 'Copy to clipboard',
translated: 'Kopiëren naar klembord',
},
com_ui_copied_to_clipboard: {
english: 'Copied to clipboard',
translated: 'Gekopieerd naar klembord',
},
com_ui_regenerate: {
english: 'Regenerate',
translated: 'Opnieuw genereren',
},
com_ui_continue: {
english: 'Continue',
translated: 'Doorgaan',
},
com_ui_edit: {
english: 'Edit',
translated: 'Bewerken',
},
com_ui_success: {
english: 'Success',
translated: 'Succes',
},
com_ui_all: {
english: 'all',
translated: 'alle',
},
com_ui_clear: {
english: 'Clear',
translated: 'Wissen',
},
com_ui_revoke: {
english: 'Revoke',
translated: 'Intrekken',
},
com_ui_revoke_info: {
english: 'Revoke all user provided credentials',
translated: 'Trek alle door de gebruiker verstrekte referenties in',
},
com_ui_import_conversation: {
english: 'Import',
translated: 'Importeren',
},
com_ui_import_conversation_info: {
english: 'Import conversations from a JSON file',
translated: 'Gesprekken importeren vanuit een JSON-bestand',
},
com_ui_import_conversation_success: {
english: 'Conversations imported successfully',
translated: 'Gesprekken succesvol geïmporteerd',
},
com_ui_import_conversation_error: {
english: 'There was an error importing your conversations',
translated: 'Er is een fout opgetreden bij het importeren van je gesprekken',
},
com_ui_confirm_action: {
english: 'Confirm Action',
translated: 'Bevestig actie',
},
com_ui_chats: {
english: 'chats',
translated: 'chats',
},
🚀 feat: Shared Links (#2772) * ✨ feat(types): add necessary types for shared link feature * ✨ feat: add shared links functions to data service Added functions for retrieving, creating, updating, and deleting shared links and shared messages. * ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId. * ✨ feat: Add share schema and data access functions to API models * ✨ feat: Add share endpoint to API The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication. * ♻️ refactor(utils): generalize react-query cache manipulation functions Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application. - Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions. - Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections. - Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities. * ✨ feat(shared-link): add functions to manipulate shared link cache list implemented new utility functions to handle additions, updates, and deletions in the shared link cache list. * ✨ feat: Add mutations and queries for shared links * ✨ feat(shared-link): add `Share` button to conversation list - Added a share button in each conversation in the conversation list. - Implemented functionality where clicking the share button triggers a POST request to the API. - The API checks if a share link was already created for the conversation today; if so, it returns the existing link. - If no link was created for today, the API will create a new share link and return it. - Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature. * ♻️ refactor(hooks): generalize useNavScrolling for broader use - Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`. - Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`. * ✨ feat(settings): add shared links listing table with delete functionality in settings - Integrated a delete button for each shared link in the table, allowing users to remove links as needed. * ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use * ♻️ refactor: update useGetSharedMessages to return TSharedLink - Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself. - This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink. * ✨ feat(shared link): add UI for displaying shared conversations without authentication - Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication. - Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context. * 🔧 chore: Add translations Translate labels only. Messages remain in English as they are possibly subject to change. * ♻️ refactor: add icon and tooltip props to EditMenuButton component * moved icon and popover to arguments so that EditMenuButton can be reused. * modified so that when a ShareButton is closed, the parent DropdownMenu is also closed. * ♻️irefactor: added DropdownMenu for Export and Share * ♻️ refactor: renamed component names more intuitive * More accurate naming of the dropdown menu. * When the export button is closed, the parent dropdown menu is also closed. * 🌍 chore: updated translations * 🐞 Fix: OpenID Profile Image Download (#2757) * Add fetch requirement Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function * Update openidStrategy.js --------- Co-authored-by: Danny Avila <danacordially@gmail.com> * 🚑 fix(export): Issue exporting Conversation with Assistants (#2769) * 🚑 fix(export): use content as text if content is present in the message If the endpoint is assistants, the text of the message goes into content, not message.text. * refactor(ExportModel): TypeScript, remove unused code --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> * 📤style: export button icon (#2752) * refactor(ShareDialog): logic and styling * refactor(ExportAndShareMenu): imports order and icon update * chore: imports * chore: imports/render logic * feat: message branching * refactor: add optional config to useGetStartupConfig * refactor: disable endpoints query * chore: fix search view styling gradient in light mode * style: ShareView gradient styling * refactor(Share): use select queries * style: shared link table buttons * localization and dark text styling * style: fix clipboard button layout shift app-wide and add localization for copy code * support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages * add localizations * comparisons --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com> Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
com_ui_share: {
english: 'Share',
translated: 'Share',
},
com_ui_share_link_to_chat: {
english: 'Share link to chat',
translated: 'Share link to chat',
},
com_ui_share_error: {
english: 'There was an error sharing the chat link',
translated: 'There was an error sharing the chat link',
},
com_ui_share_create_message: {
english: 'Your name and any messages you add after sharing stay private.',
translated: 'Your name and any messages you add after sharing stay private.',
},
com_ui_share_created_message: {
english:
'A public link to your chat has been created. Manage previously shared chats at any time via Settings.',
translated:
'A public link to your chat has been created. Manage previously shared chats at any time via Settings.',
},
com_ui_share_update_message: {
english: 'Your name, custom instructions, and any messages you add after sharing stay private.',
translated:
'Your name, custom instructions, and any messages you add after sharing stay private.',
},
com_ui_share_updated_message: {
english:
'A public link to your chat has been updated. Manage previously shared chats at any time via Settings.',
translated:
'A public link to your chat has been updated. Manage previously shared chats at any time via Settings.',
},
com_ui_shared_link_not_found: {
english: 'Shared link not found',
translated: 'Shared link not found',
},
com_ui_delete: {
english: 'Delete',
translated: 'Verwijderen',
},
com_ui_delete_conversation: {
english: 'Delete chat?',
translated: 'Chat verwijderen?',
},
com_ui_delete_conversation_confirm: {
english: 'This will delete',
translated: 'Hiermee wordt',
},
com_ui_rename: {
english: 'Rename',
translated: 'Hernoemen',
},
com_ui_archive: {
english: 'Archive',
translated: 'Archiveren',
},
com_ui_archive_error: {
english: 'Failed to archive conversation',
translated: 'Kan conversatie niet archiveren',
},
com_ui_unarchive: {
english: 'Unarchive',
translated: 'Uit archiveren',
},
com_ui_unarchive_error: {
english: 'Failed to unarchive conversation',
translated: 'Kan conversatie niet uit archiveren',
},
com_ui_more_options: {
english: 'More',
translated: 'Meer',
},
com_auth_error_login: {
english:
'Unable to login with the information provided. Please check your credentials and try again.',
translated:
'Kan niet inloggen met de verstrekte informatie. Controleer uw referenties en probeer het opnieuw.',
},
com_auth_error_login_rl: {
english: 'Too many login attempts in a short amount of time. Please try again later.',
translated: 'Te veel inlogpogingen in een korte tijd. Probeer het later nog eens.',
},
com_auth_error_login_ban: {
english: 'Your account has been temporarily banned due to violations of our service.',
translated: 'Uw account is tijdelijk verbannen vanwege schendingen van onze service.',
},
com_auth_error_login_server: {
english: 'There was an internal server error. Please wait a few moments and try again.',
translated: 'Er was een interne serverfout. Wacht een paar momenten en probeer het opnieuw.',
},
com_auth_no_account: {
english: 'Don\'t have an account?',
translated: 'Heb je geen account?',
},
com_auth_sign_up: {
english: 'Sign up',
translated: 'Aanmelden',
},
com_auth_sign_in: {
english: 'Sign in',
translated: 'Inloggen',
},
com_auth_google_login: {
english: 'Continue with Google',
translated: 'Inloggen met Google',
},
com_auth_facebook_login: {
english: 'Continue with Facebook',
translated: 'Inloggen met Facebook',
},
com_auth_github_login: {
english: 'Continue with Github',
translated: 'Inloggen met Github',
},
com_auth_discord_login: {
english: 'Continue with Discord',
translated: 'Inloggen met Discord',
},
com_auth_email: {
english: 'Email',
translated: 'E-mailadres',
},
com_auth_email_required: {
english: 'Email is required',
translated: 'E-mailadres is verplicht',
},
com_auth_email_min_length: {
english: 'Email must be at least 6 characters',
translated: 'E-mailadres moet minstens 6 tekens bevatten',
},
com_auth_email_max_length: {
english: 'Email should not be longer than 120 characters',
translated: 'E-mailadres mag niet langer zijn dan 120 tekens',
},
com_auth_email_pattern: {
english: 'You must enter a valid email address',
translated: 'Je moet een geldig e-mailadres invoeren',
},
com_auth_email_address: {
english: 'Email address',
translated: 'E-mailadres',
},
com_auth_password: {
english: 'Password',
translated: 'Wachtwoord',
},
com_auth_password_required: {
english: 'Password is required',
translated: 'Wachtwoord is verplicht',
},
com_auth_password_min_length: {
english: 'Password must be at least 8 characters',
translated: 'Wachtwoord moet minstens 8 tekens bevatten',
},
com_auth_password_max_length: {
english: 'Password must be less than 128 characters',
translated: 'Wachtwoord moet minder dan 128 tekens bevatten',
},
com_auth_password_forgot: {
english: 'Forgot Password?',
translated: 'Wachtwoord vergeten?',
},
com_auth_password_confirm: {
english: 'Confirm password',
translated: 'Bevestig wachtwoord',
},
com_auth_password_not_match: {
english: 'Passwords do not match',
translated: 'Wachtwoorden komen niet overeen',
},
com_auth_continue: {
english: 'Continue',
translated: 'Doorgaan',
},
com_auth_create_account: {
english: 'Create your account',
translated: 'Maak uw account aan',
},
com_auth_error_create: {
english: 'There was an error attempting to register your account. Please try again.',
translated:
'Er is een fout opgetreden bij het registreren van uw account. Probeer het opnieuw.',
},
com_auth_full_name: {
english: 'Full name',
translated: 'Volledige naam',
},
com_auth_name_required: {
english: 'Name is required',
translated: 'Naam is verplicht',
},
com_auth_name_min_length: {
english: 'Name must be at least 3 characters',
translated: 'Naam moet minstens 3 tekens bevatten',
},
com_auth_name_max_length: {
english: 'Name must be less than 80 characters',
translated: 'Naam mag niet langer zijn dan 80 tekens',
},
com_auth_username: {
english: 'Username (optional)',
translated: 'Gebruikersnaam (optioneel)',
},
com_auth_username_required: {
english: 'Username is required',
translated: 'Gebruikersnaam is verplicht',
},
com_auth_username_min_length: {
english: 'Username must be at least 2 characters',
translated: 'Gebruikersnaam moet minstens 2 tekens bevatten',
},
com_auth_username_max_length: {
english: 'Username must be less than 20 characters',
translated: 'Gebruikersnaam mag niet langer zijn dan 20 tekens',
},
com_auth_already_have_account: {
english: 'Already have an account?',
translated: 'Heb je al een account?',
},
com_auth_login: {
english: 'Login',
translated: 'Inloggen',
},
com_auth_reset_password: {
english: 'Reset your password',
translated: 'Stel uw wachtwoord opnieuw in',
},
com_auth_click: {
english: 'Click',
translated: 'Klik',
},
com_auth_here: {
english: 'HERE',
translated: 'HIER',
},
com_auth_to_reset_your_password: {
english: 'to reset your password.',
translated: 'om uw wachtwoord opnieuw in te stellen.',
},
com_auth_reset_password_link_sent: {
english: 'Email Sent',
translated: 'E-mail verzonden',
},
com_auth_reset_password_email_sent: {
english: 'An email has been sent to you with further instructions to reset your password.',
translated:
'Er is een e-mail naar je verzonden met verdere instructies om je wachtwoord opnieuw in te stellen.',
},
com_auth_error_reset_password: {
english:
'There was a problem resetting your password. There was no user found with the email address provided. Please try again.',
translated:
'Er was een probleem met het opnieuw instellen van uw wachtwoord. Er is geen gebruiker gevonden met het opgegeven e-mailadres. Probeer het opnieuw.',
},
com_auth_reset_password_success: {
english: 'Password Reset Success',
translated: 'Wachtwoord opnieuw ingesteld',
},
com_auth_login_with_new_password: {
english: 'You may now login with your new password.',
translated: 'Je kunt nu inloggen met je nieuwe wachtwoord.',
},
com_auth_error_invalid_reset_token: {
english: 'This password reset token is no longer valid.',
translated: 'Dit wachtwoord resettoken is niet langer geldig.',
},
com_auth_click_here: {
english: 'Click here',
translated: 'Klik hier',
},
com_auth_to_try_again: {
english: 'to try again.',
translated: 'om het opnieuw te proberen.',
},
com_auth_submit_registration: {
english: 'Submit registration',
translated: 'Registratie indienen',
},
com_auth_welcome_back: {
english: 'Welcome back',
translated: 'Welkom terug',
},
com_endpoint_open_menu: {
english: 'Open Menu',
translated: 'Open menu',
},
com_endpoint_bing_enable_sydney: {
english: 'Enable Sydney',
translated: 'Schakel Sydney in',
},
com_endpoint_bing_to_enable_sydney: {
english: 'To enable Sydney',
translated: 'Om Sydney in te schakelen',
},
com_endpoint_bing_jailbreak: {
english: 'Jailbreak',
translated: 'Jailbreak',
},
com_endpoint_bing_context_placeholder: {
english:
'Bing can use up to 7k tokens for \'context\', which it can reference for the conversation. The specific limit is not known but may run into errors exceeding 7k tokens',
translated:
'Bing kan maximaal 7k tokens voor \'context\' gebruiken, waarnaar het kan verwijzen voor het gesprek. De specifieke limiet is niet bekend, maar kan fouten opleveren bij meer dan 7k tokens',
},
com_endpoint_bing_system_message_placeholder: {
english:
'WARNING: Misuse of this feature can get you BANNED from using Bing! Click on \'System Message\' for full instructions and the default message if omitted, which is the \'Sydney\' preset that is considered safe.',
translated:
'WAARSCHUWING: Misbruik van deze functie kan ertoe leiden dat je VERBANNEN wordt van het gebruik van Bing! Klik op \'Systeembericht\' voor volledige instructies en het standaardbericht indien weggelaten, wat de \'Sydney\'-voorinstelling is die veilig wordt geacht.',
},
com_endpoint_system_message: {
english: 'System Message',
translated: 'Systeembericht',
},
com_endpoint_default_blank: {
english: 'default: blank',
translated: 'standaard: leeg',
},
com_endpoint_default_false: {
english: 'default: false',
translated: 'standaard: onwaar',
},
com_endpoint_default_creative: {
english: 'default: creative',
translated: 'standaard: creatief',
},
com_endpoint_default_empty: {
english: 'default: empty',
translated: 'standaard: leeg',
},
com_endpoint_default_with_num: {
english: 'default: {0}',
translated: 'standaard: {0}',
},
com_endpoint_context: {
english: 'Context',
translated: 'Context',
},
com_endpoint_tone_style: {
english: 'Tone Style',
translated: 'Toonstijl',
},
com_endpoint_token_count: {
english: 'Token count',
translated: 'Aantal tokens',
},
com_endpoint_output: {
english: 'Output',
translated: 'Uitvoer',
},
com_endpoint_google_temp: {
english:
'Higher values = more random, while lower values = more focused and deterministic. We recommend altering this or Top P but not both.',
translated:
'Hogere waarden = meer willekeurig, terwijl lagere waarden = meer gericht en deterministisch. We raden aan dit of Top P te wijzigen, maar niet beide.',
},
com_endpoint_google_topp: {
english:
'Top-p changes how the model selects tokens for output. Tokens are selected from most K (see topK parameter) probable to least until the sum of their probabilities equals the top-p value.',
translated:
'Top-p verandert hoe het model tokens selecteert voor uitvoer. Tokens worden geselecteerd van meest K (zie topK-parameter) waarschijnlijk tot minst waarschijnlijk totdat de som van hun kansen gelijk is aan de top-p-waarde.',
},
com_endpoint_google_topk: {
english:
'Top-k changes how the model selects tokens for output. A top-k of 1 means the selected token is the most probable among all tokens in the model\'s vocabulary (also called greedy decoding), while a top-k of 3 means that the next token is selected from among the 3 most probable tokens (using temperature).',
translated:
'Top-k verandert hoe het model tokens selecteert voor uitvoer. Een top-k van 1 betekent dat het geselecteerde token het meest waarschijnlijk is van alle tokens in de vocabulaire van het model (ook wel \'greedy decoding\' genoemd), terwijl een top-k van 3 betekent dat het volgende token wordt geselecteerd uit de 3 meest waarschijnlijke tokens (met behulp van temperatuur).',
},
com_endpoint_google_maxoutputtokens: {
english:
' \tMaximum number of tokens that can be generated in the response. Specify a lower value for shorter responses and a higher value for longer responses.',
translated:
'\tMaximum aantal tokens dat kan worden gegenereerd in de reactie. Geef een lagere waarde op voor kortere reacties en een hogere waarde voor langere reacties.',
},
com_endpoint_google_custom_name_placeholder: {
english: 'Set a custom name for Google',
translated: 'Stel een aangepaste naam in voor Google',
},
com_endpoint_prompt_prefix_placeholder: {
english: 'Set custom instructions or context. Ignored if empty.',
translated: 'Stel aangepaste instructies of context in. Wordt genegeerd indien leeg.',
},
com_endpoint_custom_name: {
english: 'Custom Name',
translated: 'Aangepaste naam',
},
com_endpoint_prompt_prefix: {
english: 'Custom Instructions',
translated: 'Prompt-voorvoegsel',
},
com_endpoint_temperature: {
english: 'Temperature',
translated: 'Temperatuur',
},
com_endpoint_default: {
english: 'default',
translated: 'standaard',
},
com_endpoint_top_p: {
english: 'Top P',
translated: 'Top P',
},
com_endpoint_top_k: {
english: 'Top K',
translated: 'Top K',
},
com_endpoint_max_output_tokens: {
english: 'Max Output Tokens',
translated: 'Max. uitvoertokens',
},
com_endpoint_openai_temp: {
english:
'Higher values = more random, while lower values = more focused and deterministic. We recommend altering this or Top P but not both.',
translated:
'Hogere waarden = meer willekeurig, terwijl lagere waarden = meer gericht en deterministisch. We raden aan dit of Top P te wijzigen, maar niet beide.',
},
com_endpoint_openai_max: {
english:
'The max tokens to generate. The total length of input tokens and generated tokens is limited by the model\'s context length.',
translated:
'Het max. aantal tokens dat kan worden gegenereerd. De totale lengte van invoer-tokens en gegenereerde tokens is beperkt door de contextlengte van het model.',
},
com_endpoint_openai_topp: {
english:
'An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass. So 0.1 means only the tokens comprising the top 10% probability mass are considered. We recommend altering this or temperature but not both.',
translated:
'Een alternatief voor sampling met temperatuur, genaamd nucleus sampling, waarbij het model de resultaten van de tokens met de top_p waarschijnlijkheidsmassa in overweging neemt. Dus 0,1 betekent dat alleen de tokens die de bovenste 10% waarschijnlijkheidsmassa omvatten, in overweging worden genomen. We raden aan dit of temperatuur te wijzigen, maar niet beide.',
},
com_endpoint_openai_freq: {
english:
'Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far, decreasing the model\'s likelihood to repeat the same line verbatim.',
translated:
'Getal tussen -2,0 en 2,0. Positieve waarden straffen nieuwe tokens op basis van hun bestaande frequentie in de tekst tot nu toe, waardoor de kans dat het model dezelfde regel letterlijk herhaalt, afneemt.',
},
com_endpoint_openai_pres: {
english:
'Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far, increasing the model\'s likelihood to talk about new topics.',
translated:
'Getal tussen -2,0 en 2,0. Positieve waarden straffen nieuwe tokens op basis van of ze al voorkomen in de tekst tot nu toe, waardoor de kans dat het model over nieuwe onderwerpen praat toeneemt.',
},
com_endpoint_openai_custom_name_placeholder: {
english: 'Set a custom name for the AI',
translated: 'Stel een aangepaste naam in voor ChatGPT',
},
com_endpoint_openai_prompt_prefix_placeholder: {
english: 'Set custom instructions to include in System Message. Default: none',
translated: 'Stel aangepaste instructies in om op te nemen in Systeembericht. Standaard: geen',
},
com_endpoint_anthropic_temp: {
english:
'Ranges from 0 to 1. Use temp closer to 0 for analytical / multiple choice, and closer to 1 for creative and generative tasks. We recommend altering this or Top P but not both.',
translated:
'Varieert van 0 tot 1. Gebruik een lagere temp voor analytische / meerkeuze taken en een hogere temp voor creatieve en generatieve taken. We raden aan dit of Top P te wijzigen, maar niet beide.',
},
com_endpoint_anthropic_topp: {
english:
'Top-p changes how the model selects tokens for output. Tokens are selected from most K (see topK parameter) probable to least until the sum of their probabilities equals the top-p value.',
translated:
'Top-p verandert hoe het model tokens selecteert voor uitvoer. Tokens worden geselecteerd van meest K (zie topK-parameter) waarschijnlijk tot minst waarschijnlijk totdat de som van hun kansen gelijk is aan de top-p-waarde.',
},
com_endpoint_anthropic_topk: {
english:
'Top-k changes how the model selects tokens for output. A top-k of 1 means the selected token is the most probable among all tokens in the model\'s vocabulary (also called greedy decoding), while a top-k of 3 means that the next token is selected from among the 3 most probable tokens (using temperature).',
translated:
'Top-k verandert hoe het model tokens selecteert voor uitvoer. Een top-k van 1 betekent dat het geselecteerde token het meest waarschijnlijk is van alle tokens in de vocabulaire van het model (ook wel \'greedy decoding\' genoemd), terwijl een top-k van 3 betekent dat het volgende token wordt geselecteerd uit de 3 meest waarschijnlijke tokens (met behulp van temperatuur).',
},
com_endpoint_anthropic_maxoutputtokens: {
english:
'Maximum number of tokens that can be generated in the response. Specify a lower value for shorter responses and a higher value for longer responses.',
translated:
'Maximum aantal tokens dat kan worden gegenereerd in de reactie. Geef een lagere waarde op voor kortere reacties en een hogere waarde voor langere reacties.',
},
com_endpoint_anthropic_custom_name_placeholder: {
english: 'Set a custom name for Anthropic',
translated: 'Stel een aangepaste naam in voor Anthropic',
},
com_endpoint_frequency_penalty: {
english: 'Frequency Penalty',
translated: 'Frequentiestraf',
},
com_endpoint_presence_penalty: {
english: 'Presence Penalty',
translated: 'Aanwezigheidsstraf',
},
com_endpoint_plug_use_functions: {
english: 'Use Functions',
translated: 'Gebruik functies inschakelen',
},
com_endpoint_plug_skip_completion: {
english: 'Skip Completion',
translated: 'Voltooiing overslaan',
},
com_endpoint_disabled_with_tools: {
english: 'disabled with tools',
translated: 'uitgeschakeld met tools',
},
com_endpoint_disabled_with_tools_placeholder: {
english: 'Disabled with Tools Selected',
translated: 'Uitgeschakeld met geselecteerde tools',
},
com_endpoint_plug_set_custom_instructions_for_gpt_placeholder: {
english: 'Set custom instructions to include in System Message. Default: none',
translated: 'Stel aangepaste instructies in om op te nemen in Systeembericht. Standaard: geen',
},
com_endpoint_import: {
english: 'Import',
translated: 'Importeren',
},
com_endpoint_set_custom_name: {
english: 'Set a custom name, in case you can find this preset',
translated: 'Stel een aangepaste naam in, voor het geval je deze voorinstelling kunt vinden',
},
com_endpoint_preset: {
english: 'preset',
translated: 'voorinstelling',
},
com_endpoint_presets: {
english: 'presets',
translated: 'voorinstellingen',
},
com_endpoint_preset_selected: {
english: 'Preset Active!',
translated: 'Voorinstelling actief!',
},
com_endpoint_preset_name: {
english: 'Preset Name',
translated: 'Naam voorinstelling',
},
com_endpoint_new_topic: {
english: 'New Topic',
translated: 'Nieuw onderwerp',
},
com_endpoint: {
english: 'Endpoint',
translated: 'Eindpunt',
},
com_endpoint_hide: {
english: 'Hide',
translated: 'Verbergen',
},
com_endpoint_show: {
english: 'Show',
translated: 'Weergeven',
},
com_endpoint_examples: {
english: ' Presets',
translated: ' Voorinstellingen',
},
com_endpoint_completion: {
english: 'Completion',
translated: 'Voltooiing',
},
com_endpoint_agent: {
english: 'Agent',
translated: 'Agent',
},
com_endpoint_show_what_settings: {
english: 'Show {0} Settings',
translated: '{0} instellingen weergeven',
},
com_endpoint_export: {
english: 'Export',
translated: 'Exporteren',
},
com_endpoint_save_as_preset: {
english: 'Save As Preset',
translated: 'Opslaan als voorinstelling',
},
com_endpoint_presets_clear_warning: {
english: 'Are you sure you want to clear all presets? This is irreversible.',
translated: 'Weet u zeker dat u alle voorinstellingen wilt wissen? Dit is onomkeerbaar.',
},
com_endpoint_not_implemented: {
english: 'Not implemented',
translated: 'Niet geïmplementeerd',
},
com_endpoint_no_presets: {
english: 'No presets yet, use the settings button to create one',
translated: 'Nog geen voorinstellingen, gebruik de instellingenknop om er een te maken',
},
com_endpoint_not_available: {
english: 'No endpoint available',
translated: 'Geen eindpunt beschikbaar',
},
com_endpoint_view_options: {
english: 'View Options',
translated: 'Weergaveopties',
},
com_endpoint_save_convo_as_preset: {
english: 'Save Conversation as Preset',
translated: 'Conversatie opslaan als voorinstelling',
},
com_endpoint_my_preset: {
english: 'My Preset',
translated: 'Mijn voorinstelling',
},
com_endpoint_agent_model: {
english: 'Agent Model (Recommended: GPT-3.5)',
translated: 'Agentmodel (Aanbevolen: GPT-3,5)',
},
com_endpoint_completion_model: {
english: 'Completion Model (Recommended: GPT-4)',
translated: 'Voltooiingsmodel (Aanbevolen: GPT-4)',
},
com_endpoint_func_hover: {
english: 'Enable use of Plugins as OpenAI Functions',
translated: 'Schakel het gebruik van plug-ins als OpenAI-functies in',
},
com_endpoint_skip_hover: {
english:
'Enable skipping the completion step, which reviews the final answer and generated steps',
translated:
'Schakel het overslaan van de voltooiingsstap in, die het definitieve antwoord en gegenereerde stappen beoordeelt',
},
com_endpoint_config_key: {
english: 'Set API Key',
translated: 'API-sleutel instellen',
},
com_endpoint_config_key_for: {
english: 'Set API Key for',
translated: 'API-sleutel instellen voor',
},
com_endpoint_config_key_name: {
english: 'Key',
translated: 'Sleutel',
},
com_endpoint_config_value: {
english: 'Enter value for',
translated: 'Voer waarde in voor',
},
com_endpoint_config_key_name_placeholder: {
english: 'Set API key first',
translated: 'Stel eerst API-sleutel in',
},
com_endpoint_config_key_encryption: {
english: 'Your key will be encrypted and deleted at',
translated: 'Uw sleutel wordt versleuteld en verwijderd op',
},
com_endpoint_config_key_expiry: {
english: 'the expiry time',
translated: 'het vervaltijdstip',
},
com_endpoint_config_key_import_json_key: {
english: 'Import Service Account JSON Key.',
translated: 'Serviceaccount-JSON-sleutel importeren.',
},
com_endpoint_config_key_import_json_key_success: {
english: 'Successfully Imported Service Account JSON Key',
translated: 'Serviceaccount-JSON-sleutel succesvol geïmporteerd',
},
com_endpoint_config_key_import_json_key_invalid: {
english: 'Invalid Service Account JSON Key, Did you import the correct file?',
translated: 'Ongeldige Serviceaccount-JSON-sleutel, heb je het juiste bestand geïmporteerd?',
},
com_endpoint_config_key_get_edge_key: {
english: 'To get your Access token for Bing, login to',
translated: 'Om uw toegangstoken voor Bing te krijgen, logt u in op',
},
com_endpoint_config_key_get_edge_key_dev_tool: {
english:
'Use dev tools or an extension while logged into the site to copy the content of the _U cookie. If this fails, follow these',
translated:
'Gebruik ontwikkelhulpmiddelen of een extensie terwijl u bent ingelogd op de site om de inhoud van de _U-cookie te kopiëren. Als dit mislukt, volg dan deze',
},
com_endpoint_config_key_edge_instructions: {
english: 'instructions',
translated: 'instructies',
},
com_endpoint_config_key_edge_full_key_string: {
english: 'to provide the full cookie strings.',
translated: 'om de volledige cookie-tekenreeksen te verstrekken.',
},
com_endpoint_config_key_chatgpt: {
english: 'To get your Access token For ChatGPT \'Free Version\', login to',
translated: 'Om uw toegangstoken voor ChatGPT \'Gratis versie\' te krijgen, logt u in op',
},
com_endpoint_config_key_chatgpt_then_visit: {
english: 'then visit',
translated: 'ga vervolgens naar',
},
com_endpoint_config_key_chatgpt_copy_token: {
english: 'Copy access token.',
translated: 'Kopieer toegangstoken.',
},
com_endpoint_config_key_google_need_to: {
english: 'You need to',
translated: 'U moet',
},
com_endpoint_config_key_google_vertex_ai: {
english: 'Enable Vertex AI',
translated: 'Vertex AI inschakelen',
},
com_endpoint_config_key_google_vertex_api: {
english: 'API on Google Cloud, then',
translated: 'API op Google Cloud, dan',
},
com_endpoint_config_key_google_service_account: {
english: 'Create a Service Account',
translated: 'Maak een serviceaccount',
},
com_endpoint_config_key_google_vertex_api_role: {
english:
'Make sure to click \'Create and Continue\' to give at least the \'Vertex AI User\' role. Lastly, create a JSON key to import here.',
translated:
'Zorg ervoor dat u op \'Maken en doorgaan\' klikt om ten minste de \'Vertex AI-gebruiker\'-rol te geven. Maak ten slotte een JSON-sleutel aan om hier te importeren.',
},
com_nav_auto_scroll: {
english: 'Auto-Scroll to latest message on chat open',
translated: 'Automatisch scrollen naar Nieuwste bij openen',
},
com_nav_plugin_store: {
english: 'Plugin store',
translated: 'Plugin-opslag',
},
com_nav_plugin_search: {
english: 'Search plugins',
translated: 'Plugins zoeken',
},
com_nav_plugin_auth_error: {
english: 'There was an error attempting to authenticate this plugin. Please try again.',
translated: 'Er trad een fout op bij het authenticeren van deze plugin. Probeer het opnieuw.',
},
com_nav_export_filename: {
english: 'Filename',
translated: 'Bestandsnaam',
},
com_nav_export_filename_placeholder: {
english: 'Set the filename',
translated: 'Stel de bestandsnaam in',
},
com_nav_export_type: {
english: 'Type',
translated: 'Type',
},
com_nav_export_include_endpoint_options: {
english: 'Include endpoint options',
translated: 'Eindpuntopties opnemen',
},
com_nav_enabled: {
english: 'Enabled',
translated: 'Ingeschakeld',
},
com_nav_not_supported: {
english: 'Not Supported',
translated: 'Niet ondersteund',
},
com_nav_export_all_message_branches: {
english: 'Export all message branches',
translated: 'Alle berichtvertakkingen exporteren',
},
com_nav_export_recursive_or_sequential: {
english: 'Recursive or sequential?',
translated: 'Recursief of sequentieel?',
},
com_nav_export_recursive: {
english: 'Recursive',
translated: 'Recursief',
},
com_nav_export_conversation: {
english: 'Export conversation',
translated: 'Conversatie exporteren',
},
🚀 feat: Shared Links (#2772) * ✨ feat(types): add necessary types for shared link feature * ✨ feat: add shared links functions to data service Added functions for retrieving, creating, updating, and deleting shared links and shared messages. * ✨ feat: Add useGetSharedMessages hook to fetch shared messages by shareId Adds a new hook `useGetSharedMessages` which fetches shared messages based on the provided shareId. * ✨ feat: Add share schema and data access functions to API models * ✨ feat: Add share endpoint to API The GET /api/share/${shareId} is exposed to the public, so authentication is not required. Other paths require authentication. * ♻️ refactor(utils): generalize react-query cache manipulation functions Introduces generic functions for manipulating react-query cache entries, marking a refinement in how query cache data is managed. It aims to enhance the flexibility and reusability of the cache interaction patterns within our application. - Replaced specific index names with more generic terms in queries.ts, enhancing consistency across data handling functions. - Introduced new utility functions in collection.ts for adding, updating, and deleting data entries in an InfiniteData<TCollection>. These utility functions (`addData`, `updateData`, `deleteData`, `findPage`) are designed to be re-usable across different data types and collections. - Adapted existing conversation utility functions in convos.ts to leverage these new generic utilities. * ✨ feat(shared-link): add functions to manipulate shared link cache list implemented new utility functions to handle additions, updates, and deletions in the shared link cache list. * ✨ feat: Add mutations and queries for shared links * ✨ feat(shared-link): add `Share` button to conversation list - Added a share button in each conversation in the conversation list. - Implemented functionality where clicking the share button triggers a POST request to the API. - The API checks if a share link was already created for the conversation today; if so, it returns the existing link. - If no link was created for today, the API will create a new share link and return it. - Each click on the share button results in a new API request, following the specification similar to ChatGPT's share link feature. * ♻️ refactor(hooks): generalize useNavScrolling for broader use - Modified `useNavScrolling` to accept a generic type parameter `TData`, allowing it to be used with different data structures besides `ConversationListResponse`. - Updated instances in `Nav.tsx` and `ArchivedChatsTable.tsx` to explicitly specify `ConversationListResponse` as the type argument when invoking `useNavScrolling`. * ✨ feat(settings): add shared links listing table with delete functionality in settings - Integrated a delete button for each shared link in the table, allowing users to remove links as needed. * ♻️ refactor(components): separate `EndpointIcon` from `Icon` component for standalone use * ♻️ refactor: update useGetSharedMessages to return TSharedLink - Modified the useGetSharedMessages hook to return not only a list of TMessage but also the TSharedLink itself. - This change was necessary to support displaying the title and date in the Shared Message UI, which requires data from TSharedLink. * ✨ feat(shared link): add UI for displaying shared conversations without authentication - Implemented a new UI component to display shared conversations, designed to be accessible without requiring authentication. - Reused components from the authenticated Messages module where possible. Copied and adapted components that could not be directly reused to fit the non-authenticated context. * 🔧 chore: Add translations Translate labels only. Messages remain in English as they are possibly subject to change. * ♻️ refactor: add icon and tooltip props to EditMenuButton component * moved icon and popover to arguments so that EditMenuButton can be reused. * modified so that when a ShareButton is closed, the parent DropdownMenu is also closed. * ♻️irefactor: added DropdownMenu for Export and Share * ♻️ refactor: renamed component names more intuitive * More accurate naming of the dropdown menu. * When the export button is closed, the parent dropdown menu is also closed. * 🌍 chore: updated translations * 🐞 Fix: OpenID Profile Image Download (#2757) * Add fetch requirement Fixes - error: [openidStrategy] downloadImage: Error downloading image at URL "https://graph.microsoft.com/v1.0/me/photo/$value": TypeError: response.buffer is not a function * Update openidStrategy.js --------- Co-authored-by: Danny Avila <danacordially@gmail.com> * 🚑 fix(export): Issue exporting Conversation with Assistants (#2769) * 🚑 fix(export): use content as text if content is present in the message If the endpoint is assistants, the text of the message goes into content, not message.text. * refactor(ExportModel): TypeScript, remove unused code --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> * 📤style: export button icon (#2752) * refactor(ShareDialog): logic and styling * refactor(ExportAndShareMenu): imports order and icon update * chore: imports * chore: imports/render logic * feat: message branching * refactor: add optional config to useGetStartupConfig * refactor: disable endpoints query * chore: fix search view styling gradient in light mode * style: ShareView gradient styling * refactor(Share): use select queries * style: shared link table buttons * localization and dark text styling * style: fix clipboard button layout shift app-wide and add localization for copy code * support assistants message content in shared links, add useCopyToClipboard, add copy buttons to Search Messages and Shared Link Messages * add localizations * comparisons --------- Co-authored-by: Yuichi Ohneda <ohneda@gmail.com> Co-authored-by: bsu3338 <bsu3338@users.noreply.github.com> Co-authored-by: Fuegovic <32828263+fuegovic@users.noreply.github.com>
2024-05-17 18:13:32 -04:00
com_nav_export: {
english: 'Export',
translated: 'Exporteren',
},
com_nav_shared_links: {
english: 'Shared links',
translated: 'Gedeelde links',
},
com_nav_shared_links_manage: {
english: 'Manage',
translated: 'Beheren',
},
com_nav_shared_links_empty: {
english: 'You have no shared links.',
translated: 'U hebt geen gedeeld links.',
},
com_nav_shared_links_name: {
english: 'Name',
translated: 'Naam',
},
com_nav_shared_links_date_shared: {
english: 'Date shared',
translated: 'Datum gedeeld',
},
com_nav_theme: {
english: 'Theme',
translated: 'Thema',
},
com_nav_theme_system: {
english: 'System',
translated: 'Systeem',
},
com_nav_theme_dark: {
english: 'Dark',
translated: 'Donker',
},
com_nav_theme_light: {
english: 'Light',
translated: 'Licht',
},
com_nav_clear_all_chats: {
english: 'Clear all chats',
translated: 'Alle chats wissen',
},
com_nav_confirm_clear: {
english: 'Confirm Clear',
translated: 'Wissen bevestigen',
},
com_nav_close_sidebar: {
english: 'Close sidebar',
translated: 'Zijbalk sluiten',
},
com_nav_open_sidebar: {
english: 'Open sidebar',
translated: 'Zijbalk openen',
},
com_nav_send_message: {
english: 'Send message',
translated: 'Bericht verzenden',
},
com_nav_log_out: {
english: 'Log out',
translated: 'Uitloggen',
},
com_nav_user: {
english: 'USER',
translated: 'GEBRUIKER',
},
com_nav_archived_chats: {
english: 'Archived chats',
translated: 'Gearchiveerde chats',
},
com_nav_archived_chats_manage: {
english: 'Manage',
translated: 'Beheren',
},
com_nav_archived_chats_empty: {
english: 'You have no archived conversations.',
translated: 'Geen gearchiveerde chats',
},
com_nav_archive_all_chats: {
english: 'Archive all chats',
translated: 'Alle chats archiveren',
},
com_nav_archive_all: {
english: 'Archive all',
translated: 'Alle archiveren',
},
com_nav_archive_name: {
english: 'Name',
translated: 'Naam',
},
com_nav_archive_created_at: {
english: 'DateCreated',
translated: 'Gemaakt op',
},
com_nav_clear_conversation: {
english: 'Clear conversations',
translated: 'Conversaties wissen',
},
com_nav_clear_conversation_confirm_message: {
english: 'Are you sure you want to clear all conversations? This is irreversible.',
translated: 'Weet u zeker dat u alle conversaties wilt wissen? Dit is onomkeerbaar.',
},
com_nav_help_faq: {
english: 'Help & FAQ',
translated: 'Help & FAQ',
},
com_nav_settings: {
english: 'Settings',
translated: 'Instellingen',
},
com_nav_search_placeholder: {
english: 'Search messages',
translated: 'Berichten doorzoeken',
},
com_nav_setting_general: {
english: 'General',
translated: 'Algemeen',
},
com_nav_setting_data: {
english: 'Data controls',
translated: 'Gegevensbesturing',
},
};