Преглед изворни кода

Citations Checker (#29608)

GitOrigin-RevId: 2fe7720e848bf4a83ad2b71471d34ae5461e3fe9
Alex Vizcaino пре 8 месеци
родитељ
комит
24015a4c1f

+ 3 - 0
services/web/app/src/Features/Project/ProjectController.mjs

@@ -456,6 +456,9 @@ const _ProjectController = {
       'compile-timeout-target-plans',
       'compile-timeout-target-plans',
       'writefull-keywords-generator',
       'writefull-keywords-generator',
       'writefull-figure-generator',
       'writefull-figure-generator',
+      'wf-citations-checker',
+      'wf-citations-checker-dimensions',
+      'wf-citations-checker-on-selection',
       'writefull-asymetric-queue-size-per-model',
       'writefull-asymetric-queue-size-per-model',
       'pdf-dark-mode',
       'pdf-dark-mode',
       'editor-redesign-opt-out',
       'editor-redesign-opt-out',

+ 129 - 0
services/web/frontend/js/i18n-resources/writefull.ts

@@ -223,6 +223,9 @@ const en = {
     'toolbar.next-suggestion': 'Next suggestion',
     'toolbar.next-suggestion': 'Next suggestion',
     'toolbar.quota-exceeded': 'Quota is exceeded',
     'toolbar.quota-exceeded': 'Quota is exceeded',
     'toolbar.translate': 'Translate',
     'toolbar.translate': 'Translate',
+    'toolbar.citations-checker': 'Citations Checker',
+    'toolbar.citations-checker.selection':
+      'Select at least 10 words to use this widget',
     'create-modal.title': 'Generate __name__',
     'create-modal.title': 'Generate __name__',
     'create-modal.unavailable.title': 'Writefull is unavailable',
     'create-modal.unavailable.title': 'Writefull is unavailable',
     'create-modal.unavailable.content':
     'create-modal.unavailable.content':
@@ -373,6 +376,67 @@ const en = {
     'welcome.reset-password': 'Reset password',
     'welcome.reset-password': 'Reset password',
     'welcome.enable-writefull':
     'welcome.enable-writefull':
       'Enable Writefull for language and LaTeX support',
       'Enable Writefull for language and LaTeX support',
+    'citations-checker.title': 'Citations Checker',
+    'citations-checker.searching-cites':
+      'Checking your document for potential passages to include citations',
+    'citations-checker.no-results': 'No potential citations found',
+    'citations-checker.search-publications': 'View sources',
+    'citations-checker.publications.search-placeholder':
+      'Search in publications list',
+    'citations-checker.dismiss': 'Dismiss',
+    'citations-checker.searching-publications':
+      'Identifying potential sources to use',
+    'citations-checker.back': 'Back',
+    'citations-checker.publications.title':
+      "We've identified the following sources for you to review.",
+    'citations-checker.publications.no-results': 'No sources found',
+    'citations-checker.publications.no-title': 'No title',
+    'citations-checker.publications.no-authors': 'No authors',
+    'citations-checker.publications.external-search': 'Search for a DOI',
+    'citations-checker.publications.view': 'View',
+    'citations-checker.publications.insert': 'Insert',
+    'citations-checker.publications.copy': 'Copy citation',
+    'citations-checker.publications.copied': 'Copied to clipboard',
+    'citations-reviewer.chat.title': 'Citations reviewer',
+    'citations-reviewer.chat.description':
+      'Here are statements in your article that may benefit from a citation. <b>View suggestions</b> to see relevant papers.',
+    'citations-reviewer.chat.document-updated':
+      'Your document has been updated. Refresh citations to get new suggestions.',
+    'citations-reviewer.chat.fetching-citations':
+      'Reviewing your document to see if any passage of text might need a citation',
+    'citations-reviewer.chat.fetching-publications': 'Fetching publications...',
+    'citations-reviewer.chat.no-citations': 'No citations found',
+    'citations-reviewer.chat.publications.title': 'Suggested papers',
+    'citations-reviewer.chat.publications.description':
+      'The following papers may support the claim you’ve made. <b>AI can make mistakes. Always check papers yourself to ensure relevance.</b>',
+    'citations-reviewer.chat.publications.alternatively': 'Alternatively,',
+    'citations-reviewer.chat.publications.custom-search':
+      'search for papers yourself.',
+    'citations-reviewer.chat.publications.from-document': 'From your document:',
+    'citations-reviewer.chat.publications.passage': 'Passage to review',
+    'citations-reviewer.chat.actions.refresh': 'Refresh citations',
+    'citations-reviewer.chat.actions.back': 'Back',
+    'citations-reviewer.chat.actions.read-abstract': '> Read abstract',
+    'citations-reviewer.chat.actions.view-suggestions': 'View suggestions',
+    'citations-reviewer.chat.actions.ignore': 'Ignore',
+    'citations-reviewer.chat.actions.view-paper': 'View paper',
+    'citations-reviewer.chat.actions.insert-citation': 'Insert citation',
+    'citations-reviewer.chat.confirmation.title': 'Insert citation?',
+    'citations-reviewer.chat.confirmation.body':
+      'Always ensure you’ve read the paper and confirmed any suggestions made by AI before inserting a citation.',
+    'citations-reviewer.chat.confirmation.insert': 'Insert citation',
+    'citations-reviewer.chat.confirmation.cancel': 'Cancel',
+    'citations-reviewer.chat.custom-search.title': 'Custom search',
+    'citations-reviewer.chat.custom-search.form.title': 'Title',
+    'citations-reviewer.chat.custom-search.form.title-placeholder':
+      'Enter paper title',
+    'citations-reviewer.chat.custom-search.form.authors': 'Author name(s)',
+    'citations-reviewer.chat.custom-search.form.authors-placeholder':
+      'Enter author name(s)',
+    'citations-reviewer.chat.custom-search.form.keywords': 'Keywords',
+    'citations-reviewer.chat.custom-search.form.keywords-placeholder':
+      'Enter keywords',
+    'citations-reviewer.chat.custom-search.form.search': 'Search',
   },
   },
 } as const
 } as const
 
 
