diff --git a/services/web/app/src/util/third-party-icons.mjs b/services/web/app/src/util/third-party-icons.mjs index b5ee44e073..c049d3d5d6 100644 --- a/services/web/app/src/util/third-party-icons.mjs +++ b/services/web/app/src/util/third-party-icons.mjs @@ -9,7 +9,7 @@ const thirdPartyIcons = [ { file: 'dropbox-transparent.svg', label: 'Dropbox' }, { file: 'zotero_64x64x32.png', label: 'Zotero' }, { file: 'mendeley.svg', label: 'Mendeley' }, - { file: 'papers.svg', label: 'Papers' }, + { file: 'papers.svg', label: 'ReadCube' }, ] export default thirdPartyIcons diff --git a/services/web/app/views/_mixins/ciam_mixins.pug b/services/web/app/views/_mixins/ciam_mixins.pug index c3ee562e00..92f88ab03c 100644 --- a/services/web/app/views/_mixins/ciam_mixins.pug +++ b/services/web/app/views/_mixins/ciam_mixins.pug @@ -55,7 +55,7 @@ mixin ciamCardFooter(short) { name: 'a', attrs: { - href: 'https://www.papersapp.com/', + href: 'https://www.readcube.com/', target: '_blank', rel: 'noopener noreferrer', 'event-tracking-mb': 'true', @@ -64,7 +64,7 @@ mixin ciamCardFooter(short) 'event-segmentation': { product: 'overleaf', item: 'papers', - destinationUrl: 'https://www.papersapp.com/' + destinationUrl: 'https://www.readcube.com/' } } } diff --git a/services/web/frontend/extracted-translations.json b/services/web/frontend/extracted-translations.json index bf354e3d23..38b4ecb0ee 100644 --- a/services/web/frontend/extracted-translations.json +++ b/services/web/frontend/extracted-translations.json @@ -967,7 +967,7 @@ "imported_from_another_project_at_date": "", "imported_from_external_provider_at_date": "", "imported_from_mendeley_at_date": "", - "imported_from_papers_at_date": "", + "imported_from_readcube_at_date": "", "imported_from_the_output_of_another_project_at_date": "", "imported_from_zotero_at_date": "", "importing": "", @@ -1148,9 +1148,9 @@ "link_to_github": "", "link_to_github_description": "", "link_to_mendeley": "", - "link_to_papers": "", + "link_to_readcube": "", "link_to_zotero": "", - "link_to_zotero_mendeley_papers_to_see_search_results_from_your_libraries_without_importing_files": "", + "link_to_zotero_mendeley_readcube_to_see_search_results_from_your_libraries_without_importing_files": "", "linked_accounts": "", "linked_collabratec_description": "", "linked_file": "", @@ -1415,18 +1415,6 @@ "page_current": "", "page_x_of_n": "", "pagination_navigation": "", - "papers": "", - "papers_dynamic_sync_description": "", - "papers_groups_loading_error": "", - "papers_groups_relink": "", - "papers_integration": "", - "papers_is_premium": "", - "papers_reference_loading_error": "", - "papers_reference_loading_error_expired": "", - "papers_reference_loading_error_forbidden": "", - "papers_sync_description": "", - "papers_upgrade_prompt_content": "", - "papers_upgrade_prompt_title": "", "paragraph_styles": "", "partial_outline_warning": "", "password": "", @@ -1599,6 +1587,18 @@ "read_only_dropbox_sync_message": "", "read_only_token": "", "read_write_token": "", + "readcube": "", + "readcube_dynamic_sync_description": "", + "readcube_groups_loading_error": "", + "readcube_groups_relink": "", + "readcube_integration": "", + "readcube_is_premium": "", + "readcube_reference_loading_error": "", + "readcube_reference_loading_error_expired": "", + "readcube_reference_loading_error_forbidden": "", + "readcube_sync_description": "", + "readcube_upgrade_prompt_content": "", + "readcube_upgrade_prompt_title": "", "ready_to_join_x": "", "ready_to_join_x_in_group_y": "", "ready_to_set_up": "", @@ -1763,7 +1763,7 @@ "search": "", "search_all_project_files": "", "search_bib_files": "", - "search_by_author_journal_title_and_more_link_to_zotero_mendeley_papers": "", + "search_by_author_journal_title_and_more_link_to_zotero_mendeley_readcube": "", "search_by_citation_key_author_journal_title_year_and_date": "", "search_by_citekey_author_year_title": "", "search_command_find": "", diff --git a/services/web/frontend/js/shared/components/layouts/ciam-layout.tsx b/services/web/frontend/js/shared/components/layouts/ciam-layout.tsx index 724b503015..8304a3c414 100644 --- a/services/web/frontend/js/shared/components/layouts/ciam-layout.tsx +++ b/services/web/frontend/js/shared/components/layouts/ciam-layout.tsx @@ -53,14 +53,14 @@ const CiamLayout: FC = ({ children }: Props) => ( />, // eslint-disable-next-line jsx-a11y/anchor-has-content,react/jsx-key eventTracking.sendMB('unified-access-footer-click', { product: 'overleaf', item: 'papers', - destinationUrl: 'https://www.papersapp.com/', + destinationUrl: 'https://www.readcube.com/', }) } />, diff --git a/services/web/frontend/js/shared/svgs/papers-logo.tsx b/services/web/frontend/js/shared/svgs/readcube-logo.tsx similarity index 98% rename from services/web/frontend/js/shared/svgs/papers-logo.tsx rename to services/web/frontend/js/shared/svgs/readcube-logo.tsx index 7d51173bae..281655bd18 100644 --- a/services/web/frontend/js/shared/svgs/papers-logo.tsx +++ b/services/web/frontend/js/shared/svgs/readcube-logo.tsx @@ -1,4 +1,4 @@ -function PapersLogo({ size = 40 }: { size?: number }) { +function ReadcubeLogo({ size = 40 }: { size?: number }) { return ( reference search", "advanced_reference_search_explanation": "Quickly find and insert references by author, title, year, or journal — using your own .bib files or connected reference managers.", "advanced_reference_search_mode": "Advanced reference search", - "advancing_research_with": "Advancing research with <0>Overleaf, <1>Papers, and more.", + "advancing_research_with": "Advancing research with <0>Overleaf, <1>ReadCube, and more.", "after_that_well_bill_you_x_total_y_subtotal_z_tax_annually_on_date_unless_you_cancel": "After that, we’ll bill you __totalAmount__ (__subtotalAmount__ + __taxAmount__ tax) annually on __date__, unless you cancel.", "aggregate_changed": "Changed", "aggregate_to": "to", @@ -1039,7 +1039,7 @@ "git_bridge_modal_use_previous_token": "If you’re prompted for a password, you can use a previously generated Git authentication token. Or you can generate a new one in Account settings. For more support, read our <0>help page.", "git_clone_project_command": "Git clone project command", "git_clone_this_project": "Git clone this project.", - "git_gitHub_dropbox_mendeley_papers_and_zotero_integrations": "Git, GitHub, Dropbox, Papers, Zotero, and Mendeley integrations", + "git_gitHub_dropbox_mendeley_readcube_and_zotero_integrations": "Git, GitHub, Dropbox, ReadCube, Zotero, and Mendeley integrations", "git_integration": "Git integration", "git_integration_info": "With Git integration, you can clone your Overleaf projects with Git. For full instructions on how to do this, <0>read our Git Integration help page.", "github": "GitHub", @@ -1230,7 +1230,7 @@ "imported_from_another_project_at_date": "Imported from <0>Another project/__sourceEntityPathHTML__, at __formattedDate__ __relativeDate__", "imported_from_external_provider_at_date": "Imported from <0>__shortenedUrlHTML__ at __formattedDate__ __relativeDate__", "imported_from_mendeley_at_date": "Imported from Mendeley at __formattedDate__ __relativeDate__", - "imported_from_papers_at_date": "Imported from Papers at __formattedDate__ __relativeDate__", + "imported_from_readcube_at_date": "Imported from ReadCube at __formattedDate__ __relativeDate__", "imported_from_the_output_of_another_project_at_date": "Imported from the output of <0>Another project: __sourceOutputFilePathHTML__, at __formattedDate__ __relativeDate__", "imported_from_zotero_at_date": "Imported from Zotero at __formattedDate__ __relativeDate__", "importing": "Importing", @@ -1480,9 +1480,9 @@ "link_to_github": "Link to your GitHub account", "link_to_github_description": "You need to authorise __appName__ to access your GitHub account to allow us to sync your projects.", "link_to_mendeley": "Link to Mendeley", - "link_to_papers": "Link to Papers", + "link_to_readcube": "Link to ReadCube", "link_to_zotero": "Link to Zotero", - "link_to_zotero_mendeley_papers_to_see_search_results_from_your_libraries_without_importing_files": "Link to Zotero, Mendeley, and Papers to see search results from your libraries without importing files.", + "link_to_zotero_mendeley_readcube_to_see_search_results_from_your_libraries_without_importing_files": "Link to Zotero, Mendeley, and ReadCube to see search results from your libraries without importing files.", "link_your_accounts": "Link your accounts", "linked_accounts": "Linked accounts", "linked_collabratec_description": "Use Collabratec to manage your __appName__ projects.", @@ -1853,19 +1853,7 @@ "page_not_found": "Page Not Found", "page_x_of_n": "Page __x__ of __n__", "pagination_navigation": "Pagination Navigation", - "papers": "Papers", - "papers_dynamic_sync_description": "With the Papers integration, you can import your references into __appName__. You can either import all your references at once or dynamically search your Papers library directly from __appName__.", - "papers_groups_loading_error": "There was an error loading libraries from Papers", - "papers_groups_relink": "There was an error accessing your Papers data. This was likely caused by lack of permissions. Please re-link your account and try again.", - "papers_integration": "Papers integration", - "papers_is_premium": "Papers integration is a premium feature", "papers_presentations_reports_and_more": "Papers, presentations, reports and more, written in LaTeX and published by our community.", - "papers_reference_loading_error": "Error, could not load references from Papers", - "papers_reference_loading_error_expired": "Papers token expired, please re-link your account", - "papers_reference_loading_error_forbidden": "Could not load references from Papers, please re-link your account and try again", - "papers_sync_description": "With the Papers integration you can import your references from Papers into your __appName__ projects.", - "papers_upgrade_prompt_content": "Link your Papers account to search and add your references from Papers directly in your project—they’ll automatically be added to your .bib file. Or import them as a file into your __appName__ projects.", - "papers_upgrade_prompt_title": "Cite from Papers", "paragraph_styles": "Paragraph styles", "partial_outline_warning": "The File outline is out of date. It will update itself as you edit the document", "password": "Password", @@ -2084,6 +2072,18 @@ "read_only_dropbox_sync_message": "As a read-only viewer you can sync the current project version to Dropbox, but changes made in Dropbox will <0>not sync back to Overleaf.", "read_only_token": "Read-Only Token", "read_write_token": "Read-Write Token", + "readcube": "ReadCube", + "readcube_dynamic_sync_description": "With the ReadCube integration, you can import your references into __appName__. You can either import all your references at once or dynamically search your ReadCube library directly from __appName__.", + "readcube_groups_loading_error": "There was an error loading libraries from ReadCube", + "readcube_groups_relink": "There was an error accessing your ReadCube data. This was likely caused by lack of permissions. Please re-link your account and try again.", + "readcube_integration": "ReadCube integration", + "readcube_is_premium": "ReadCube integration is a premium feature", + "readcube_reference_loading_error": "Error, could not load references from ReadCube", + "readcube_reference_loading_error_expired": "ReadCube token expired, please re-link your account", + "readcube_reference_loading_error_forbidden": "Could not load references from ReadCube, please re-link your account and try again", + "readcube_sync_description": "With the ReadCube integration you can import your references from ReadCube into your __appName__ projects.", + "readcube_upgrade_prompt_content": "Link your ReadCube account to search and add your references from ReadCube directly in your project—they’ll automatically be added to your .bib file. Or import them as a file into your __appName__ projects.", + "readcube_upgrade_prompt_title": "Cite from ReadCube", "ready_to_join_x": "You’re ready to join __inviterName__", "ready_to_join_x_in_group_y": "You’re ready to join __inviterName__ in __groupName__", "ready_to_set_up": "Ready to set up", @@ -2296,7 +2296,7 @@ "search": "Search", "search_all_project_files": "Search all project files", "search_bib_files": "Search by author, title, year", - "search_by_author_journal_title_and_more_link_to_zotero_mendeley_papers": "Search by author, journal, title, and more. Link to Zotero, Mendeley, or Papers to search and add references from your libraries directly in your project.", + "search_by_author_journal_title_and_more_link_to_zotero_mendeley_readcube": "Search by author, journal, title, and more. Link to Zotero, Mendeley, or ReadCube to search and add references from your libraries directly in your project.", "search_by_citation_key_author_journal_title_year_and_date": "Search by citation key, author, journal, title, year, and date.", "search_by_citekey_author_year_title": "Search by citation key, author, title, year", "search_command_find": "Find", diff --git a/services/web/locales/zh-CN.json b/services/web/locales/zh-CN.json index 5060a73b17..fb5483acfe 100644 --- a/services/web/locales/zh-CN.json +++ b/services/web/locales/zh-CN.json @@ -754,7 +754,7 @@ "git_bridge_modal_review_access": "<0>您拥有此项目的审核权限。这意味着您可以从 __appName__ 中提取,但不能将所做的任何更改推送回此项目。", "git_bridge_modal_see_once": "您只能看到此令牌一次。要删除或生成新帐户,请访问“帐户设置”。有关详细说明和故障排除,请阅读我们的<0>帮助页面。", "git_bridge_modal_use_previous_token": "如果系统提示您输入密码,您可以使用以前生成的Git身份验证令牌。或者,您可以在“帐户设置”中生成一个新帐户。有关更多支持,请阅读我们的<0>帮助页面。", - "git_gitHub_dropbox_mendeley_papers_and_zotero_integrations": "Git、GitHub、Dropbox、Mendeley、Papers 和 Zotero 集成", + "git_gitHub_dropbox_mendeley_readcube_and_zotero_integrations": "Git、GitHub、Dropbox、Mendeley、ReadCube 和 Zotero 集成", "git_integration": "Git 集成", "git_integration_info": "通过 Git 集成,您可以用 Git 克隆您的 Overleaf 项目。有关完整教程, 请阅读 <0>我们的帮助页面。", "github": "GitHub", @@ -913,7 +913,7 @@ "imported_from_another_project_at_date": "于 __formattedDate__ __relativeDate__,从<0>另一个项目/__sourceEntityPathHTML__导入", "imported_from_external_provider_at_date": "于 __formattedDate__ __relativeDate__,从<0>__shortenedUrlHTML__导入", "imported_from_mendeley_at_date": "于 __formattedDate__ __relativeDate__,从Mendeley导入", - "imported_from_papers_at_date": "从 __formattedDate__ __relativeDate__ 的论文导入", + "imported_from_readcube_at_date": "于 __formattedDate__ __relativeDate__,从ReadCube导入", "imported_from_the_output_of_another_project_at_date": "于 __formattedDate__ __relativeDate__,从<0>另一个项目的输出导入: __sourceOutputFilePathHTML__", "imported_from_zotero_at_date": "于 __formattedDate__ __relativeDate__,从Zotero导入", "importing": "正在导入", @@ -1099,7 +1099,7 @@ "link_to_github": "建立与您的GitHub账户的关联", "link_to_github_description": "您需要授权 __appName__ 访问您的GitHub账户,从而允许我们同步您的项目。", "link_to_mendeley": "关联至Mendeley", - "link_to_papers": "链接到 Papers", + "link_to_readcube": "链接到 ReadCube", "link_to_zotero": "关联至Zotero", "link_your_accounts": "链接您的帐户", "linked_accounts": "关联账户", @@ -1388,19 +1388,7 @@ "page_current": "页面 __page__,当前页面", "page_not_found": "找不到页面", "pagination_navigation": "分页导航", - "papers": "Papers", - "papers_dynamic_sync_description": "通过 Papers 集成,您可以将参考文献导入 __appName__。您可以一次性导入所有参考文献,也可以直接从 __appName__ 动态搜索 Papers 库。", - "papers_groups_loading_error": "从 Papers 加载库时出错", - "papers_groups_relink": "访问您的 Papers 数据时出错。这可能是由于权限不足造成的。请重新关联您的帐户并重试。", - "papers_integration": "Papers 集成", - "papers_is_premium": "Papers 集成是一项付费功能", "papers_presentations_reports_and_more": "论文、演示文稿、报告等,以 LaTeX 编写并由我们的社区发布。", - "papers_reference_loading_error": "无法从 Papers 中加载引文", - "papers_reference_loading_error_expired": "Papers 令牌已过期,请重新链接您的帐户", - "papers_reference_loading_error_forbidden": "无法从 Papers 中加载参考文献,请重新链接您的帐户并重试", - "papers_sync_description": "通过 Papers 集成,您可以将 Papers 中的参考资料导入到您的 __appName__ 项目中。", - "papers_upgrade_prompt_content": "关联您的 Papers 帐户,即可直接在项目中搜索并添加 Papers 中的参考文献——它们将自动添加到您的 .bib 文件中。或者,您也可以将它们作为文件导入到您的 __appName__ 项目中。", - "papers_upgrade_prompt_title": "从 Papers 引用", "paragraph_styles": "段落样式", "partial_outline_warning": "文件大纲已过期。它将在您编辑文档时自行更新", "password": "密码", @@ -1570,6 +1558,18 @@ "read_only_dropbox_sync_message": "作为只读查看者,您可以将当前项目版本同步到 Dropbox,但在 Dropbox 中所做的更改<0>不会同步回 Overleaf。", "read_only_token": "只读令牌", "read_write_token": "可读写令牌", + "readcube": "ReadCube", + "readcube_dynamic_sync_description": "通过 ReadCube 集成,您可以将参考文献导入 __appName__。您可以一次性导入所有参考文献,也可以直接从 __appName__ 动态搜索 ReadCube 库。", + "readcube_groups_loading_error": "从 ReadCube 加载库时出错", + "readcube_groups_relink": "访问您的 ReadCube 数据时出错。这可能是由于权限不足造成的。请重新关联您的帐户并重试。", + "readcube_integration": "ReadCube 集成", + "readcube_is_premium": "ReadCube 集成是一项付费功能", + "readcube_reference_loading_error": "无法从 ReadCube 中加载引文", + "readcube_reference_loading_error_expired": "ReadCube 令牌已过期,请重新链接您的帐户", + "readcube_reference_loading_error_forbidden": "无法从 ReadCube 中加载参考文献,请重新链接您的帐户并重试", + "readcube_sync_description": "通过 ReadCube 集成,您可以将 ReadCube 中的参考资料导入到您的 __appName__ 项目中。", + "readcube_upgrade_prompt_content": "关联您的 ReadCube 帐户,即可直接在项目中搜索并添加 ReadCube 中的参考文献——它们将自动添加到您的 .bib 文件中。或者,您也可以将它们作为文件导入到您的 __appName__ 项目中。", + "readcube_upgrade_prompt_title": "从 ReadCube 引用", "ready_to_join_x": "您已加入 __inviterName__", "ready_to_join_x_in_group_y": "您已加入 __groupName__ 团队的 __inviterName__", "ready_to_set_up": "准备好设置", @@ -1738,7 +1738,7 @@ "search": "搜索", "search_all_project_files": "搜索所有的项目文件", "search_bib_files": "按作者、标题、年份搜索", - "search_by_author_journal_title_and_more_link_to_zotero_mendeley_papers": "按作者、期刊、标题等进行搜索。链接到 Zotero、Mendeley 或 Papers,直接在您的项目中搜索和添加您图书馆中的参考文献。", + "search_by_author_journal_title_and_more_link_to_zotero_mendeley_readcube": "按作者、期刊、标题等进行搜索。链接到 Zotero、Mendeley 或 ReadCube,直接在您的项目中搜索和添加您图书馆中的参考文献。", "search_by_citekey_author_year_title": "通过引文的关键词、作者、标题、年份搜索", "search_command_find": "查找", "search_command_replace": "替换", diff --git a/services/web/test/unit/src/util/bib2json.test.mjs b/services/web/test/unit/src/util/bib2json.test.mjs index 83985a9fe0..22d76c3fb5 100644 --- a/services/web/test/unit/src/util/bib2json.test.mjs +++ b/services/web/test/unit/src/util/bib2json.test.mjs @@ -2,7 +2,7 @@ import { describe, expect, it } from 'vitest' import BibtexParser from '../../../../app/src/util/bib2json.js' describe('bib2json', function () { - // Server-side parser used by Write & Cite / Zotero / Papers sync + // Server-side parser used by Write & Cite / Zotero / ReadCube sync // (services/web/modules/tpr-webmodule). overleaf/internal#24246: an // oversized field is now truncated instead of dropping the whole entry. const MAX_FIELD_VALUE_LENGTH = 1000 * 20