@@ -615,6 +679,9 @@ const es = {
     'toolbar.next-suggestion': 'Siguiente sugerencia',
     'toolbar.next-suggestion': 'Siguiente sugerencia',
     'toolbar.quota-exceeded': 'Cuota agotada',
     'toolbar.quota-exceeded': 'Cuota agotada',
     'toolbar.translate': 'Traducir',
     'toolbar.translate': 'Traducir',
+    'toolbar.citations-checker': 'Citations Checker',
+    'toolbar.citations-checker.selection':
+      'Selecciona al menos 10 palabras para usar este widget',
     'create-modal.title': 'Generador de __name__',
     'create-modal.title': 'Generador de __name__',
     'create-modal.unavailable.title': 'Writefull no está disponible',
     'create-modal.unavailable.title': 'Writefull no está disponible',
     'create-modal.unavailable.content':
     'create-modal.unavailable.content':
@@ -767,6 +834,68 @@ const es = {
     'welcome.reset-password': 'Restablecer contraseña',
     'welcome.reset-password': 'Restablecer contraseña',
     'welcome.enable-writefull':
     'welcome.enable-writefull':
       'Habilitar Writefull para soporte de lenguaje y LaTeX',
       'Habilitar Writefull para soporte de lenguaje y LaTeX',
+    'citations-checker.title': 'Verificador de citas',
+    'citations-checker.searching-cites':
+      'Comprobando tu documento para encontrar pasajes que puedan requerir citas',
+    'citations-checker.no-results': 'No se encontraron citas potenciales',
+    'citations-checker.search-publications': 'Ver fuentes',
+    'citations-checker.publications.search-placeholder':
+      'Buscar en la lista de fuentes',
+    'citations-checker.dismiss': 'Descartar',
+    'citations-checker.searching-publications':
+      'Identificando posibles fuentes para usar',
+    'citations-checker.back': 'Volver',
+    'citations-checker.publications.title':
+      'Hemos identificado las siguientes fuentes para que las revises.',
+    'citations-checker.publications.no-results': 'No se encontraron fuentes',
+    'citations-checker.publications.no-title': 'Sin título',
+    'citations-checker.publications.no-authors': 'Sin autores',
+    'citations-checker.publications.external-search': 'Buscar por DOI',
+    'citations-checker.publications.view': 'Ver',
+    'citations-checker.publications.insert': 'Insertar',
+    'citations-checker.publications.copy': 'Copiar cita',
+    'citations-checker.publications.copied': 'Copiado al portapapeles',
+    'citations-reviewer.chat.title': 'Revisor de citas',
+    'citations-reviewer.chat.description':
+      'Aquí tienes afirmaciones en tu artículo que pueden beneficiarse de una cita. <b>Ver sugerencias</b> para consultar los artículos relevantes.',
+    'citations-reviewer.chat.document-updated':
+      'Documento actualizado. Haz clic en "Actualizar citas" para revisar las citas nuevamente.',
+    'citations-reviewer.chat.fetching-citations':
+      'Revisando tu documento para ver si algún pasaje podría necesitar una cita',
+    'citations-reviewer.chat.fetching-publications':
+      'Obteniendo publicaciones...',
+    'citations-reviewer.chat.no-citations': 'No se encontraron citas',
+    'citations-reviewer.chat.publications.title': 'Artículos sugeridos',
+    'citations-reviewer.chat.publications.description':
+      'Los siguientes artículos pueden respaldar la afirmación que has hecho. <b>La IA puede cometer errores. Revisa siempre los artículos por tu cuenta para asegurar su relevancia.</b>',
+    'citations-reviewer.chat.publications.alternatively': 'Alternativamente,',
+    'citations-reviewer.chat.publications.custom-search':
+      'busca artículos por tu cuenta.',
+    'citations-reviewer.chat.publications.from-document': 'De tu documento:',
+    'citations-reviewer.chat.publications.passage': 'Pasaje a revisar',
+    'citations-reviewer.chat.actions.refresh': 'Actualizar citas',
+    'citations-reviewer.chat.actions.back': 'Volver',
+    'citations-reviewer.chat.actions.read-abstract': '> Leer resumen',
+    'citations-reviewer.chat.actions.view-suggestions': 'Ver sugerencias',
+    'citations-reviewer.chat.actions.ignore': 'Ignorar',
+    'citations-reviewer.chat.actions.view-paper': 'Ver artículo',
+    'citations-reviewer.chat.actions.insert-citation': 'Insertar cita',
+    'citations-reviewer.chat.confirmation.title': '¿Insertar cita?',
+    'citations-reviewer.chat.confirmation.body':
+      'Asegúrate siempre de haber leído el artículo y confirmado cualquier sugerencia realizada por la IA antes de insertar una cita.',
+    'citations-reviewer.chat.confirmation.insert': 'Insertar cita',
+    'citations-reviewer.chat.confirmation.cancel': 'Cancelar',
+    'citations-reviewer.chat.custom-search.title': 'Búsqueda personalizada',
+    'citations-reviewer.chat.custom-search.form.title': 'Título',
+    'citations-reviewer.chat.custom-search.form.title-placeholder':
+      'Introduce el título del artículo',
+    'citations-reviewer.chat.custom-search.form.authors': 'Nombre(s) del autor',
+    'citations-reviewer.chat.custom-search.form.authors-placeholder':
+      'Introduce el nombre del autor o autores',
+    'citations-reviewer.chat.custom-search.form.keywords': 'Palabras clave',
+    'citations-reviewer.chat.custom-search.form.keywords-placeholder':
+      'Introduce palabras clave',
+    'citations-reviewer.chat.custom-search.form.search': 'Buscar',
   },
   },
 }
 }