From e2107942486451d32d264ea4396c24432ccdbea6 Mon Sep 17 00:00:00 2001 From: Angel Montenegro Date: Mon, 28 Oct 2024 09:24:33 -0600 Subject: [PATCH 01/17] Transifex (#2382) * transifex pull * Translations for Oct 28 2024 --------- Co-authored-by: Leonardo Mendoza Fernadez --- .../properties/account/account.ar.properties | 2 +- .../properties/account/account.cs.properties | 2 +- .../properties/account/account.es.properties | 2 +- .../properties/account/account.ja.properties | 2 +- .../properties/account/account.ko.properties | 14 +++++++------- .../authorize/authorize.zh_CN.properties | 2 +- .../developer-tools/developer-tools.pt.properties | 2 +- .../developer-tools/developer-tools.ru.properties | 6 +++--- .../developer-tools.zh_TW.properties | 2 +- .../environment-banner.es.properties | 2 +- src/locale/properties/home/home.it.properties | 2 +- .../properties/linking/linking.ar.properties | 2 +- .../properties/linking/linking.de.properties | 2 +- .../password-recovery.fr.properties | 2 +- .../properties/record/record.zh_CN.properties | 4 ++-- .../properties/record/record.zh_TW.properties | 2 +- .../properties/register/register.fr.properties | 2 +- .../properties/register/register.it.properties | 2 +- .../properties/register/register.pt.properties | 2 +- .../properties/register/register.zh_CN.properties | 2 +- .../properties/register/register.zh_TW.properties | 4 ++-- src/locale/properties/shared/shared.ar.properties | 4 ++-- src/locale/properties/shared/shared.cs.properties | 4 ++-- src/locale/properties/shared/shared.fr.properties | 2 +- src/locale/properties/shared/shared.ja.properties | 4 ++-- src/locale/properties/shared/shared.pt.properties | 2 +- .../properties/side-bar/side-bar.de.properties | 4 ++-- .../properties/side-bar/side-bar.ja.properties | 2 +- src/locale/properties/signin/signin.es.properties | 2 +- src/locale/properties/signin/signin.fr.properties | 2 +- src/locale/properties/signin/signin.ja.properties | 2 +- src/locale/properties/signin/signin.pt.properties | 4 ++-- .../properties/signin/signin.zh_CN.properties | 2 +- .../properties/top-bar/top-bar.ar.properties | 2 +- .../properties/top-bar/top-bar.de.properties | 6 +++--- .../properties/top-bar/top-bar.it.properties | 4 ++-- src/locale/properties/works/works.ar.properties | 6 +++--- src/locale/properties/works/works.de.properties | 2 +- src/locale/properties/works/works.ru.properties | 2 +- 39 files changed, 59 insertions(+), 59 deletions(-) diff --git a/src/locale/properties/account/account.ar.properties b/src/locale/properties/account/account.ar.properties index eb214610e8..29ab8f6cce 100644 --- a/src/locale/properties/account/account.ar.properties +++ b/src/locale/properties/account/account.ar.properties @@ -191,7 +191,7 @@ account.scopePathType.orcidWorksCreate=إضافة الأعمال account.scopePathType.orcidWorksReadLimited=الاطلاع على عناصر سجلك لدى ORCID account.scopePathType.orcidWorksUpdate=تحديث الوظائف الخاصة بك account.scopePathType.peerReviewCreate=إضافة مراجعات النظراء -account.scopePathType.peerReviewReadLimited=الاطلاع على مراجعات النظراء من سجلك لدى ORCID +account.scopePathType.peerReviewReadLimited=الاطلاع على مراجعات النظراء من سجلك لدى ORCID account.scopePathType.peerReviewUpdate=تحديث قائمة مراجعات النظراء خاصتك account.scopePathType.personReadLimited=الاطلاع على معلومات محدودة من سيرتك الذاتية account.scopePathType.personUpdate=أضف/حدث المعلومات حولك (البلد، الكلمات الرئيسية، إلخ) diff --git a/src/locale/properties/account/account.cs.properties b/src/locale/properties/account/account.cs.properties index ec0535e1be..50b7618b10 100644 --- a/src/locale/properties/account/account.cs.properties +++ b/src/locale/properties/account/account.cs.properties @@ -88,7 +88,7 @@ account.copyTheCodeBelow=Zkopírujte níže uvedený kód a vložte ho na svůj account.defaultStyleShown=Výchozí styly jsou jsou zobrazeny nahoře. Skutečná barva písma/textu by měla ladit s vaším webem. account.preview=Náhled account.aQrCodeIsMachine=QR kód je grafika čitelná strojem, která obsahuje informace, obvykle URL webové stránky. QR kód vašeho ORCID iD je váš jedinečný kód zastupující vaše ORCID iD. Když jej někdo naskenuje čtečkou QR kódů (např. mobilním telefonem), bude přesměrován na váš veřejný záznam ORCID. -account.downloadQR=Stáhněte si QR kód svého ORCID iD a dejte si ho do prezentací, na plakáty, samolepky nebo vizitky – kamkoliv, kde má být k dispozici vaše ORCID iD! +account.downloadQR=Stáhněte si QR kód svého ORCID iD a dejte si ho do prezentací, na plakáty, samolepky nebo vizitky – kamkoliv, kde má být k dispozici vaše ORCID iD! account.clickDownloadQR=Kliknutím stáhnete Váš QR kód account.htmlCode=Zobrazujte své ORCID iD na webu account.qrCode=Získejte QR kód pro váš ORCID iD diff --git a/src/locale/properties/account/account.es.properties b/src/locale/properties/account/account.es.properties index 77dfdbf88c..978064a2dd 100644 --- a/src/locale/properties/account/account.es.properties +++ b/src/locale/properties/account/account.es.properties @@ -53,7 +53,7 @@ account.youWillNoLonger=No podrá utilizar más su identificación para iniciar account.deacctivateOrRemove=¿Desactivar o eliminar? account.ifYouHaveAccidentally=Si ha creado sin querer varias cuentas de ORCID, siempre podrá eliminar las duplicadas en vez de desactivarlas. account.learMoreAboutDeactivating=Obtener más información sobre cómo desactivar una cuenta de ORCID -account.accountSettings=Ajustes de la cuenta > Eliminar registro duplicado +account.accountSettings=Ajustes de la cuenta > Eliminar registro duplicado account.learMoreAbout=Más información sobre cómo eliminar registros duplicados account.readtyToDeactivate=¿Está listo para desactivar su cuenta? account.deactivate1=1. Inicie el proceso de desactivación haciendo clic en el botón ''Desactivar cuenta de ORCID'' de abajo diff --git a/src/locale/properties/account/account.ja.properties b/src/locale/properties/account/account.ja.properties index b96daf92c5..4917cd5480 100644 --- a/src/locale/properties/account/account.ja.properties +++ b/src/locale/properties/account/account.ja.properties @@ -168,7 +168,7 @@ account.youCantAddYourSelf=自分自身を信頼される個人として追加 account.alreadyAdded=このユーザーを既に追加済みです account.yourRessetPasswordLinkHasGoneBad=パスワードリセット用のリンクに問題があります。リンクが無効になっていないか、または有効期限が切れていないかをご確認ください。 account.requestANewLink=新しいパスワードリセット用リンクをリクエスト -account.settingEmailAlert1=メール頻度の設定: +account.settingEmailAlert1=メール頻度の設定: account.scopePathType.activitiesReadLimited=研究活動から制限付き情報を読み取る account.scopePathType.activitiesUpdate=研究活動(仕事、所属など)を追加 / 更新します。 account.scopePathType.affiliationsCreate=教育または雇用を追加 diff --git a/src/locale/properties/account/account.ko.properties b/src/locale/properties/account/account.ko.properties index 718c8a9dde..392b025800 100644 --- a/src/locale/properties/account/account.ko.properties +++ b/src/locale/properties/account/account.ko.properties @@ -18,8 +18,8 @@ account.daily=매일 account.weekly=주간 account.quarterly=분기 account.never=받지 않음 -account.settingEmailsAlert2=받지 않음으로 설정하기 -account.settingEmailsAlert3=ORCID 기록에 유용하거나 중요한 메시지를 놓칠 수도 있습니다. +account.settingEmailsAlert2=받지 않음으로 설정하기 +account.settingEmailsAlert3=ORCID 기록에 유용하거나 중요한 메시지를 놓칠 수도 있습니다. account.setYourPreferred=표시 및 ORCID 자동 알림용 기본 언어를 설정하십시오. account.byDefaultVisibility=기본적으로 ORCID 기록에 추가된 정보를 열람할 수 있는 사람은 누구입니까? account.language=언어 @@ -41,7 +41,7 @@ account.learnMoreAboutUsing=대체 계정으로 ORCID에 로그인하는 방법 account.accountPassword=계정 비밀번호 account.actions=계정 활동 account.OrcidCollectsLimited=ORCID는 귀하의 이름과 이메일 주소를 포함해 ORCID ID를 등록할 때 제출한 제한된 데이터를 수집합니다. 또한 귀하의 성, 소속, 직위, 교육, 보조금, 특허, 출판물과 같은 기타 데이터를 ORCID 기록에 추가하도록 선택할 수 있습니다. -account.youCanEasilyDownload=ORCID 레지스트리에서 모든 개인 데이터를 XML 파일로 쉽게 다운로드할 수 있습니다. 이 파일은 본인만 확인하고 접근할 수 있습니다. +account.youCanEasilyDownload=ORCID 레지스트리에서 모든 개인 데이터를 XML 파일로 쉽게 다운로드할 수 있습니다. 이 파일은 본인만 확인하고 접근할 수 있습니다. account.learnMoreAbout=개인 ORCID 데이터 다운로드에 대해 자세히 알아보기 account.downloadAllMyData=나의 모든 데이터 다운로드 account.downloadYourOrcid=본인 ORCID 데이터 다운로드하기 @@ -85,10 +85,10 @@ account.removeDuplicatedRecord=중복된 레코드 제거 account.passwordCannotBeEmpty=비밀번호는 비워둘 수 없습니다. account.oldPassword=기존 비밀번호 account.copyTheCodeBelow=아래 코드를 복사하여 귀하의 개인 웹사이트에 붙여 넣으십시오. -account.defaultStyleShown=위에 표시된 기본 스타일. 실제 글꼴/텍스트 색상은 사이트와 어울려야 합니다. +account.defaultStyleShown=위에 표시된 기본 스타일. 실제 글꼴/텍스트 색상은 사이트와 어울려야 합니다. account.preview=미리 보기 account.aQrCodeIsMachine=QR 코드는 일반적으로 웹 사이트 URL과 같은 정보가 포함된 기계 판독 가능 그래픽입니다. 귀하의 ORCID ID QR 코드는 본인에게만 유효하며 귀하의 ORCID ID를 나타냅니다. 휴대폰과 같은 QR 코드 리더기로 스캔한 사람은 누구나 귀하의 공개 ORCID 기록으로 전송됩니다. -account.downloadQR=ORCID ID QR 코드를 다운로드하여 포스터, 프리젠테이션, 스티커, 명함에 넣어보세요. 원하는 곳 어디서든 본인의 ORCID ID를 찾을 수 있습니다! +account.downloadQR=ORCID ID QR 코드를 다운로드하여 포스터, 프리젠테이션, 스티커, 명함에 넣어보세요. 원하는 곳 어디서든 본인의 ORCID ID를 찾을 수 있습니다! account.clickDownloadQR=클릭해서 귀하의 QR 코드를 다운로드 account.htmlCode=웹에 ORCID ID 표시하기 account.qrCode=ORCID iD용 QR 코드 받기 @@ -163,7 +163,7 @@ account.copy2FARecovery=2FA 복구 코드 복사하기 account.downloadOrCopy=이 코드를 다운로드하거나 복사하여 암호 관리자와 같은 안전한 장소에 저장하세요. account.onlyTimeDownload=이것이 이 코드를 다운로드하거나 복사할 수 있는 유일한 시간이며 ORCID는 백업을 저장하지 않습니다. 기기와 이 코드 모두에 접근할 수 없는 경우, 계정 접근 권한을 회복하려면 당사에 문의해야 합니다. account.iGotMyRecovery=복구 코드가 있습니다 - 계정 설정으로 돌아가기 -account.clipboard=백업 코드가 클립보드에 복사되었습니다. +account.clipboard=백업 코드가 클립보드에 복사되었습니다. account.youCantAddYourSelf=본인이 자신을 신탁 개인으로 추가할 수 없습니다 account.alreadyAdded=이미 추가된 사용자 account.yourRessetPasswordLinkHasGoneBad=비밀번호 초기화 링크에 문제가 있습니다. 링크가 유효한지, 만료되지 않았는지 확인하세요. @@ -199,7 +199,7 @@ account.scopePathType.readLimited=ORCID 레코드 읽기 account.scopePathType.readPublic=공개 정보만 읽기 account.scopePathType.webhook=레코드에 변경이 있으면 애플리케이션으로 알림 account.notifications=알림은 ORCID 레코드 내 활동에 대한 최신 정보를 제공합니다. 업데이트는 ORCID 수신함으로 자동 전송되지만 이메일로도 받아볼 수 있습니다. 이메일로 받고 싶은 알림의 종류와 수신 빈도를 직접 선택할 수 있습니다. -account.inAdditionToTheOptional=선택적인 계정 및 레코드 알림에 더해, 종종 ORCID 계정과 관련한 서비스 메시지가 이메일로 전송될 수 있습니다. 이러한 이메일은 포함된 정보가 프라이버시 설정 및 ORCID 계정의 기능에 영향을 끼칠 수 있기에 이러한 서비스 메시지는 다음 정책에 따라 수신 거부할 수 없습니다. +account.inAdditionToTheOptional=선택적인 계정 및 레코드 알림에 더해, 종종 ORCID 계정과 관련한 서비스 메시지가 이메일로 전송될 수 있습니다. 이러한 이메일은 포함된 정보가 프라이버시 설정 및 ORCID 계정의 기능에 영향을 끼칠 수 있기에 이러한 서비스 메시지는 다음 정책에 따라 수신 거부할 수 없습니다. account.notificationEmailAddress=알림 이메일 주소 account.yourOrcidNotification=ORCID 알림 이메일을 받을 주소: account.unverifiedEmailAddress=확인되지 않은 이메일 주소 diff --git a/src/locale/properties/authorize/authorize.zh_CN.properties b/src/locale/properties/authorize/authorize.zh_CN.properties index f65aa3a437..13e309590f 100644 --- a/src/locale/properties/authorize/authorize.zh_CN.properties +++ b/src/locale/properties/authorize/authorize.zh_CN.properties @@ -36,7 +36,7 @@ authorize.readInfomationVisibilityTrustedParties=按照可见性设置,允许 authorize.addUpdateReseachActivities=添加或更新您的研究活动内容(成果、隶属机构等) authorize.addUpdateInformation=添加/更新您的信息(国家、关键词等) authorize.youHave=您有 -authorize.trustedAccounts=个受信任帐户。 +authorize.trustedAccounts= 个受信任帐户。 authorize.authorizeAccessFor=为其授权: authorize.dashOrcid=- ORCID authorize.manageAccessPersmissions=您可以管理信任的组织的访问权限,这些组织来自同一个列表,列表包含 diff --git a/src/locale/properties/developer-tools/developer-tools.pt.properties b/src/locale/properties/developer-tools/developer-tools.pt.properties index cb630e9d9e..0d4f799010 100644 --- a/src/locale/properties/developer-tools/developer-tools.pt.properties +++ b/src/locale/properties/developer-tools/developer-tools.pt.properties @@ -46,7 +46,7 @@ developerTools.thisIsTheMostSecure=Esta é a opção mais segura e aquela que re developerTools.redirectUriFaq=Perguntas Frequentes sobre URI de redirecionamento developerTools.addARedirectUriBefore=Adicione um URI de redirecionamento antes de guardar a sua aplicação developerTools.redirectUriCannotBeEmpty=O URI de redirecionamento não pode estar em branco -developerTools.invalidRedirectUrl=URI de redirecionamento inválido +developerTools.invalidRedirectUrl= URI de redirecionamento inválido developerTools.addAnotherRedirectUri=Adicione outro URI de redirecionamento developerTools.changesHaveBeenSavedSuccessfully=As alterações foram guardadas. developerTools.saveApplicationAndGenerate=Guardar a aplicação e gerar o meu ID e código secreto de cliente diff --git a/src/locale/properties/developer-tools/developer-tools.ru.properties b/src/locale/properties/developer-tools/developer-tools.ru.properties index 53a13c3fdd..60802123e0 100644 --- a/src/locale/properties/developer-tools/developer-tools.ru.properties +++ b/src/locale/properties/developer-tools/developer-tools.ru.properties @@ -11,14 +11,14 @@ developerTools.retrieveMachineReadable=Открывать общедоступн developerTools.performMachineSearch=Искать общедоступные данные в реестре ORCID developerTools.orcidApiResful=Общедоступный API ORCID на основе REST использует developerTools.oauth20=OAuth -developerTools.wellEstablishedStandard=— надежный стандартный протокол для пользовательских разрешений. +developerTools.wellEstablishedStandard= — надежный стандартный протокол для пользовательских разрешений. developerTools.publicClientApplicationsAreGranted=Учетные данные общедоступного API предоставляются физическим лицам, а не организациям. Вы получаете персональный доступ, даже если используете сервис для работы в компании. developerTools.additionalResources=Дополнительные источники developerTools.readThePublicApisDocumentation=Ознакомиться с документами по общедоступному API developerTools.fillOutMoreAobutTheDifferences=Подробнее о разнице между общедоступным API и API для подписчиков… developerTools.orcidPublicClientTermsOfService=Условия использования общедоступного API ORCID developerTools.theOrcidPublicApiAllowsYouToRequestPermission=Общедоступный API ORCID предоставляется бесплатно физическим лицам для некоммерческих целей согласно -developerTools.publicClientTermsOfService=Условиям использования общедоступного API. +developerTools.publicClientTermsOfService=его Условиям использования. developerTools.youMustAcceptThePublicClientTermsOfService=Перед регистрацией для получения данных общедоступного API примите условия использования сервиса. developerTools.haveReadAndAgreeToTheOrcidPublicClientTermsOfService=Я принимаю Условия использования общедоступного API ORCID developerTools.registerForYourOrcidPublicApiCredentials=Чтобы получить данные общедоступного API ORCID, пройдите регистрацию @@ -35,7 +35,7 @@ developerTools.applicationDescription=Описание приложения developerTools.theDescriptionShown=Описание на странице авторизации OAuth, которое увидят пользователи. Не более 1000 символов. developerTools.redirectUris=Возвратные URI developerTools.pleaseNote=Обратите внимание: -developerTools.only=Принимаются +developerTools.only=Принимаются developerTools.httpsURI=только developerTools.areAccepted=URI с протоколом HTTPS. developerTools.domainsRegisted=Регистрируемые домены diff --git a/src/locale/properties/developer-tools/developer-tools.zh_TW.properties b/src/locale/properties/developer-tools/developer-tools.zh_TW.properties index 1bd3712c9b..a0df43ebbd 100644 --- a/src/locale/properties/developer-tools/developer-tools.zh_TW.properties +++ b/src/locale/properties/developer-tools/developer-tools.zh_TW.properties @@ -2,7 +2,7 @@ developerTools.clientSecret=用戶端密鑰 developerTools.generateNewClientSecret=產生新的用戶端密鑰 developerTools.ressettingYourClientSecret=重設您的用戶端密鑰將會產生新的密鑰。下方顯示您目前的用戶端密鑰,該密鑰將於接下來 24 小時內捨棄。 developerTools.developerTools=開發人員工具 -developerTools.thisSectionIsIntended=此區段主要提供給開發人員使用,以供規劃使用 ORCID 公開 API 將 ORCID 整合至自己的系統。 +developerTools.thisSectionIsIntended=此區段主要提供給開發人員使用,以供規劃使用 ORCID 公開 API 將 ORCID 整合至自己的系統。 developerTools.gettingStarted=開始使用免費的 ORCID 公開 API developerTools.orcidOffersAnApi=ORCID 提供免費公開 API (應用程式開發介面),可讓您的系統和應用程式為非商業用途連接到 ORCID 名錄。 developerTools.allowUserToSignInto=允許使用者透過 ORCID 帳戶登入您的系統/應用程式 diff --git a/src/locale/properties/environment-banner/environment-banner.es.properties b/src/locale/properties/environment-banner/environment-banner.es.properties index 7c38b6c587..b4a072d9ad 100644 --- a/src/locale/properties/environment-banner/environment-banner.es.properties +++ b/src/locale/properties/environment-banner/environment-banner.es.properties @@ -5,4 +5,4 @@ common.js.domain.warn.more_information=obtener más información. common.js.domain.warn.mailinator=mailinator.com common.js.domain.warn.email_addresses=; consulte las preguntas frecuentes de Sandbox para common.cookies.click_dismiss=Cerrar -environmentBanner.ariaLabelWarning=Advertencia: sitio web de pruebas +environmentBanner.ariaLabelWarning=Advertencia: sitio web de pruebas diff --git a/src/locale/properties/home/home.it.properties b/src/locale/properties/home/home.it.properties index 81b87576be..dec4c4ec9e 100644 --- a/src/locale/properties/home/home.it.properties +++ b/src/locale/properties/home/home.it.properties @@ -17,7 +17,7 @@ ngOrcid.membersMakeOrcid=Sono i membri della nostra organizzazione ad aver reso ngOrcid.getYourOrcid=Richiedi il tuo identificativo unico ORCID. Basta un minuto ed è gratuito. ngOrcid.findOutMore=MAGGIORI INFORMAZIONI SULLA NOSTRA MISSIONE E SUI NOSTRI VALORI ngOrcid.orcidProvides=ORCID fornisce un identificativo digitale persistente (ORCID iD) gestito e controllato dall'utente, che lo distingue dagli altri ricercatori. È possibile collegare il proprio iD ai propri dati professionali: affiliazioni, qualifiche, pubblicazioni, recensioni e altro ancora. È possibile utilizzare il proprio iD per condividere informazioni con altri sistemi, garantendo così i giusti riconoscimenti per tutti i contributi, senza problemi e risparmiando tempo, con minori possibilità di errori. -ngOrcid.enhanceYourProfile=Più informazioni sono collegate al tuo record ORCID, più trarrai vantaggio dalla condivisione del tuo iD, quindi concedi alle organizzazioni di cui ti fidi il permesso di aggiornare il tuo record e aggiungere le tue affiliazioni, e-mail, così come altri nomi con cui sei conosciuto e molto di più. +ngOrcid.enhanceYourProfile=Più informazioni sono collegate al tuo record ORCID, più trarrai vantaggio dalla condivisione del tuo iD, quindi concedi alle organizzazioni di cui ti fidi il permesso di aggiornare il tuo record e aggiungere le tue affiliazioni, e-mail, così come altri nomi con cui sei conosciuto e molto di più. ngOrcid.includeYourId=Il proprio iD va utilizzato, a richiesta, nei sistemi e nelle piattaforme autorizzate per inoltrare manoscritti ed eseguire altre operazioni, per ricevere crediti per i propri contributi. ngOrcid.orcidIs=ORCID è un'organizzazione senza scopo di lucro supportata da una comunità globale di organizzazioni che ne fanno parte: istituti di ricerca, editori, finanziatori, associazioni professionali, fornitori di servizi e altri partecipanti all'ecosistema della ricerca. ngOrcid.shareYourOrcid=CONDIVIDI IL TUO ORCID iD diff --git a/src/locale/properties/linking/linking.ar.properties b/src/locale/properties/linking/linking.ar.properties index fb2ba00008..5afab5be60 100644 --- a/src/locale/properties/linking/linking.ar.properties +++ b/src/locale/properties/linking/linking.ar.properties @@ -4,7 +4,7 @@ linking.signed=أنت مسجل الدخول في linking.as=كـ linking.finish=لربط حسابك، linking.account=يرجى تسجيل الدخول إلى موقع أوركيد أدناه، ستحتاج إلى أداء ذلك مرة واحدة فقط، وبمجرد ربط الحسابات، ستتمكن من تسجيل الدخول إلى سجل أوركيد الخاص بك باستخدام -linking.questions=حسابك. +linking.questions= حسابك. linking.knowledgebase=يُرجى زيارة مركز المساعدة الخاص بأوركيد linking.button.1=قم بتسجيل دخولك وربط linking.button.2=الحساب diff --git a/src/locale/properties/linking/linking.de.properties b/src/locale/properties/linking/linking.de.properties index 8a732780e2..f36c71d1e0 100644 --- a/src/locale/properties/linking/linking.de.properties +++ b/src/locale/properties/linking/linking.de.properties @@ -2,7 +2,7 @@ linking.title.1=Verknüpfung von Ihrem linking.title.2=Konto linking.signed=Angemeldet bei linking.as=als -linking.finish=Um Ihr Konto zu verknüpfen, +linking.finish=Um Ihr Konto zu verknüpfen, linking.account=melden Sie sich bitte unten bei ORCID an. Sie müssen dies nur einmal tun. Sobald die Konten verknüpft sind, können Sie sich mit Ihrem Konto bei Ihrem ORCID-Eintrag linking.questions=anmelden. linking.knowledgebase=besuchen Sie bitte das ORCID-Hilfecenter diff --git a/src/locale/properties/password-recovery/password-recovery.fr.properties b/src/locale/properties/password-recovery/password-recovery.fr.properties index c459dded11..c3b934dadd 100644 --- a/src/locale/properties/password-recovery/password-recovery.fr.properties +++ b/src/locale/properties/password-recovery/password-recovery.fr.properties @@ -5,7 +5,7 @@ orcid.frontend.reset.password.email_success_1=Nous avons envoyé un message à orcid.frontend.reset.password.email_success_2=de reset@notify.orcid.org. orcid.frontend.reset.password.email_success_3=Si vous ne recevez pas de message dans les prochains 10 minutes, veuillez vérifier votre dossier spam. Si vous ne voyez toujours pas de message, alors orcid.frontend.reset.password.email_success_4=contactez-nous -oauth_sign_up.labelemail=Email +oauth_sign_up.labelemail=Email ngOrcid.passwordAndOrcid=Récupération de mot de passe et/ou ORCID iD ngOrcid.didYouForget=Avez-vous oublié votre mot de passe ou votre ORCID iD? ngOrcid.pleaseChooseRecovery=Merci de choisir une option de récupération diff --git a/src/locale/properties/record/record.zh_CN.properties b/src/locale/properties/record/record.zh_CN.properties index bea0a80fcf..529d0eac73 100644 --- a/src/locale/properties/record/record.zh_CN.properties +++ b/src/locale/properties/record/record.zh_CN.properties @@ -29,8 +29,8 @@ selfService.p2.2=ORCID 会员门户 selfService.p2.3=。所有当前的自助服务功能以及其他新功能都将转移到门户。 selfService.alert=在我们为会员门户构建此改进版本时,自助服务将不可用。 selfService.next=下一步 -selfService.p3.1=如果您在此期间需要任何自助服务功能,请发送电子邮件到 -selfService.p3.2=寻求帮助。 +selfService.p3.1=如果您在此期间需要任何自助服务功能,请发送电子邮件到 +selfService.p3.2= 寻求帮助。 record.ariaLabelPreviewPublicRecord=预览此记录的公共版本(在新选项卡中打开) record.manageYourEmails=管理您的电子邮件 record.manageYourWebsite=管理您的网站和社交链接 diff --git a/src/locale/properties/record/record.zh_TW.properties b/src/locale/properties/record/record.zh_TW.properties index 4c71e85ed1..0736e55449 100644 --- a/src/locale/properties/record/record.zh_TW.properties +++ b/src/locale/properties/record/record.zh_TW.properties @@ -21,7 +21,7 @@ record.pleaseReport=請向您所在的網站或服務報告這個損毀的連結 record.unidentifiedOrganization=未識別的組織 record.identifyAS=識別為: selfService.heading=ORCID 自助服務現正更新中 -selfService.p1.1=自 +selfService.p1.1=自 selfService.p1.2=2022 年 6 月 1 日起, selfService.p1.3=使用者即無法從 ORCID 名錄使用自助服務。 selfService.p2.1=明年起,ORCID 會員入口網站將會接手提供更優質的 diff --git a/src/locale/properties/register/register.fr.properties b/src/locale/properties/register/register.fr.properties index 97698a1a08..be8146f904 100644 --- a/src/locale/properties/register/register.fr.properties +++ b/src/locale/properties/register/register.fr.properties @@ -190,7 +190,7 @@ register.passwordAreValid=Vos mots de passe correspondent register.passwordAreNotValid=Vos mots de passe ne correspondent pas register.emailAreValid=Vos adresses e-mail correspondent register.emailAreNotValid=Vos adresses e-mail ne correspondent pas -register.Email=Email +register.Email=Email register.VisibilityParties=Parties de confiance register.emailPlaceholder=L'adresse e-mail que vous utilisez le plus register.roleJobTitle=Titre du poste diff --git a/src/locale/properties/register/register.it.properties b/src/locale/properties/register/register.it.properties index a1c8eba52d..cfcfe9ce13 100644 --- a/src/locale/properties/register/register.it.properties +++ b/src/locale/properties/register/register.it.properties @@ -203,7 +203,7 @@ register.departmentPlaceholder=Scuola, università o dipartimento register.rolePlaceholder=Il tuo ruolo o il tuo lavoro nell’organizzazione register.yearPlaceholder=Anno register.monthPlaceholder=Mese -register.clearOrganization=Cancella l’organizzazione +register.clearOrganization=Cancella l’organizzazione shared.skipThisStepWithoutAddingAnAffiliation=Salta questo passaggio senza aggiungere un’affiliazione register.isAssociatedWith=ha già un’affiliazione con register.anExisting=un tipo preesistente di diff --git a/src/locale/properties/register/register.pt.properties b/src/locale/properties/register/register.pt.properties index 569dc50b04..a4de38e1b4 100644 --- a/src/locale/properties/register/register.pt.properties +++ b/src/locale/properties/register/register.pt.properties @@ -205,7 +205,7 @@ register.yearPlaceholder=Ano register.monthPlaceholder=Mês register.clearOrganization=Remover organização shared.skipThisStepWithoutAddingAnAffiliation=Ignorar este passo sem adicionar uma afiliação -register.isAssociatedWith=Já se encontra associado a +register.isAssociatedWith=Já se encontra associado a register.anExisting=existente. register.anUnclaimed=não reclamado. register.aDeactivated=desativado. diff --git a/src/locale/properties/register/register.zh_CN.properties b/src/locale/properties/register/register.zh_CN.properties index 09855a313f..91cfe9b2d1 100644 --- a/src/locale/properties/register/register.zh_CN.properties +++ b/src/locale/properties/register/register.zh_CN.properties @@ -112,7 +112,7 @@ register.passwordNumberV2=至少 1 个数字 register.passwordConfirmationMatchV2=密码不匹配 register.passwordRequirements=密码请求 register.passwordRequirements1=密码必须介于 -register.passwordRequirements2=8 +register.passwordRequirements2=8 register.passwordRequirements3=到 register.passwordRequirements4=256 个 register.passwordRequirements5=字符之间,并且区分大小写。 diff --git a/src/locale/properties/register/register.zh_TW.properties b/src/locale/properties/register/register.zh_TW.properties index be521094ae..2be786af67 100644 --- a/src/locale/properties/register/register.zh_TW.properties +++ b/src/locale/properties/register/register.zh_TW.properties @@ -111,8 +111,8 @@ register.passwordSymbolV2=至少 1 個字母或符號 register.passwordNumberV2=至少 1 個數字 register.passwordConfirmationMatchV2=密碼不相符 register.passwordRequirements=密碼規定 -register.passwordRequirements1=密碼必須包含 -register.passwordRequirements2=8 至 +register.passwordRequirements1=密碼必須包含 +register.passwordRequirements2=8 至 register.passwordRequirements3=和 register.passwordRequirements4=256 個 register.passwordRequirements5=字元,且需區分大小寫。 diff --git a/src/locale/properties/shared/shared.ar.properties b/src/locale/properties/shared/shared.ar.properties index 458af95764..384573cf16 100644 --- a/src/locale/properties/shared/shared.ar.properties +++ b/src/locale/properties/shared/shared.ar.properties @@ -471,7 +471,7 @@ shared.employmentAriaLabel=الوظيفة shared.educationAriaLabel=التعليم shared.qualificationAriaLabel=المؤهل shared.distinctionAriaLabel=جائزة تميُّز -shared.invitedPositionAriaLabel=منصب بدعوة +shared.invitedPositionAriaLabel=منصب بدعوة shared.membershipAriaLabel=العضوية shared.serviceAriaLabel=الخدمة shared.fundingAriaLabel=التمويل @@ -540,7 +540,7 @@ shared.websiteExpandAriaLabel=توسيع المواقع الإلكترونية shared.personalIdsExpandAriaLabel=توسيع المعرّفات الشخصية shared.keywordsExpandAriaLabel=توسيع الكلمات الرئيسية shared.countriesExpandAriaLabel=توسيع البلاد -shared.countriesCollapseOtherName=طي الأسماء الأخرى +shared.countriesCollapseOtherName=طي الأسماء الأخرى shared.countriesExpandOtherNames=توسيع الأسماء الأخرى shared.researchResourcesSortAriaLabel=فرز موارد البحث الخاصة بك shared.researchResourcesExpandAriaLabel=توسيع قسم موارد البحث diff --git a/src/locale/properties/shared/shared.cs.properties b/src/locale/properties/shared/shared.cs.properties index 968dfc3dfd..1e6ebe4c72 100644 --- a/src/locale/properties/shared/shared.cs.properties +++ b/src/locale/properties/shared/shared.cs.properties @@ -457,7 +457,7 @@ shared.distinctionInvitedPositionExpandAriaLabel=Rozbalit oddíl Udělené pozic shared.membershipServiceExpandAriaLabel=Rozbalit oddíl Členství a služba shared.fundingServiceExpandAriaLabel=Rozbalit oddíl Financování shared.workServiceExpandAriaLabel=Rozbalit oddíl Práce -shared.peerReviewServiceExpandAriaLabel=Rozbalit oddíl Recenze +shared.peerReviewServiceExpandAriaLabel=Rozbalit oddíl Recenze shared.employmentCollapseAriaLabel=Sbalit oddíl Zaměstnání shared.educationQualificationCollapseAriaLabel=Sbalit oddíl Vzdělání a kvalifikace shared.distinctionInvitedPositionCollapseAriaLabel=Sbalit oddíl Udělené pozice a ocenění @@ -551,7 +551,7 @@ shared.researchResourceExpandAriaLabel=Rozbalit výzkumný zdroj shared.researchResourceCollapseAriaLabel=Sbalit výzkumný zdroj shared.peerReviewExpandAriaLabel=Rozbalit kontrolní činnost pro shared.peerReviewCollapseAriaLabel=Sbalit kontrolní činnost pro -shared.saveChangesTo=Uložit změny +shared.saveChangesTo=Uložit změny shared.cancelChangesAndClose=Zrušit změny a zavřít shared.setRelationShipAriaLabel=Nastavení vztahu shared.asAriaLabel=jako diff --git a/src/locale/properties/shared/shared.fr.properties b/src/locale/properties/shared/shared.fr.properties index 4c2334f615..d07ada09bb 100644 --- a/src/locale/properties/shared/shared.fr.properties +++ b/src/locale/properties/shared/shared.fr.properties @@ -527,7 +527,7 @@ shared.dialogAriaLabeledByWork=Gérer la boîte de dialogue Travail shared.dialogAriaLabeledByWorkSearch=Gérer la boîte de dialogue Recherche de travail shared.dialogAriaLabeledByPeerReview=Gérer la boîte de dialogue évaluation par les pairs shared.dialogAriaLabeledByExternalIdentifier=Gérer la boîte de dialogue Identifiant externe -shared.dialogAriaLabeledByBibtex=Gérer la boîte de dialogue bibtex +shared.dialogAriaLabeledByBibtex=Gérer la boîte de dialogue bibtex shared.emailsCollapseAriaLabel=Réduire E-mails shared.hideEmailDetailsAriaLabel=Masquer les détails de l'e-mail shared.websiteCollapseAriaLabel=Réduire Site Internet et liens sociaux diff --git a/src/locale/properties/shared/shared.ja.properties b/src/locale/properties/shared/shared.ja.properties index c2dcc3d917..bb4d97c7e7 100644 --- a/src/locale/properties/shared/shared.ja.properties +++ b/src/locale/properties/shared/shared.ja.properties @@ -479,7 +479,7 @@ shared.worksAriaLabel=ワーク shared.workAriaLabel=ワーク shared.peerReviewAriaLabel=査読 shared.researchResourcesAriaLabel=研究リソース -shared.activityCollapseForAriaLabel=折りたたむ: +shared.activityCollapseForAriaLabel=折りたたむ: shared.activityExpandForAriaLabel=展開: shared.employmentAddAriaLabel=雇用を追加 shared.educationQualificationAddAriaLabel=教育と資格を追加 @@ -640,4 +640,4 @@ shared.professionalActivitiesSortSource=専門研究活動をソースでソー shared.worksSortSource=作品をソースでソート shared.showDetailsFor=詳細を表示: shared.hideDetailsFor=詳細を非表示: -shared.opensInNewTab=(新しいタブが開きます) +shared.opensInNewTab= (新しいタブが開きます) diff --git a/src/locale/properties/shared/shared.pt.properties b/src/locale/properties/shared/shared.pt.properties index 33b99ca021..d3aa3901a4 100644 --- a/src/locale/properties/shared/shared.pt.properties +++ b/src/locale/properties/shared/shared.pt.properties @@ -471,7 +471,7 @@ shared.employmentAriaLabel=emprego shared.educationAriaLabel=educação shared.qualificationAriaLabel=qualificação shared.distinctionAriaLabel=distinção -shared.invitedPositionAriaLabel=cargo a convite +shared.invitedPositionAriaLabel=cargo a convite shared.membershipAriaLabel=adesão shared.serviceAriaLabel=serviço shared.fundingAriaLabel=financiamento diff --git a/src/locale/properties/side-bar/side-bar.de.properties b/src/locale/properties/side-bar/side-bar.de.properties index 6da10e98ad..bee8ef3ccf 100644 --- a/src/locale/properties/side-bar/side-bar.de.properties +++ b/src/locale/properties/side-bar/side-bar.de.properties @@ -11,7 +11,7 @@ side-bar.invalidEmailFormat=Ungültiges Format für die E-Mail-Adresse side-bar.invalidEmailErrorMessage=Bitte geben Sie eine gültige E-Mail-Adresse ein, beispielsweise peter@institution.edu. side-bar.pleaseVerify=Bitte bestätigen Sie Ihre primäre E-Mail-Adresse! side-bar.pleaseVerifyWarning=Bitte verifizieren Sie Ihre E-Mail-Adressen -side-bar.verifyToAccessOrcidFeatures=Um Zugriff auf alle Bearbeitungsfunktionen von ORCID zu erhalten, müssen Sie mindestens eine E-Mail-Adresse verifizieren. Bis dahin können Sie nur +side-bar.verifyToAccessOrcidFeatures=Um Zugriff auf alle Bearbeitungsfunktionen von ORCID zu erhalten, müssen Sie mindestens eine E-Mail-Adresse verifizieren. Bis dahin können Sie nur side-bar.names=Namen side-bar.and=und side-bar.emailAddress=E-Mail-Adresse @@ -56,7 +56,7 @@ side-bar.addCountryOrLocation=Land oder Ort hinzufügen side-bar.addAnotherCountryOrLocation=Weiteres Land oder Ort hinzufügen side-bar.countriesOrLocationsDescription=Fügen Sie Ihrem ORCID-Eintrag Länder oder Orte hinzu, um hervorzuheben, wo Sie Ihre Forschung durchführen oder worauf sich Ihre Forschung konzentriert. Sie können beliebig viele Länder oder Orte hinzufügen. side-bar.emailNotifications=E-Mail-Benachrichtigungen -side-bar.whichVerifiedEmail=An welche verifizierte E-Mail-Adresse sollen wir Ihre ORCID-Benachrichtigungen senden? Sie können die Häufigkeit dieser Benachrichtigungs-E-Mails in +side-bar.whichVerifiedEmail=An welche verifizierte E-Mail-Adresse sollen wir Ihre ORCID-Benachrichtigungen senden? Sie können die Häufigkeit dieser Benachrichtigungs-E-Mails in side-bar.yourOrcidAccountSettings=den Einstellungen Ihres ORCID-Kontos ändern. side-bar.deleteTooltip=Sie können nicht die einzige E-Mail-Adresse in Ihrem Konto löschen side-bar.visibilityTooltip=Sichtbarkeit auf „Nur ich“ festgelegt diff --git a/src/locale/properties/side-bar/side-bar.ja.properties b/src/locale/properties/side-bar/side-bar.ja.properties index 872b5334b3..c9fcb6f970 100644 --- a/src/locale/properties/side-bar/side-bar.ja.properties +++ b/src/locale/properties/side-bar/side-bar.ja.properties @@ -87,7 +87,7 @@ side-bar.ariaLabelPersonalIdCancel=変更をキャンセルしてその他の識 share.ariaLabelDelete=識別子を削除 share.ariaLabelIdentifier=識別子 side-bar.ariaLabelOtherIdsSupport=その他の識別子をORCIDレコードに追加する方法を確認 (新しいタブが開きます) -side-bar.ariaLabelUrl=(新しいタブが開きます) +side-bar.ariaLabelUrl= (新しいタブが開きます) side-bar.ariaLabelWebsiteSave=ウェブサイト&ソーシャルリンクの変更を保存 side-bar.ariaLabelWebsiteCancel=ウェブサイト&ソーシャルリンクの変更をキャンセル side-bar.ariaLabelWebsiteDelete=ウェブサイト&ソーシャルリンクを削除 diff --git a/src/locale/properties/signin/signin.es.properties b/src/locale/properties/signin/signin.es.properties index 6bd8216a32..967fbf5b40 100644 --- a/src/locale/properties/signin/signin.es.properties +++ b/src/locale/properties/signin/signin.es.properties @@ -24,7 +24,7 @@ ngOrcid.signin.invalidEmail=Utilice el formato ejemplo@email.com ngOrcid.signin.invalidUsername=Utilice el formato ejemplo@email.com o 0000-0001-2345-6789 ngOrcid.signin.requiredEmail=Se necesita un correo electrónico ngOrcid.signin.invalidPassword=Contraseña no válida -ngOrcid.signin.passwordTooLong=Las contraseñas deben tener 256 caracteres o menos. Por favor, +ngOrcid.signin.passwordTooLong=Las contraseñas deben tener 256 caracteres o menos. Por favor, ngOrcid.signin.needToReset=restablece tu contraseña ngOrcid.signin.toSignIn=para iniciar sesión. ngOrcid.signin.dontHaveOrcid=¿Aún no tiene un ORCID iD? diff --git a/src/locale/properties/signin/signin.fr.properties b/src/locale/properties/signin/signin.fr.properties index f5e2dfbec5..ae4f435617 100644 --- a/src/locale/properties/signin/signin.fr.properties +++ b/src/locale/properties/signin/signin.fr.properties @@ -15,7 +15,7 @@ ngOrcid.signin.username=Adresse email ou ID ORCID à 16 chiffres ngOrcid.signin.password=Mot de passe ngOrcid.signin.button=SE CONNECTER ngOrcid.signin.personalAccount=Compte personnel -ngOrcid.signin.institutionalAccount=Accès à travers votre institution +ngOrcid.signin.institutionalAccount=Accès à travers votre institution ngOrcid.signin.socialMedia=Connectez-vous avec un compte de réseau social ngOrcid.signin.google=Se connecter avec Google ngOrcid.signin.facebook=Se connecter avec Facebook diff --git a/src/locale/properties/signin/signin.ja.properties b/src/locale/properties/signin/signin.ja.properties index 6aea15c322..6de26672e6 100644 --- a/src/locale/properties/signin/signin.ja.properties +++ b/src/locale/properties/signin/signin.ja.properties @@ -80,7 +80,7 @@ ngOrcid.signin.theEmailAddress=このメールアドレス ngOrcid.signin.needToReactivateAccount=このメールアドレスでサインインする前に、アカウントを再有効化する必要があります。 ngOrcid.signin.cannotSignInToOrcid=レコードを申請するまで、このメールアドレスでORCIDにサインインすることはできません。 ngOrcid.signin.claimYourOrcidRecord=ORCIDレコードを申請 -ngOrcid.signin.orcidAccountHasBeenDeprecated=このORCIDアカウントは廃止されました。アクティブなアカウントはこちらです: +ngOrcid.signin.orcidAccountHasBeenDeprecated=このORCIDアカウントは廃止されました。アクティブなアカウントはこちらです: ngOrcid.signin.signInToActive=アクティブなORCIDアカウントにサインイン ngOrcid.signin.dontHaveYourOrcid=ORCID iDをお持ちではありませんか? ngOrcid.signin.forExample=例: joe@institution.edu または 0000-1234-5678-9101 diff --git a/src/locale/properties/signin/signin.pt.properties b/src/locale/properties/signin/signin.pt.properties index 8a185cb546..3b8a064fab 100644 --- a/src/locale/properties/signin/signin.pt.properties +++ b/src/locale/properties/signin/signin.pt.properties @@ -49,7 +49,7 @@ ngOrcid.signin.2fa.badRecoveryCode=Código de recuperação inválido ngOrcid.signin.2fa.badRecoveryCodeLength=Comprimento do código de recuperação inválido ngOrcid.signin.2fa.verificationCodeRequired=Um código de autenticação é necessário ngOrcid.signin.2fa.badVerificationCode=Código de autenticação inválido -ngOrcid.signin.2fa.badVerificationCodeLength=Comprimento do código de autenticação inválido +ngOrcid.signin.2fa.badVerificationCodeLength=Comprimento do código de autenticação inválido  ngOrcid.signin.2fa.contactSupport=Contactar suporte ngOrcid.signin.2fa.noDevice1=Não tem seu dispositivo? ngOrcid.signin.2fa.noDevice2=Digite um código de recuperação @@ -62,7 +62,7 @@ ngOrcid.signin.2fa.label=Código de autenticação de dois fatores ngOrcid.signin.2fa.recoveryCode=Código de recuperação ngOrcid.signin.unclaimedExists1=O registro ORCID existe mas não foi reivindicado. Gostaria de ngOrcid.signin.unclaimedExists2=reenviar o e-mail de reivindicação? -ngOrcid.signin.invalidUserType1=ORCID iD inválido, por favor +ngOrcid.signin.invalidUserType1= ORCID iD inválido, por favor ngOrcid.signin.invalidUserType2=entre em contato com a equipe de suporte ngOrcid.signin.contactSupport=contactar suporte ngOrcid.signin.signInToOrcid=Iniciar sessão no ORCID diff --git a/src/locale/properties/signin/signin.zh_CN.properties b/src/locale/properties/signin/signin.zh_CN.properties index 85fa0ce802..47125a630e 100644 --- a/src/locale/properties/signin/signin.zh_CN.properties +++ b/src/locale/properties/signin/signin.zh_CN.properties @@ -80,7 +80,7 @@ ngOrcid.signin.theEmailAddress=电子邮件地址 ngOrcid.signin.needToReactivateAccount=请先重新激活帐户,再使用此电子邮件地址登录。 ngOrcid.signin.cannotSignInToOrcid=请先获取当前记录,再使用此电子邮件地址登录 ORCID。 ngOrcid.signin.claimYourOrcidRecord=获取您的 ORCID 记录 -ngOrcid.signin.orcidAccountHasBeenDeprecated=当前 ORCID 帐户已被取代。正在使用的帐户是 +ngOrcid.signin.orcidAccountHasBeenDeprecated=当前 ORCID 帐户已被取代。正在使用的帐户是 ngOrcid.signin.signInToActive=登录使用中的 ORCID 帐户 ngOrcid.signin.dontHaveYourOrcid=还没有 ORCID iD 号? ngOrcid.signin.forExample=例如:joe@institution.edu 或 0000-1234-5678-9101 diff --git a/src/locale/properties/top-bar/top-bar.ar.properties b/src/locale/properties/top-bar/top-bar.ar.properties index d1691ec748..6a1383becb 100644 --- a/src/locale/properties/top-bar/top-bar.ar.properties +++ b/src/locale/properties/top-bar/top-bar.ar.properties @@ -110,6 +110,6 @@ topBar.deprecatedRecordIsDuplicate=يعد السجل غير المستعمل ن topBar.findOutMoreAboutRemoving=تعرّف على المزيد من المعلومات المتعلقة بكيفية إزالة السجلات الإضافية أو المكررة في المعرّف المفتوح للباحثين والمساهمين "ORCID". topBar.recordOwnerNotHaveAdded=ربما لم يضف صاحب السجل معلومات إلى سجله، أو ربما تم تعيين رؤية العناصر في سجله للأطراف الموثوق بها أو له فقط. topBar.findOutVisibility=تعرّف على المزيد من المعلومات المتعلقة بإعدادات الرؤية في المعرّف المفتوح للباحثين والمساهمين "ORCID" -topBar.ariaLabelCopyOrcidId=انسخ رقم المعرّف الخاص بالمعرّف المفتوح للباحثين والمساهمين "ORCID" الخاص بك إلى الحافظة +topBar.ariaLabelCopyOrcidId=انسخ رقم المعرّف الخاص بالمعرّف المفتوح للباحثين والمساهمين "ORCID" الخاص بك إلى الحافظة topBar.ariaLabelViewPrintable=عرض نسخة قابلة للطباعة من سجل المعرّف المفتوح للباحثين والمساهمين "ORCID" الخاص بك (تفتح في نافذة جديدة) topBar.forTheLastInformation=للحصول على أحدث المعلومات. diff --git a/src/locale/properties/top-bar/top-bar.de.properties b/src/locale/properties/top-bar/top-bar.de.properties index f0273bef84..a4fb29b11f 100644 --- a/src/locale/properties/top-bar/top-bar.de.properties +++ b/src/locale/properties/top-bar/top-bar.de.properties @@ -102,14 +102,14 @@ topBar.copyId=iD kopieren topBar.printableRecord=Druckbarer Eintrag topBar.whenOrcidDeactivated=Wenn ein ORCID-Eintrag deaktiviert wird, werden alle Informationen im Eintrag gelöscht. Deaktivierte Einträge werden bei der Suche in der Datenbank nicht angezeigt. topBar.findOutReactivating=Erfahren Sie mehr über die Reaktivierung eines ORCID-Kontos -topBar.weLockRecords=Wir sperren Einträge, wenn sie gegen die Bestimmungen unserer +topBar.weLockRecords=Wir sperren Einträge, wenn sie gegen die Bestimmungen unserer topBar.termsOfService=Servicebedingungen verstoßen. -topBar.recordLockedInError=Wenn Sie der Meinung sind, dass dieser Eintrag irrtümlich gesperrt wurde, +topBar.recordLockedInError=Wenn Sie der Meinung sind, dass dieser Eintrag irrtümlich gesperrt wurde, topBar.contactOrcid=wenden Sie sich bitte an den ORCID-Support, um weitere Unterstützung zu erhalten. topBar.deprecatedRecordIsDuplicate=Ein veralteter Eintrag ist ein doppelter oder unerwünschter ORCID-Eintrag, der mit einem anderen Eintrag der gleichen Person zusammengeführt wurde. topBar.findOutMoreAboutRemoving=Erfahren Sie mehr über das Entfernen zusätzlicher oder doppelter ORCID-Einträge topBar.recordOwnerNotHaveAdded=Der Eigentümer des Eintrags hat möglicherweise keine Informationen zu seinem Eintrag hinzugefügt oder die Sichtbarkeit für Elemente in seinem Eintrag ist auf „Vertrauenswürdige Parteien“ oder „Nur ich“ eingestellt. topBar.findOutVisibility=Erfahren Sie mehr über die Sichtbarkeitseinstellungen in ORCID topBar.ariaLabelCopyOrcidId=Kopieren Sie Ihre ORCID iD in die Zwischenablage -topBar.ariaLabelViewPrintable=Sehen Sie sich eine druckbare Version Ihres ORCID-Eintrags an (wird in einem neuen Tab geöffnet), +topBar.ariaLabelViewPrintable=Sehen Sie sich eine druckbare Version Ihres ORCID-Eintrags an (wird in einem neuen Tab geöffnet), topBar.forTheLastInformation=um die neuesten Informationen zu erhalten. diff --git a/src/locale/properties/top-bar/top-bar.it.properties b/src/locale/properties/top-bar/top-bar.it.properties index 8d2a509333..2e46bb389b 100644 --- a/src/locale/properties/top-bar/top-bar.it.properties +++ b/src/locale/properties/top-bar/top-bar.it.properties @@ -9,11 +9,11 @@ topBar.addPublishedName=Aggiungi un nome pubblicato o di attribuzione topBar.addOtherName=Aggiungi un altro nome topBar.information=Informazioni su te stesso, interessi di ricerca e altri dettagli pertinenti che migliorano il tuo record ORCID. topBar.yourNames=I tuoi nomi -topBar.yourGivenAndFamilyNames=I tuoi nomi e cognomi. +topBar.yourGivenAndFamilyNames=I tuoi nomi e cognomi. topBar.orcidHasANumber=ORCID offre diverse opzioni per aggiungere e gestire i tuoi nomi. topBar.findOutMore=Scopri di più su come gestire i nomi nel tuo record ORCID topBar.givenNames=Nome -topBar.firstNameError=Inserisci il tuo primo nome +topBar.firstNameError=Inserisci il tuo primo nome topBar.invalidName=Caratteri o formato del nome non validi topBar.invalidBio=Caratteri o formato non valido topBar.familyNames=Cognomi diff --git a/src/locale/properties/works/works.ar.properties b/src/locale/properties/works/works.ar.properties index 808a505ba1..6399cd61c4 100644 --- a/src/locale/properties/works/works.ar.properties +++ b/src/locale/properties/works/works.ar.properties @@ -161,11 +161,11 @@ works.manageSimilarWorks=إدارة الأعمال المماثلة works.urlMaxLength=يجب أن يكون أقل من 2000 حرف works.more=المزيد works.noBibtexEntries=خطأ في تحليل Bibtex. لم يتم العثور على مدخلات Bibtex في الملف -works.addWorkToOrcid=أضف هذا العمل إلى سجلك على ORCID +works.addWorkToOrcid=أضف هذا العمل إلى سجلك على ORCID works.exportAsBibtex=صدّر هذا العمل بصيغة BibTeX -works.fullContributorList=لإظهار قائمة المشاركين كاملة +works.fullContributorList=لإظهار قائمة المشاركين كاملة works.or=أو -works.visitWorkSource=زيارة مصدر العمل +works.visitWorkSource=زيارة مصدر العمل works.fullCitation=لإظهار الاقتباس الكامل works.showing=إظهار الأول works.etAl=إت آل. diff --git a/src/locale/properties/works/works.de.properties b/src/locale/properties/works/works.de.properties index e73d9372a1..5db68c0657 100644 --- a/src/locale/properties/works/works.de.properties +++ b/src/locale/properties/works/works.de.properties @@ -105,7 +105,7 @@ works.moreInformation=Weitere Informationen zum Import von BibTeX-Dateien in ORC works.chooseBibTex=Wählen Sie die zu importierende BibTeX-Datei works.retrievingWorkBibTex=Abrufen von Werke aus BibTeX works.foundInBibTex=Werke gefunden in BibTeX -works.importWorks=Importieren Sie Werke in Ihren Eintrag +works.importWorks=Importieren Sie Werke in Ihren Eintrag works.unableToImport=Import mit dieser Kennung nicht möglich. Bitte fügen Sie Werk mit einer anderen Option hinzu. works.bibtexImporterParsingError=Diese Datei kann nicht gelesen werden. Bitte überprüfen Sie die BibTeX-Formatierung und versuchen Sie es erneut. works.addFromPubMed=Werke - Fügen Sie Werke aus PubMed hinzu diff --git a/src/locale/properties/works/works.ru.properties b/src/locale/properties/works/works.ru.properties index a91a246575..2546a1c4f2 100644 --- a/src/locale/properties/works/works.ru.properties +++ b/src/locale/properties/works/works.ru.properties @@ -190,7 +190,7 @@ works.resources=Ресурсы works.supervision=Руководство works.validation=Утверждение works.visualization=Визуализация -works.writingOriginalDraft=Написание — первоначальный проект +works.writingOriginalDraft=Написание — первоначальный проект works.writingReviewEditing=Написание — проверка и редактирование works.roleNotDuplicated=Роль не может повторяться works.pleaseSelectIdentifierType=Выберите тип идентификатора From 9e60760e839e325ec6bf1ef06b66a6b03852321e Mon Sep 17 00:00:00 2001 From: amontenegro Date: Mon, 28 Oct 2024 15:30:23 +0000 Subject: [PATCH 02/17] =?UTF-8?q?=F0=9F=A4=96=20GITHUB=20ACTIONS=20i18n=20?= =?UTF-8?q?generator?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../properties/account/account.ar.properties | 2 +- .../properties/account/account.cs.properties | 2 +- .../properties/account/account.es.properties | 2 +- .../properties/account/account.ja.properties | 2 +- .../properties/account/account.ko.properties | 14 +++++++------- .../authorize/authorize.zh_CN.properties | 2 +- .../developer-tools/developer-tools.pt.properties | 2 +- .../developer-tools/developer-tools.ru.properties | 4 ++-- .../developer-tools.zh_TW.properties | 2 +- .../environment-banner.es.properties | 2 +- src/locale/properties/home/home.it.properties | 2 +- .../properties/linking/linking.ar.properties | 2 +- .../properties/linking/linking.de.properties | 2 +- .../password-recovery.fr.properties | 2 +- .../properties/record/record.zh_CN.properties | 4 ++-- .../properties/record/record.zh_TW.properties | 2 +- .../properties/register/register.fr.properties | 2 +- .../properties/register/register.it.properties | 2 +- .../properties/register/register.pt.properties | 2 +- .../properties/register/register.zh_CN.properties | 2 +- .../properties/register/register.zh_TW.properties | 4 ++-- src/locale/properties/shared/shared.ar.properties | 4 ++-- src/locale/properties/shared/shared.cs.properties | 4 ++-- src/locale/properties/shared/shared.fr.properties | 2 +- src/locale/properties/shared/shared.ja.properties | 4 ++-- src/locale/properties/shared/shared.pt.properties | 2 +- .../properties/side-bar/side-bar.de.properties | 4 ++-- .../properties/side-bar/side-bar.ja.properties | 2 +- src/locale/properties/signin/signin.es.properties | 2 +- src/locale/properties/signin/signin.fr.properties | 2 +- src/locale/properties/signin/signin.ja.properties | 2 +- src/locale/properties/signin/signin.pt.properties | 4 ++-- .../properties/signin/signin.zh_CN.properties | 2 +- .../properties/top-bar/top-bar.ar.properties | 2 +- .../properties/top-bar/top-bar.de.properties | 6 +++--- .../properties/top-bar/top-bar.it.properties | 4 ++-- src/locale/properties/works/works.ar.properties | 6 +++--- src/locale/properties/works/works.de.properties | 2 +- src/locale/properties/works/works.ru.properties | 2 +- 39 files changed, 58 insertions(+), 58 deletions(-) diff --git a/src/locale/properties/account/account.ar.properties b/src/locale/properties/account/account.ar.properties index 29ab8f6cce..eb214610e8 100644 --- a/src/locale/properties/account/account.ar.properties +++ b/src/locale/properties/account/account.ar.properties @@ -191,7 +191,7 @@ account.scopePathType.orcidWorksCreate=إضافة الأعمال account.scopePathType.orcidWorksReadLimited=الاطلاع على عناصر سجلك لدى ORCID account.scopePathType.orcidWorksUpdate=تحديث الوظائف الخاصة بك account.scopePathType.peerReviewCreate=إضافة مراجعات النظراء -account.scopePathType.peerReviewReadLimited=الاطلاع على مراجعات النظراء من سجلك لدى ORCID +account.scopePathType.peerReviewReadLimited=الاطلاع على مراجعات النظراء من سجلك لدى ORCID account.scopePathType.peerReviewUpdate=تحديث قائمة مراجعات النظراء خاصتك account.scopePathType.personReadLimited=الاطلاع على معلومات محدودة من سيرتك الذاتية account.scopePathType.personUpdate=أضف/حدث المعلومات حولك (البلد، الكلمات الرئيسية، إلخ) diff --git a/src/locale/properties/account/account.cs.properties b/src/locale/properties/account/account.cs.properties index 50b7618b10..ec0535e1be 100644 --- a/src/locale/properties/account/account.cs.properties +++ b/src/locale/properties/account/account.cs.properties @@ -88,7 +88,7 @@ account.copyTheCodeBelow=Zkopírujte níže uvedený kód a vložte ho na svůj account.defaultStyleShown=Výchozí styly jsou jsou zobrazeny nahoře. Skutečná barva písma/textu by měla ladit s vaším webem. account.preview=Náhled account.aQrCodeIsMachine=QR kód je grafika čitelná strojem, která obsahuje informace, obvykle URL webové stránky. QR kód vašeho ORCID iD je váš jedinečný kód zastupující vaše ORCID iD. Když jej někdo naskenuje čtečkou QR kódů (např. mobilním telefonem), bude přesměrován na váš veřejný záznam ORCID. -account.downloadQR=Stáhněte si QR kód svého ORCID iD a dejte si ho do prezentací, na plakáty, samolepky nebo vizitky – kamkoliv, kde má být k dispozici vaše ORCID iD! +account.downloadQR=Stáhněte si QR kód svého ORCID iD a dejte si ho do prezentací, na plakáty, samolepky nebo vizitky – kamkoliv, kde má být k dispozici vaše ORCID iD! account.clickDownloadQR=Kliknutím stáhnete Váš QR kód account.htmlCode=Zobrazujte své ORCID iD na webu account.qrCode=Získejte QR kód pro váš ORCID iD diff --git a/src/locale/properties/account/account.es.properties b/src/locale/properties/account/account.es.properties index 978064a2dd..77dfdbf88c 100644 --- a/src/locale/properties/account/account.es.properties +++ b/src/locale/properties/account/account.es.properties @@ -53,7 +53,7 @@ account.youWillNoLonger=No podrá utilizar más su identificación para iniciar account.deacctivateOrRemove=¿Desactivar o eliminar? account.ifYouHaveAccidentally=Si ha creado sin querer varias cuentas de ORCID, siempre podrá eliminar las duplicadas en vez de desactivarlas. account.learMoreAboutDeactivating=Obtener más información sobre cómo desactivar una cuenta de ORCID -account.accountSettings=Ajustes de la cuenta > Eliminar registro duplicado +account.accountSettings=Ajustes de la cuenta > Eliminar registro duplicado account.learMoreAbout=Más información sobre cómo eliminar registros duplicados account.readtyToDeactivate=¿Está listo para desactivar su cuenta? account.deactivate1=1. Inicie el proceso de desactivación haciendo clic en el botón ''Desactivar cuenta de ORCID'' de abajo diff --git a/src/locale/properties/account/account.ja.properties b/src/locale/properties/account/account.ja.properties index 4917cd5480..b96daf92c5 100644 --- a/src/locale/properties/account/account.ja.properties +++ b/src/locale/properties/account/account.ja.properties @@ -168,7 +168,7 @@ account.youCantAddYourSelf=自分自身を信頼される個人として追加 account.alreadyAdded=このユーザーを既に追加済みです account.yourRessetPasswordLinkHasGoneBad=パスワードリセット用のリンクに問題があります。リンクが無効になっていないか、または有効期限が切れていないかをご確認ください。 account.requestANewLink=新しいパスワードリセット用リンクをリクエスト -account.settingEmailAlert1=メール頻度の設定: +account.settingEmailAlert1=メール頻度の設定: account.scopePathType.activitiesReadLimited=研究活動から制限付き情報を読み取る account.scopePathType.activitiesUpdate=研究活動(仕事、所属など)を追加 / 更新します。 account.scopePathType.affiliationsCreate=教育または雇用を追加 diff --git a/src/locale/properties/account/account.ko.properties b/src/locale/properties/account/account.ko.properties index 392b025800..718c8a9dde 100644 --- a/src/locale/properties/account/account.ko.properties +++ b/src/locale/properties/account/account.ko.properties @@ -18,8 +18,8 @@ account.daily=매일 account.weekly=주간 account.quarterly=분기 account.never=받지 않음 -account.settingEmailsAlert2=받지 않음으로 설정하기 -account.settingEmailsAlert3=ORCID 기록에 유용하거나 중요한 메시지를 놓칠 수도 있습니다. +account.settingEmailsAlert2=받지 않음으로 설정하기 +account.settingEmailsAlert3=ORCID 기록에 유용하거나 중요한 메시지를 놓칠 수도 있습니다. account.setYourPreferred=표시 및 ORCID 자동 알림용 기본 언어를 설정하십시오. account.byDefaultVisibility=기본적으로 ORCID 기록에 추가된 정보를 열람할 수 있는 사람은 누구입니까? account.language=언어 @@ -41,7 +41,7 @@ account.learnMoreAboutUsing=대체 계정으로 ORCID에 로그인하는 방법 account.accountPassword=계정 비밀번호 account.actions=계정 활동 account.OrcidCollectsLimited=ORCID는 귀하의 이름과 이메일 주소를 포함해 ORCID ID를 등록할 때 제출한 제한된 데이터를 수집합니다. 또한 귀하의 성, 소속, 직위, 교육, 보조금, 특허, 출판물과 같은 기타 데이터를 ORCID 기록에 추가하도록 선택할 수 있습니다. -account.youCanEasilyDownload=ORCID 레지스트리에서 모든 개인 데이터를 XML 파일로 쉽게 다운로드할 수 있습니다. 이 파일은 본인만 확인하고 접근할 수 있습니다. +account.youCanEasilyDownload=ORCID 레지스트리에서 모든 개인 데이터를 XML 파일로 쉽게 다운로드할 수 있습니다. 이 파일은 본인만 확인하고 접근할 수 있습니다. account.learnMoreAbout=개인 ORCID 데이터 다운로드에 대해 자세히 알아보기 account.downloadAllMyData=나의 모든 데이터 다운로드 account.downloadYourOrcid=본인 ORCID 데이터 다운로드하기 @@ -85,10 +85,10 @@ account.removeDuplicatedRecord=중복된 레코드 제거 account.passwordCannotBeEmpty=비밀번호는 비워둘 수 없습니다. account.oldPassword=기존 비밀번호 account.copyTheCodeBelow=아래 코드를 복사하여 귀하의 개인 웹사이트에 붙여 넣으십시오. -account.defaultStyleShown=위에 표시된 기본 스타일. 실제 글꼴/텍스트 색상은 사이트와 어울려야 합니다. +account.defaultStyleShown=위에 표시된 기본 스타일. 실제 글꼴/텍스트 색상은 사이트와 어울려야 합니다. account.preview=미리 보기 account.aQrCodeIsMachine=QR 코드는 일반적으로 웹 사이트 URL과 같은 정보가 포함된 기계 판독 가능 그래픽입니다. 귀하의 ORCID ID QR 코드는 본인에게만 유효하며 귀하의 ORCID ID를 나타냅니다. 휴대폰과 같은 QR 코드 리더기로 스캔한 사람은 누구나 귀하의 공개 ORCID 기록으로 전송됩니다. -account.downloadQR=ORCID ID QR 코드를 다운로드하여 포스터, 프리젠테이션, 스티커, 명함에 넣어보세요. 원하는 곳 어디서든 본인의 ORCID ID를 찾을 수 있습니다! +account.downloadQR=ORCID ID QR 코드를 다운로드하여 포스터, 프리젠테이션, 스티커, 명함에 넣어보세요. 원하는 곳 어디서든 본인의 ORCID ID를 찾을 수 있습니다! account.clickDownloadQR=클릭해서 귀하의 QR 코드를 다운로드 account.htmlCode=웹에 ORCID ID 표시하기 account.qrCode=ORCID iD용 QR 코드 받기 @@ -163,7 +163,7 @@ account.copy2FARecovery=2FA 복구 코드 복사하기 account.downloadOrCopy=이 코드를 다운로드하거나 복사하여 암호 관리자와 같은 안전한 장소에 저장하세요. account.onlyTimeDownload=이것이 이 코드를 다운로드하거나 복사할 수 있는 유일한 시간이며 ORCID는 백업을 저장하지 않습니다. 기기와 이 코드 모두에 접근할 수 없는 경우, 계정 접근 권한을 회복하려면 당사에 문의해야 합니다. account.iGotMyRecovery=복구 코드가 있습니다 - 계정 설정으로 돌아가기 -account.clipboard=백업 코드가 클립보드에 복사되었습니다. +account.clipboard=백업 코드가 클립보드에 복사되었습니다. account.youCantAddYourSelf=본인이 자신을 신탁 개인으로 추가할 수 없습니다 account.alreadyAdded=이미 추가된 사용자 account.yourRessetPasswordLinkHasGoneBad=비밀번호 초기화 링크에 문제가 있습니다. 링크가 유효한지, 만료되지 않았는지 확인하세요. @@ -199,7 +199,7 @@ account.scopePathType.readLimited=ORCID 레코드 읽기 account.scopePathType.readPublic=공개 정보만 읽기 account.scopePathType.webhook=레코드에 변경이 있으면 애플리케이션으로 알림 account.notifications=알림은 ORCID 레코드 내 활동에 대한 최신 정보를 제공합니다. 업데이트는 ORCID 수신함으로 자동 전송되지만 이메일로도 받아볼 수 있습니다. 이메일로 받고 싶은 알림의 종류와 수신 빈도를 직접 선택할 수 있습니다. -account.inAdditionToTheOptional=선택적인 계정 및 레코드 알림에 더해, 종종 ORCID 계정과 관련한 서비스 메시지가 이메일로 전송될 수 있습니다. 이러한 이메일은 포함된 정보가 프라이버시 설정 및 ORCID 계정의 기능에 영향을 끼칠 수 있기에 이러한 서비스 메시지는 다음 정책에 따라 수신 거부할 수 없습니다. +account.inAdditionToTheOptional=선택적인 계정 및 레코드 알림에 더해, 종종 ORCID 계정과 관련한 서비스 메시지가 이메일로 전송될 수 있습니다. 이러한 이메일은 포함된 정보가 프라이버시 설정 및 ORCID 계정의 기능에 영향을 끼칠 수 있기에 이러한 서비스 메시지는 다음 정책에 따라 수신 거부할 수 없습니다. account.notificationEmailAddress=알림 이메일 주소 account.yourOrcidNotification=ORCID 알림 이메일을 받을 주소: account.unverifiedEmailAddress=확인되지 않은 이메일 주소 diff --git a/src/locale/properties/authorize/authorize.zh_CN.properties b/src/locale/properties/authorize/authorize.zh_CN.properties index 13e309590f..f65aa3a437 100644 --- a/src/locale/properties/authorize/authorize.zh_CN.properties +++ b/src/locale/properties/authorize/authorize.zh_CN.properties @@ -36,7 +36,7 @@ authorize.readInfomationVisibilityTrustedParties=按照可见性设置,允许 authorize.addUpdateReseachActivities=添加或更新您的研究活动内容(成果、隶属机构等) authorize.addUpdateInformation=添加/更新您的信息(国家、关键词等) authorize.youHave=您有 -authorize.trustedAccounts= 个受信任帐户。 +authorize.trustedAccounts=个受信任帐户。 authorize.authorizeAccessFor=为其授权: authorize.dashOrcid=- ORCID authorize.manageAccessPersmissions=您可以管理信任的组织的访问权限,这些组织来自同一个列表,列表包含 diff --git a/src/locale/properties/developer-tools/developer-tools.pt.properties b/src/locale/properties/developer-tools/developer-tools.pt.properties index 0d4f799010..cb630e9d9e 100644 --- a/src/locale/properties/developer-tools/developer-tools.pt.properties +++ b/src/locale/properties/developer-tools/developer-tools.pt.properties @@ -46,7 +46,7 @@ developerTools.thisIsTheMostSecure=Esta é a opção mais segura e aquela que re developerTools.redirectUriFaq=Perguntas Frequentes sobre URI de redirecionamento developerTools.addARedirectUriBefore=Adicione um URI de redirecionamento antes de guardar a sua aplicação developerTools.redirectUriCannotBeEmpty=O URI de redirecionamento não pode estar em branco -developerTools.invalidRedirectUrl= URI de redirecionamento inválido +developerTools.invalidRedirectUrl=URI de redirecionamento inválido developerTools.addAnotherRedirectUri=Adicione outro URI de redirecionamento developerTools.changesHaveBeenSavedSuccessfully=As alterações foram guardadas. developerTools.saveApplicationAndGenerate=Guardar a aplicação e gerar o meu ID e código secreto de cliente diff --git a/src/locale/properties/developer-tools/developer-tools.ru.properties b/src/locale/properties/developer-tools/developer-tools.ru.properties index 60802123e0..9feccbb479 100644 --- a/src/locale/properties/developer-tools/developer-tools.ru.properties +++ b/src/locale/properties/developer-tools/developer-tools.ru.properties @@ -11,7 +11,7 @@ developerTools.retrieveMachineReadable=Открывать общедоступн developerTools.performMachineSearch=Искать общедоступные данные в реестре ORCID developerTools.orcidApiResful=Общедоступный API ORCID на основе REST использует developerTools.oauth20=OAuth -developerTools.wellEstablishedStandard= — надежный стандартный протокол для пользовательских разрешений. +developerTools.wellEstablishedStandard=— надежный стандартный протокол для пользовательских разрешений. developerTools.publicClientApplicationsAreGranted=Учетные данные общедоступного API предоставляются физическим лицам, а не организациям. Вы получаете персональный доступ, даже если используете сервис для работы в компании. developerTools.additionalResources=Дополнительные источники developerTools.readThePublicApisDocumentation=Ознакомиться с документами по общедоступному API @@ -35,7 +35,7 @@ developerTools.applicationDescription=Описание приложения developerTools.theDescriptionShown=Описание на странице авторизации OAuth, которое увидят пользователи. Не более 1000 символов. developerTools.redirectUris=Возвратные URI developerTools.pleaseNote=Обратите внимание: -developerTools.only=Принимаются +developerTools.only=Принимаются developerTools.httpsURI=только developerTools.areAccepted=URI с протоколом HTTPS. developerTools.domainsRegisted=Регистрируемые домены diff --git a/src/locale/properties/developer-tools/developer-tools.zh_TW.properties b/src/locale/properties/developer-tools/developer-tools.zh_TW.properties index a0df43ebbd..1bd3712c9b 100644 --- a/src/locale/properties/developer-tools/developer-tools.zh_TW.properties +++ b/src/locale/properties/developer-tools/developer-tools.zh_TW.properties @@ -2,7 +2,7 @@ developerTools.clientSecret=用戶端密鑰 developerTools.generateNewClientSecret=產生新的用戶端密鑰 developerTools.ressettingYourClientSecret=重設您的用戶端密鑰將會產生新的密鑰。下方顯示您目前的用戶端密鑰,該密鑰將於接下來 24 小時內捨棄。 developerTools.developerTools=開發人員工具 -developerTools.thisSectionIsIntended=此區段主要提供給開發人員使用,以供規劃使用 ORCID 公開 API 將 ORCID 整合至自己的系統。 +developerTools.thisSectionIsIntended=此區段主要提供給開發人員使用,以供規劃使用 ORCID 公開 API 將 ORCID 整合至自己的系統。 developerTools.gettingStarted=開始使用免費的 ORCID 公開 API developerTools.orcidOffersAnApi=ORCID 提供免費公開 API (應用程式開發介面),可讓您的系統和應用程式為非商業用途連接到 ORCID 名錄。 developerTools.allowUserToSignInto=允許使用者透過 ORCID 帳戶登入您的系統/應用程式 diff --git a/src/locale/properties/environment-banner/environment-banner.es.properties b/src/locale/properties/environment-banner/environment-banner.es.properties index b4a072d9ad..7c38b6c587 100644 --- a/src/locale/properties/environment-banner/environment-banner.es.properties +++ b/src/locale/properties/environment-banner/environment-banner.es.properties @@ -5,4 +5,4 @@ common.js.domain.warn.more_information=obtener más información. common.js.domain.warn.mailinator=mailinator.com common.js.domain.warn.email_addresses=; consulte las preguntas frecuentes de Sandbox para common.cookies.click_dismiss=Cerrar -environmentBanner.ariaLabelWarning=Advertencia: sitio web de pruebas +environmentBanner.ariaLabelWarning=Advertencia: sitio web de pruebas diff --git a/src/locale/properties/home/home.it.properties b/src/locale/properties/home/home.it.properties index dec4c4ec9e..81b87576be 100644 --- a/src/locale/properties/home/home.it.properties +++ b/src/locale/properties/home/home.it.properties @@ -17,7 +17,7 @@ ngOrcid.membersMakeOrcid=Sono i membri della nostra organizzazione ad aver reso ngOrcid.getYourOrcid=Richiedi il tuo identificativo unico ORCID. Basta un minuto ed è gratuito. ngOrcid.findOutMore=MAGGIORI INFORMAZIONI SULLA NOSTRA MISSIONE E SUI NOSTRI VALORI ngOrcid.orcidProvides=ORCID fornisce un identificativo digitale persistente (ORCID iD) gestito e controllato dall'utente, che lo distingue dagli altri ricercatori. È possibile collegare il proprio iD ai propri dati professionali: affiliazioni, qualifiche, pubblicazioni, recensioni e altro ancora. È possibile utilizzare il proprio iD per condividere informazioni con altri sistemi, garantendo così i giusti riconoscimenti per tutti i contributi, senza problemi e risparmiando tempo, con minori possibilità di errori. -ngOrcid.enhanceYourProfile=Più informazioni sono collegate al tuo record ORCID, più trarrai vantaggio dalla condivisione del tuo iD, quindi concedi alle organizzazioni di cui ti fidi il permesso di aggiornare il tuo record e aggiungere le tue affiliazioni, e-mail, così come altri nomi con cui sei conosciuto e molto di più. +ngOrcid.enhanceYourProfile=Più informazioni sono collegate al tuo record ORCID, più trarrai vantaggio dalla condivisione del tuo iD, quindi concedi alle organizzazioni di cui ti fidi il permesso di aggiornare il tuo record e aggiungere le tue affiliazioni, e-mail, così come altri nomi con cui sei conosciuto e molto di più. ngOrcid.includeYourId=Il proprio iD va utilizzato, a richiesta, nei sistemi e nelle piattaforme autorizzate per inoltrare manoscritti ed eseguire altre operazioni, per ricevere crediti per i propri contributi. ngOrcid.orcidIs=ORCID è un'organizzazione senza scopo di lucro supportata da una comunità globale di organizzazioni che ne fanno parte: istituti di ricerca, editori, finanziatori, associazioni professionali, fornitori di servizi e altri partecipanti all'ecosistema della ricerca. ngOrcid.shareYourOrcid=CONDIVIDI IL TUO ORCID iD diff --git a/src/locale/properties/linking/linking.ar.properties b/src/locale/properties/linking/linking.ar.properties index 5afab5be60..fb2ba00008 100644 --- a/src/locale/properties/linking/linking.ar.properties +++ b/src/locale/properties/linking/linking.ar.properties @@ -4,7 +4,7 @@ linking.signed=أنت مسجل الدخول في linking.as=كـ linking.finish=لربط حسابك، linking.account=يرجى تسجيل الدخول إلى موقع أوركيد أدناه، ستحتاج إلى أداء ذلك مرة واحدة فقط، وبمجرد ربط الحسابات، ستتمكن من تسجيل الدخول إلى سجل أوركيد الخاص بك باستخدام -linking.questions= حسابك. +linking.questions=حسابك. linking.knowledgebase=يُرجى زيارة مركز المساعدة الخاص بأوركيد linking.button.1=قم بتسجيل دخولك وربط linking.button.2=الحساب diff --git a/src/locale/properties/linking/linking.de.properties b/src/locale/properties/linking/linking.de.properties index f36c71d1e0..8a732780e2 100644 --- a/src/locale/properties/linking/linking.de.properties +++ b/src/locale/properties/linking/linking.de.properties @@ -2,7 +2,7 @@ linking.title.1=Verknüpfung von Ihrem linking.title.2=Konto linking.signed=Angemeldet bei linking.as=als -linking.finish=Um Ihr Konto zu verknüpfen, +linking.finish=Um Ihr Konto zu verknüpfen, linking.account=melden Sie sich bitte unten bei ORCID an. Sie müssen dies nur einmal tun. Sobald die Konten verknüpft sind, können Sie sich mit Ihrem Konto bei Ihrem ORCID-Eintrag linking.questions=anmelden. linking.knowledgebase=besuchen Sie bitte das ORCID-Hilfecenter diff --git a/src/locale/properties/password-recovery/password-recovery.fr.properties b/src/locale/properties/password-recovery/password-recovery.fr.properties index c3b934dadd..c459dded11 100644 --- a/src/locale/properties/password-recovery/password-recovery.fr.properties +++ b/src/locale/properties/password-recovery/password-recovery.fr.properties @@ -5,7 +5,7 @@ orcid.frontend.reset.password.email_success_1=Nous avons envoyé un message à orcid.frontend.reset.password.email_success_2=de reset@notify.orcid.org. orcid.frontend.reset.password.email_success_3=Si vous ne recevez pas de message dans les prochains 10 minutes, veuillez vérifier votre dossier spam. Si vous ne voyez toujours pas de message, alors orcid.frontend.reset.password.email_success_4=contactez-nous -oauth_sign_up.labelemail=Email +oauth_sign_up.labelemail=Email ngOrcid.passwordAndOrcid=Récupération de mot de passe et/ou ORCID iD ngOrcid.didYouForget=Avez-vous oublié votre mot de passe ou votre ORCID iD? ngOrcid.pleaseChooseRecovery=Merci de choisir une option de récupération diff --git a/src/locale/properties/record/record.zh_CN.properties b/src/locale/properties/record/record.zh_CN.properties index 529d0eac73..bea0a80fcf 100644 --- a/src/locale/properties/record/record.zh_CN.properties +++ b/src/locale/properties/record/record.zh_CN.properties @@ -29,8 +29,8 @@ selfService.p2.2=ORCID 会员门户 selfService.p2.3=。所有当前的自助服务功能以及其他新功能都将转移到门户。 selfService.alert=在我们为会员门户构建此改进版本时,自助服务将不可用。 selfService.next=下一步 -selfService.p3.1=如果您在此期间需要任何自助服务功能,请发送电子邮件到 -selfService.p3.2= 寻求帮助。 +selfService.p3.1=如果您在此期间需要任何自助服务功能,请发送电子邮件到 +selfService.p3.2=寻求帮助。 record.ariaLabelPreviewPublicRecord=预览此记录的公共版本(在新选项卡中打开) record.manageYourEmails=管理您的电子邮件 record.manageYourWebsite=管理您的网站和社交链接 diff --git a/src/locale/properties/record/record.zh_TW.properties b/src/locale/properties/record/record.zh_TW.properties index 0736e55449..4c71e85ed1 100644 --- a/src/locale/properties/record/record.zh_TW.properties +++ b/src/locale/properties/record/record.zh_TW.properties @@ -21,7 +21,7 @@ record.pleaseReport=請向您所在的網站或服務報告這個損毀的連結 record.unidentifiedOrganization=未識別的組織 record.identifyAS=識別為: selfService.heading=ORCID 自助服務現正更新中 -selfService.p1.1=自 +selfService.p1.1=自 selfService.p1.2=2022 年 6 月 1 日起, selfService.p1.3=使用者即無法從 ORCID 名錄使用自助服務。 selfService.p2.1=明年起,ORCID 會員入口網站將會接手提供更優質的 diff --git a/src/locale/properties/register/register.fr.properties b/src/locale/properties/register/register.fr.properties index be8146f904..97698a1a08 100644 --- a/src/locale/properties/register/register.fr.properties +++ b/src/locale/properties/register/register.fr.properties @@ -190,7 +190,7 @@ register.passwordAreValid=Vos mots de passe correspondent register.passwordAreNotValid=Vos mots de passe ne correspondent pas register.emailAreValid=Vos adresses e-mail correspondent register.emailAreNotValid=Vos adresses e-mail ne correspondent pas -register.Email=Email +register.Email=Email register.VisibilityParties=Parties de confiance register.emailPlaceholder=L'adresse e-mail que vous utilisez le plus register.roleJobTitle=Titre du poste diff --git a/src/locale/properties/register/register.it.properties b/src/locale/properties/register/register.it.properties index cfcfe9ce13..a1c8eba52d 100644 --- a/src/locale/properties/register/register.it.properties +++ b/src/locale/properties/register/register.it.properties @@ -203,7 +203,7 @@ register.departmentPlaceholder=Scuola, università o dipartimento register.rolePlaceholder=Il tuo ruolo o il tuo lavoro nell’organizzazione register.yearPlaceholder=Anno register.monthPlaceholder=Mese -register.clearOrganization=Cancella l’organizzazione +register.clearOrganization=Cancella l’organizzazione shared.skipThisStepWithoutAddingAnAffiliation=Salta questo passaggio senza aggiungere un’affiliazione register.isAssociatedWith=ha già un’affiliazione con register.anExisting=un tipo preesistente di diff --git a/src/locale/properties/register/register.pt.properties b/src/locale/properties/register/register.pt.properties index a4de38e1b4..569dc50b04 100644 --- a/src/locale/properties/register/register.pt.properties +++ b/src/locale/properties/register/register.pt.properties @@ -205,7 +205,7 @@ register.yearPlaceholder=Ano register.monthPlaceholder=Mês register.clearOrganization=Remover organização shared.skipThisStepWithoutAddingAnAffiliation=Ignorar este passo sem adicionar uma afiliação -register.isAssociatedWith=Já se encontra associado a +register.isAssociatedWith=Já se encontra associado a register.anExisting=existente. register.anUnclaimed=não reclamado. register.aDeactivated=desativado. diff --git a/src/locale/properties/register/register.zh_CN.properties b/src/locale/properties/register/register.zh_CN.properties index 91cfe9b2d1..09855a313f 100644 --- a/src/locale/properties/register/register.zh_CN.properties +++ b/src/locale/properties/register/register.zh_CN.properties @@ -112,7 +112,7 @@ register.passwordNumberV2=至少 1 个数字 register.passwordConfirmationMatchV2=密码不匹配 register.passwordRequirements=密码请求 register.passwordRequirements1=密码必须介于 -register.passwordRequirements2=8 +register.passwordRequirements2=8 register.passwordRequirements3=到 register.passwordRequirements4=256 个 register.passwordRequirements5=字符之间,并且区分大小写。 diff --git a/src/locale/properties/register/register.zh_TW.properties b/src/locale/properties/register/register.zh_TW.properties index 2be786af67..be521094ae 100644 --- a/src/locale/properties/register/register.zh_TW.properties +++ b/src/locale/properties/register/register.zh_TW.properties @@ -111,8 +111,8 @@ register.passwordSymbolV2=至少 1 個字母或符號 register.passwordNumberV2=至少 1 個數字 register.passwordConfirmationMatchV2=密碼不相符 register.passwordRequirements=密碼規定 -register.passwordRequirements1=密碼必須包含 -register.passwordRequirements2=8 至 +register.passwordRequirements1=密碼必須包含 +register.passwordRequirements2=8 至 register.passwordRequirements3=和 register.passwordRequirements4=256 個 register.passwordRequirements5=字元,且需區分大小寫。 diff --git a/src/locale/properties/shared/shared.ar.properties b/src/locale/properties/shared/shared.ar.properties index 384573cf16..458af95764 100644 --- a/src/locale/properties/shared/shared.ar.properties +++ b/src/locale/properties/shared/shared.ar.properties @@ -471,7 +471,7 @@ shared.employmentAriaLabel=الوظيفة shared.educationAriaLabel=التعليم shared.qualificationAriaLabel=المؤهل shared.distinctionAriaLabel=جائزة تميُّز -shared.invitedPositionAriaLabel=منصب بدعوة +shared.invitedPositionAriaLabel=منصب بدعوة shared.membershipAriaLabel=العضوية shared.serviceAriaLabel=الخدمة shared.fundingAriaLabel=التمويل @@ -540,7 +540,7 @@ shared.websiteExpandAriaLabel=توسيع المواقع الإلكترونية shared.personalIdsExpandAriaLabel=توسيع المعرّفات الشخصية shared.keywordsExpandAriaLabel=توسيع الكلمات الرئيسية shared.countriesExpandAriaLabel=توسيع البلاد -shared.countriesCollapseOtherName=طي الأسماء الأخرى +shared.countriesCollapseOtherName=طي الأسماء الأخرى shared.countriesExpandOtherNames=توسيع الأسماء الأخرى shared.researchResourcesSortAriaLabel=فرز موارد البحث الخاصة بك shared.researchResourcesExpandAriaLabel=توسيع قسم موارد البحث diff --git a/src/locale/properties/shared/shared.cs.properties b/src/locale/properties/shared/shared.cs.properties index 1e6ebe4c72..968dfc3dfd 100644 --- a/src/locale/properties/shared/shared.cs.properties +++ b/src/locale/properties/shared/shared.cs.properties @@ -457,7 +457,7 @@ shared.distinctionInvitedPositionExpandAriaLabel=Rozbalit oddíl Udělené pozic shared.membershipServiceExpandAriaLabel=Rozbalit oddíl Členství a služba shared.fundingServiceExpandAriaLabel=Rozbalit oddíl Financování shared.workServiceExpandAriaLabel=Rozbalit oddíl Práce -shared.peerReviewServiceExpandAriaLabel=Rozbalit oddíl Recenze +shared.peerReviewServiceExpandAriaLabel=Rozbalit oddíl Recenze shared.employmentCollapseAriaLabel=Sbalit oddíl Zaměstnání shared.educationQualificationCollapseAriaLabel=Sbalit oddíl Vzdělání a kvalifikace shared.distinctionInvitedPositionCollapseAriaLabel=Sbalit oddíl Udělené pozice a ocenění @@ -551,7 +551,7 @@ shared.researchResourceExpandAriaLabel=Rozbalit výzkumný zdroj shared.researchResourceCollapseAriaLabel=Sbalit výzkumný zdroj shared.peerReviewExpandAriaLabel=Rozbalit kontrolní činnost pro shared.peerReviewCollapseAriaLabel=Sbalit kontrolní činnost pro -shared.saveChangesTo=Uložit změny +shared.saveChangesTo=Uložit změny shared.cancelChangesAndClose=Zrušit změny a zavřít shared.setRelationShipAriaLabel=Nastavení vztahu shared.asAriaLabel=jako diff --git a/src/locale/properties/shared/shared.fr.properties b/src/locale/properties/shared/shared.fr.properties index d07ada09bb..4c2334f615 100644 --- a/src/locale/properties/shared/shared.fr.properties +++ b/src/locale/properties/shared/shared.fr.properties @@ -527,7 +527,7 @@ shared.dialogAriaLabeledByWork=Gérer la boîte de dialogue Travail shared.dialogAriaLabeledByWorkSearch=Gérer la boîte de dialogue Recherche de travail shared.dialogAriaLabeledByPeerReview=Gérer la boîte de dialogue évaluation par les pairs shared.dialogAriaLabeledByExternalIdentifier=Gérer la boîte de dialogue Identifiant externe -shared.dialogAriaLabeledByBibtex=Gérer la boîte de dialogue bibtex +shared.dialogAriaLabeledByBibtex=Gérer la boîte de dialogue bibtex shared.emailsCollapseAriaLabel=Réduire E-mails shared.hideEmailDetailsAriaLabel=Masquer les détails de l'e-mail shared.websiteCollapseAriaLabel=Réduire Site Internet et liens sociaux diff --git a/src/locale/properties/shared/shared.ja.properties b/src/locale/properties/shared/shared.ja.properties index bb4d97c7e7..c2dcc3d917 100644 --- a/src/locale/properties/shared/shared.ja.properties +++ b/src/locale/properties/shared/shared.ja.properties @@ -479,7 +479,7 @@ shared.worksAriaLabel=ワーク shared.workAriaLabel=ワーク shared.peerReviewAriaLabel=査読 shared.researchResourcesAriaLabel=研究リソース -shared.activityCollapseForAriaLabel=折りたたむ: +shared.activityCollapseForAriaLabel=折りたたむ: shared.activityExpandForAriaLabel=展開: shared.employmentAddAriaLabel=雇用を追加 shared.educationQualificationAddAriaLabel=教育と資格を追加 @@ -640,4 +640,4 @@ shared.professionalActivitiesSortSource=専門研究活動をソースでソー shared.worksSortSource=作品をソースでソート shared.showDetailsFor=詳細を表示: shared.hideDetailsFor=詳細を非表示: -shared.opensInNewTab= (新しいタブが開きます) +shared.opensInNewTab=(新しいタブが開きます) diff --git a/src/locale/properties/shared/shared.pt.properties b/src/locale/properties/shared/shared.pt.properties index d3aa3901a4..33b99ca021 100644 --- a/src/locale/properties/shared/shared.pt.properties +++ b/src/locale/properties/shared/shared.pt.properties @@ -471,7 +471,7 @@ shared.employmentAriaLabel=emprego shared.educationAriaLabel=educação shared.qualificationAriaLabel=qualificação shared.distinctionAriaLabel=distinção -shared.invitedPositionAriaLabel=cargo a convite +shared.invitedPositionAriaLabel=cargo a convite shared.membershipAriaLabel=adesão shared.serviceAriaLabel=serviço shared.fundingAriaLabel=financiamento diff --git a/src/locale/properties/side-bar/side-bar.de.properties b/src/locale/properties/side-bar/side-bar.de.properties index bee8ef3ccf..6da10e98ad 100644 --- a/src/locale/properties/side-bar/side-bar.de.properties +++ b/src/locale/properties/side-bar/side-bar.de.properties @@ -11,7 +11,7 @@ side-bar.invalidEmailFormat=Ungültiges Format für die E-Mail-Adresse side-bar.invalidEmailErrorMessage=Bitte geben Sie eine gültige E-Mail-Adresse ein, beispielsweise peter@institution.edu. side-bar.pleaseVerify=Bitte bestätigen Sie Ihre primäre E-Mail-Adresse! side-bar.pleaseVerifyWarning=Bitte verifizieren Sie Ihre E-Mail-Adressen -side-bar.verifyToAccessOrcidFeatures=Um Zugriff auf alle Bearbeitungsfunktionen von ORCID zu erhalten, müssen Sie mindestens eine E-Mail-Adresse verifizieren. Bis dahin können Sie nur +side-bar.verifyToAccessOrcidFeatures=Um Zugriff auf alle Bearbeitungsfunktionen von ORCID zu erhalten, müssen Sie mindestens eine E-Mail-Adresse verifizieren. Bis dahin können Sie nur side-bar.names=Namen side-bar.and=und side-bar.emailAddress=E-Mail-Adresse @@ -56,7 +56,7 @@ side-bar.addCountryOrLocation=Land oder Ort hinzufügen side-bar.addAnotherCountryOrLocation=Weiteres Land oder Ort hinzufügen side-bar.countriesOrLocationsDescription=Fügen Sie Ihrem ORCID-Eintrag Länder oder Orte hinzu, um hervorzuheben, wo Sie Ihre Forschung durchführen oder worauf sich Ihre Forschung konzentriert. Sie können beliebig viele Länder oder Orte hinzufügen. side-bar.emailNotifications=E-Mail-Benachrichtigungen -side-bar.whichVerifiedEmail=An welche verifizierte E-Mail-Adresse sollen wir Ihre ORCID-Benachrichtigungen senden? Sie können die Häufigkeit dieser Benachrichtigungs-E-Mails in +side-bar.whichVerifiedEmail=An welche verifizierte E-Mail-Adresse sollen wir Ihre ORCID-Benachrichtigungen senden? Sie können die Häufigkeit dieser Benachrichtigungs-E-Mails in side-bar.yourOrcidAccountSettings=den Einstellungen Ihres ORCID-Kontos ändern. side-bar.deleteTooltip=Sie können nicht die einzige E-Mail-Adresse in Ihrem Konto löschen side-bar.visibilityTooltip=Sichtbarkeit auf „Nur ich“ festgelegt diff --git a/src/locale/properties/side-bar/side-bar.ja.properties b/src/locale/properties/side-bar/side-bar.ja.properties index c9fcb6f970..872b5334b3 100644 --- a/src/locale/properties/side-bar/side-bar.ja.properties +++ b/src/locale/properties/side-bar/side-bar.ja.properties @@ -87,7 +87,7 @@ side-bar.ariaLabelPersonalIdCancel=変更をキャンセルしてその他の識 share.ariaLabelDelete=識別子を削除 share.ariaLabelIdentifier=識別子 side-bar.ariaLabelOtherIdsSupport=その他の識別子をORCIDレコードに追加する方法を確認 (新しいタブが開きます) -side-bar.ariaLabelUrl= (新しいタブが開きます) +side-bar.ariaLabelUrl=(新しいタブが開きます) side-bar.ariaLabelWebsiteSave=ウェブサイト&ソーシャルリンクの変更を保存 side-bar.ariaLabelWebsiteCancel=ウェブサイト&ソーシャルリンクの変更をキャンセル side-bar.ariaLabelWebsiteDelete=ウェブサイト&ソーシャルリンクを削除 diff --git a/src/locale/properties/signin/signin.es.properties b/src/locale/properties/signin/signin.es.properties index 967fbf5b40..6bd8216a32 100644 --- a/src/locale/properties/signin/signin.es.properties +++ b/src/locale/properties/signin/signin.es.properties @@ -24,7 +24,7 @@ ngOrcid.signin.invalidEmail=Utilice el formato ejemplo@email.com ngOrcid.signin.invalidUsername=Utilice el formato ejemplo@email.com o 0000-0001-2345-6789 ngOrcid.signin.requiredEmail=Se necesita un correo electrónico ngOrcid.signin.invalidPassword=Contraseña no válida -ngOrcid.signin.passwordTooLong=Las contraseñas deben tener 256 caracteres o menos. Por favor, +ngOrcid.signin.passwordTooLong=Las contraseñas deben tener 256 caracteres o menos. Por favor, ngOrcid.signin.needToReset=restablece tu contraseña ngOrcid.signin.toSignIn=para iniciar sesión. ngOrcid.signin.dontHaveOrcid=¿Aún no tiene un ORCID iD? diff --git a/src/locale/properties/signin/signin.fr.properties b/src/locale/properties/signin/signin.fr.properties index ae4f435617..f5e2dfbec5 100644 --- a/src/locale/properties/signin/signin.fr.properties +++ b/src/locale/properties/signin/signin.fr.properties @@ -15,7 +15,7 @@ ngOrcid.signin.username=Adresse email ou ID ORCID à 16 chiffres ngOrcid.signin.password=Mot de passe ngOrcid.signin.button=SE CONNECTER ngOrcid.signin.personalAccount=Compte personnel -ngOrcid.signin.institutionalAccount=Accès à travers votre institution +ngOrcid.signin.institutionalAccount=Accès à travers votre institution ngOrcid.signin.socialMedia=Connectez-vous avec un compte de réseau social ngOrcid.signin.google=Se connecter avec Google ngOrcid.signin.facebook=Se connecter avec Facebook diff --git a/src/locale/properties/signin/signin.ja.properties b/src/locale/properties/signin/signin.ja.properties index 6de26672e6..6aea15c322 100644 --- a/src/locale/properties/signin/signin.ja.properties +++ b/src/locale/properties/signin/signin.ja.properties @@ -80,7 +80,7 @@ ngOrcid.signin.theEmailAddress=このメールアドレス ngOrcid.signin.needToReactivateAccount=このメールアドレスでサインインする前に、アカウントを再有効化する必要があります。 ngOrcid.signin.cannotSignInToOrcid=レコードを申請するまで、このメールアドレスでORCIDにサインインすることはできません。 ngOrcid.signin.claimYourOrcidRecord=ORCIDレコードを申請 -ngOrcid.signin.orcidAccountHasBeenDeprecated=このORCIDアカウントは廃止されました。アクティブなアカウントはこちらです: +ngOrcid.signin.orcidAccountHasBeenDeprecated=このORCIDアカウントは廃止されました。アクティブなアカウントはこちらです: ngOrcid.signin.signInToActive=アクティブなORCIDアカウントにサインイン ngOrcid.signin.dontHaveYourOrcid=ORCID iDをお持ちではありませんか? ngOrcid.signin.forExample=例: joe@institution.edu または 0000-1234-5678-9101 diff --git a/src/locale/properties/signin/signin.pt.properties b/src/locale/properties/signin/signin.pt.properties index 3b8a064fab..8a185cb546 100644 --- a/src/locale/properties/signin/signin.pt.properties +++ b/src/locale/properties/signin/signin.pt.properties @@ -49,7 +49,7 @@ ngOrcid.signin.2fa.badRecoveryCode=Código de recuperação inválido ngOrcid.signin.2fa.badRecoveryCodeLength=Comprimento do código de recuperação inválido ngOrcid.signin.2fa.verificationCodeRequired=Um código de autenticação é necessário ngOrcid.signin.2fa.badVerificationCode=Código de autenticação inválido -ngOrcid.signin.2fa.badVerificationCodeLength=Comprimento do código de autenticação inválido  +ngOrcid.signin.2fa.badVerificationCodeLength=Comprimento do código de autenticação inválido ngOrcid.signin.2fa.contactSupport=Contactar suporte ngOrcid.signin.2fa.noDevice1=Não tem seu dispositivo? ngOrcid.signin.2fa.noDevice2=Digite um código de recuperação @@ -62,7 +62,7 @@ ngOrcid.signin.2fa.label=Código de autenticação de dois fatores ngOrcid.signin.2fa.recoveryCode=Código de recuperação ngOrcid.signin.unclaimedExists1=O registro ORCID existe mas não foi reivindicado. Gostaria de ngOrcid.signin.unclaimedExists2=reenviar o e-mail de reivindicação? -ngOrcid.signin.invalidUserType1= ORCID iD inválido, por favor +ngOrcid.signin.invalidUserType1=ORCID iD inválido, por favor ngOrcid.signin.invalidUserType2=entre em contato com a equipe de suporte ngOrcid.signin.contactSupport=contactar suporte ngOrcid.signin.signInToOrcid=Iniciar sessão no ORCID diff --git a/src/locale/properties/signin/signin.zh_CN.properties b/src/locale/properties/signin/signin.zh_CN.properties index 47125a630e..85fa0ce802 100644 --- a/src/locale/properties/signin/signin.zh_CN.properties +++ b/src/locale/properties/signin/signin.zh_CN.properties @@ -80,7 +80,7 @@ ngOrcid.signin.theEmailAddress=电子邮件地址 ngOrcid.signin.needToReactivateAccount=请先重新激活帐户,再使用此电子邮件地址登录。 ngOrcid.signin.cannotSignInToOrcid=请先获取当前记录,再使用此电子邮件地址登录 ORCID。 ngOrcid.signin.claimYourOrcidRecord=获取您的 ORCID 记录 -ngOrcid.signin.orcidAccountHasBeenDeprecated=当前 ORCID 帐户已被取代。正在使用的帐户是 +ngOrcid.signin.orcidAccountHasBeenDeprecated=当前 ORCID 帐户已被取代。正在使用的帐户是 ngOrcid.signin.signInToActive=登录使用中的 ORCID 帐户 ngOrcid.signin.dontHaveYourOrcid=还没有 ORCID iD 号? ngOrcid.signin.forExample=例如:joe@institution.edu 或 0000-1234-5678-9101 diff --git a/src/locale/properties/top-bar/top-bar.ar.properties b/src/locale/properties/top-bar/top-bar.ar.properties index 6a1383becb..d1691ec748 100644 --- a/src/locale/properties/top-bar/top-bar.ar.properties +++ b/src/locale/properties/top-bar/top-bar.ar.properties @@ -110,6 +110,6 @@ topBar.deprecatedRecordIsDuplicate=يعد السجل غير المستعمل ن topBar.findOutMoreAboutRemoving=تعرّف على المزيد من المعلومات المتعلقة بكيفية إزالة السجلات الإضافية أو المكررة في المعرّف المفتوح للباحثين والمساهمين "ORCID". topBar.recordOwnerNotHaveAdded=ربما لم يضف صاحب السجل معلومات إلى سجله، أو ربما تم تعيين رؤية العناصر في سجله للأطراف الموثوق بها أو له فقط. topBar.findOutVisibility=تعرّف على المزيد من المعلومات المتعلقة بإعدادات الرؤية في المعرّف المفتوح للباحثين والمساهمين "ORCID" -topBar.ariaLabelCopyOrcidId=انسخ رقم المعرّف الخاص بالمعرّف المفتوح للباحثين والمساهمين "ORCID" الخاص بك إلى الحافظة +topBar.ariaLabelCopyOrcidId=انسخ رقم المعرّف الخاص بالمعرّف المفتوح للباحثين والمساهمين "ORCID" الخاص بك إلى الحافظة topBar.ariaLabelViewPrintable=عرض نسخة قابلة للطباعة من سجل المعرّف المفتوح للباحثين والمساهمين "ORCID" الخاص بك (تفتح في نافذة جديدة) topBar.forTheLastInformation=للحصول على أحدث المعلومات. diff --git a/src/locale/properties/top-bar/top-bar.de.properties b/src/locale/properties/top-bar/top-bar.de.properties index a4fb29b11f..f0273bef84 100644 --- a/src/locale/properties/top-bar/top-bar.de.properties +++ b/src/locale/properties/top-bar/top-bar.de.properties @@ -102,14 +102,14 @@ topBar.copyId=iD kopieren topBar.printableRecord=Druckbarer Eintrag topBar.whenOrcidDeactivated=Wenn ein ORCID-Eintrag deaktiviert wird, werden alle Informationen im Eintrag gelöscht. Deaktivierte Einträge werden bei der Suche in der Datenbank nicht angezeigt. topBar.findOutReactivating=Erfahren Sie mehr über die Reaktivierung eines ORCID-Kontos -topBar.weLockRecords=Wir sperren Einträge, wenn sie gegen die Bestimmungen unserer +topBar.weLockRecords=Wir sperren Einträge, wenn sie gegen die Bestimmungen unserer topBar.termsOfService=Servicebedingungen verstoßen. -topBar.recordLockedInError=Wenn Sie der Meinung sind, dass dieser Eintrag irrtümlich gesperrt wurde, +topBar.recordLockedInError=Wenn Sie der Meinung sind, dass dieser Eintrag irrtümlich gesperrt wurde, topBar.contactOrcid=wenden Sie sich bitte an den ORCID-Support, um weitere Unterstützung zu erhalten. topBar.deprecatedRecordIsDuplicate=Ein veralteter Eintrag ist ein doppelter oder unerwünschter ORCID-Eintrag, der mit einem anderen Eintrag der gleichen Person zusammengeführt wurde. topBar.findOutMoreAboutRemoving=Erfahren Sie mehr über das Entfernen zusätzlicher oder doppelter ORCID-Einträge topBar.recordOwnerNotHaveAdded=Der Eigentümer des Eintrags hat möglicherweise keine Informationen zu seinem Eintrag hinzugefügt oder die Sichtbarkeit für Elemente in seinem Eintrag ist auf „Vertrauenswürdige Parteien“ oder „Nur ich“ eingestellt. topBar.findOutVisibility=Erfahren Sie mehr über die Sichtbarkeitseinstellungen in ORCID topBar.ariaLabelCopyOrcidId=Kopieren Sie Ihre ORCID iD in die Zwischenablage -topBar.ariaLabelViewPrintable=Sehen Sie sich eine druckbare Version Ihres ORCID-Eintrags an (wird in einem neuen Tab geöffnet), +topBar.ariaLabelViewPrintable=Sehen Sie sich eine druckbare Version Ihres ORCID-Eintrags an (wird in einem neuen Tab geöffnet), topBar.forTheLastInformation=um die neuesten Informationen zu erhalten. diff --git a/src/locale/properties/top-bar/top-bar.it.properties b/src/locale/properties/top-bar/top-bar.it.properties index 2e46bb389b..8d2a509333 100644 --- a/src/locale/properties/top-bar/top-bar.it.properties +++ b/src/locale/properties/top-bar/top-bar.it.properties @@ -9,11 +9,11 @@ topBar.addPublishedName=Aggiungi un nome pubblicato o di attribuzione topBar.addOtherName=Aggiungi un altro nome topBar.information=Informazioni su te stesso, interessi di ricerca e altri dettagli pertinenti che migliorano il tuo record ORCID. topBar.yourNames=I tuoi nomi -topBar.yourGivenAndFamilyNames=I tuoi nomi e cognomi. +topBar.yourGivenAndFamilyNames=I tuoi nomi e cognomi. topBar.orcidHasANumber=ORCID offre diverse opzioni per aggiungere e gestire i tuoi nomi. topBar.findOutMore=Scopri di più su come gestire i nomi nel tuo record ORCID topBar.givenNames=Nome -topBar.firstNameError=Inserisci il tuo primo nome +topBar.firstNameError=Inserisci il tuo primo nome topBar.invalidName=Caratteri o formato del nome non validi topBar.invalidBio=Caratteri o formato non valido topBar.familyNames=Cognomi diff --git a/src/locale/properties/works/works.ar.properties b/src/locale/properties/works/works.ar.properties index 6399cd61c4..808a505ba1 100644 --- a/src/locale/properties/works/works.ar.properties +++ b/src/locale/properties/works/works.ar.properties @@ -161,11 +161,11 @@ works.manageSimilarWorks=إدارة الأعمال المماثلة works.urlMaxLength=يجب أن يكون أقل من 2000 حرف works.more=المزيد works.noBibtexEntries=خطأ في تحليل Bibtex. لم يتم العثور على مدخلات Bibtex في الملف -works.addWorkToOrcid=أضف هذا العمل إلى سجلك على ORCID +works.addWorkToOrcid=أضف هذا العمل إلى سجلك على ORCID works.exportAsBibtex=صدّر هذا العمل بصيغة BibTeX -works.fullContributorList=لإظهار قائمة المشاركين كاملة +works.fullContributorList=لإظهار قائمة المشاركين كاملة works.or=أو -works.visitWorkSource=زيارة مصدر العمل +works.visitWorkSource=زيارة مصدر العمل works.fullCitation=لإظهار الاقتباس الكامل works.showing=إظهار الأول works.etAl=إت آل. diff --git a/src/locale/properties/works/works.de.properties b/src/locale/properties/works/works.de.properties index 5db68c0657..e73d9372a1 100644 --- a/src/locale/properties/works/works.de.properties +++ b/src/locale/properties/works/works.de.properties @@ -105,7 +105,7 @@ works.moreInformation=Weitere Informationen zum Import von BibTeX-Dateien in ORC works.chooseBibTex=Wählen Sie die zu importierende BibTeX-Datei works.retrievingWorkBibTex=Abrufen von Werke aus BibTeX works.foundInBibTex=Werke gefunden in BibTeX -works.importWorks=Importieren Sie Werke in Ihren Eintrag +works.importWorks=Importieren Sie Werke in Ihren Eintrag works.unableToImport=Import mit dieser Kennung nicht möglich. Bitte fügen Sie Werk mit einer anderen Option hinzu. works.bibtexImporterParsingError=Diese Datei kann nicht gelesen werden. Bitte überprüfen Sie die BibTeX-Formatierung und versuchen Sie es erneut. works.addFromPubMed=Werke - Fügen Sie Werke aus PubMed hinzu diff --git a/src/locale/properties/works/works.ru.properties b/src/locale/properties/works/works.ru.properties index 2546a1c4f2..a91a246575 100644 --- a/src/locale/properties/works/works.ru.properties +++ b/src/locale/properties/works/works.ru.properties @@ -190,7 +190,7 @@ works.resources=Ресурсы works.supervision=Руководство works.validation=Утверждение works.visualization=Визуализация -works.writingOriginalDraft=Написание — первоначальный проект +works.writingOriginalDraft=Написание — первоначальный проект works.writingReviewEditing=Написание — проверка и редактирование works.roleNotDuplicated=Роль не может повторяться works.pleaseSelectIdentifierType=Выберите тип идентификатора From 4e603ae1a43b2656bf1a34d28a26c420f6970624 Mon Sep 17 00:00:00 2001 From: github actions Date: Mon, 28 Oct 2024 15:54:38 +0000 Subject: [PATCH 03/17] v2.106.12 changelog update --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a1550e64ac..9f92ae7451 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## v2.106.12 - 2024-10-28 + +[Full Changelog](https://github.com/ORCID/orcid-angular/compare/v2.106.11...v2.106.12) + ## v2.106.11 - 2024-10-21 [Full Changelog](https://github.com/ORCID/orcid-angular/compare/v2.106.10...v2.106.11) From 68e17570d20ac19b15e7bde844c60ff433738c4f Mon Sep 17 00:00:00 2001 From: github actions Date: Wed, 30 Oct 2024 14:35:13 +0000 Subject: [PATCH 04/17] v2.107.0 changelog update --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 9f92ae7451..05f9b3d5f3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## v2.107.0 - 2024-10-30 + +[Full Changelog](https://github.com/ORCID/orcid-angular/compare/v2.106.12...v2.107.0) + ## v2.106.12 - 2024-10-28 [Full Changelog](https://github.com/ORCID/orcid-angular/compare/v2.106.11...v2.106.12) From a844d6c14211004598aad9ecdc4fb5e007f18ebd Mon Sep 17 00:00:00 2001 From: andrej romanov <50377758+auumgn@users.noreply.github.com> Date: Wed, 30 Oct 2024 16:50:09 +0200 Subject: [PATCH 05/17] add verification date cutoff (#2383) Co-authored-by: Angel Montenegro --- .../modal-email/modal-email.component.html | 12 ++++++++++-- .../side-bar/side-bar/side-bar.component.html | 12 ++++++++++-- src/app/constants.ts | 2 ++ .../verification-date-cutoff.pipe.spec.ts | 8 ++++++++ .../verification-date-cutoff.pipe.ts | 17 +++++++++++++++++ src/app/shared/shared.module.ts | 3 +++ 6 files changed, 50 insertions(+), 4 deletions(-) create mode 100644 src/app/shared/pipes/verification-date-cutoff-pipe/verification-date-cutoff.pipe.spec.ts create mode 100644 src/app/shared/pipes/verification-date-cutoff-pipe/verification-date-cutoff.pipe.ts diff --git a/src/app/cdk/side-bar/modals/modal-email/modal-email.component.html b/src/app/cdk/side-bar/modals/modal-email/modal-email.component.html index 8e10b020d4..025cd43935 100644 --- a/src/app/cdk/side-bar/modals/modal-email/modal-email.component.html +++ b/src/app/cdk/side-bar/modals/modal-email/modal-email.component.html @@ -134,7 +134,11 @@

: email.sourceName || email.source " [isEmailOrDomain]="true" - [date]="email.verificationDate | monthDayYearDateToString" + [date]=" + email.verificationDate + | monthDayYearDateToString + | verificationDateCutoff + " [isLastItem]="true" > @@ -312,7 +316,11 @@

class="orc-font-small-print" [name]="orcidEmailValidation" [isEmailOrDomain]="true" - [date]="domain.createdDate | monthDayYearDateToString" + [date]=" + domain.createdDate + | monthDayYearDateToString + | verificationDateCutoff + " [isLastItem]="true" > diff --git a/src/app/cdk/side-bar/side-bar/side-bar.component.html b/src/app/cdk/side-bar/side-bar/side-bar.component.html index ec95bbbffd..c8d875f19c 100644 --- a/src/app/cdk/side-bar/side-bar/side-bar.component.html +++ b/src/app/cdk/side-bar/side-bar/side-bar.component.html @@ -147,7 +147,11 @@

: email.sourceName || email.source " [isEmailOrDomain]="true" - [date]="email.verificationDate | monthDayYearDateToString" + [date]=" + email.verificationDate + | monthDayYearDateToString + | verificationDateCutoff + " [isLastItem]="true" > @@ -187,7 +191,11 @@

*ngIf="emailsOpenState" [name]="orcidEmailValidation" [isEmailOrDomain]="true" - [date]="domain.createdDate | monthDayYearDateToString" + [date]=" + domain.createdDate + | monthDayYearDateToString + | verificationDateCutoff + " [isLastItem]="true" > diff --git a/src/app/constants.ts b/src/app/constants.ts index ac796d58f2..15522e070e 100644 --- a/src/app/constants.ts +++ b/src/app/constants.ts @@ -80,6 +80,8 @@ export const ITEM_ACTION_SELECT = 'select' export const ITEM_ACTION_EXPAND = 'expand' export const ITEM_ACTION_COLLAPSE = 'collapse' +export const VERIFICATION_DATE_CUTOFF = new Date('2024-10-28') + export const ApplicationRoutes = { myOrcid: 'my-orcid', twoFactor: '2fa-signin', diff --git a/src/app/shared/pipes/verification-date-cutoff-pipe/verification-date-cutoff.pipe.spec.ts b/src/app/shared/pipes/verification-date-cutoff-pipe/verification-date-cutoff.pipe.spec.ts new file mode 100644 index 0000000000..b078ffc3dd --- /dev/null +++ b/src/app/shared/pipes/verification-date-cutoff-pipe/verification-date-cutoff.pipe.spec.ts @@ -0,0 +1,8 @@ +import { VerificationDateCutoffPipe } from './verification-date-cutoff.pipe' + +describe('VerificationDateCutoffPipe', () => { + it('create an instance', () => { + const pipe = new VerificationDateCutoffPipe() + expect(pipe).toBeTruthy() + }) +}) diff --git a/src/app/shared/pipes/verification-date-cutoff-pipe/verification-date-cutoff.pipe.ts b/src/app/shared/pipes/verification-date-cutoff-pipe/verification-date-cutoff.pipe.ts new file mode 100644 index 0000000000..10fb407471 --- /dev/null +++ b/src/app/shared/pipes/verification-date-cutoff-pipe/verification-date-cutoff.pipe.ts @@ -0,0 +1,17 @@ +import { Pipe, PipeTransform } from '@angular/core' +import { VERIFICATION_DATE_CUTOFF } from 'src/app/constants' + +@Pipe({ + name: 'verificationDateCutoff', +}) +export class VerificationDateCutoffPipe implements PipeTransform { + transform(value: string): string | null { + if (typeof value === 'string') { + const date = new Date(value) + if (date >= VERIFICATION_DATE_CUTOFF) { + return value + } + } + return null + } +} diff --git a/src/app/shared/shared.module.ts b/src/app/shared/shared.module.ts index a2fffd9571..5807f3340b 100644 --- a/src/app/shared/shared.module.ts +++ b/src/app/shared/shared.module.ts @@ -50,6 +50,7 @@ import { AffiliationLabelPipe } from './pipes/affiliation-label.pipe' import { AffiliationTypePipe } from './pipes/affiliation-type/affiliation-type.pipe' import { ScopePathTypePipe } from './pipes/scope-path-type/scope-path-type.pipe' import { AppPanelsSortByAriaLabelPipe } from './pipes/app-panels-sort-by-aria-label/app-panels-sort-by-aria-label.pipe' +import { VerificationDateCutoffPipe } from './pipes/verification-date-cutoff-pipe/verification-date-cutoff.pipe' @NgModule({ imports: [ CommonModule, @@ -60,6 +61,7 @@ import { AppPanelsSortByAriaLabelPipe } from './pipes/app-panels-sort-by-aria-la ], declarations: [ MonthDayYearDateToStringPipe, + VerificationDateCutoffPipe, OfflineMessageComponent, CopyOnClickDirective, CopyOnClickComponent, @@ -107,6 +109,7 @@ import { AppPanelsSortByAriaLabelPipe } from './pipes/app-panels-sort-by-aria-la MatProgressSpinner, MatExpansionModule, MonthDayYearDateToStringPipe, + VerificationDateCutoffPipe, OfflineMessageComponent, MatPaginatorModule, CopyOnClickDirective, From e057f29d08ce417f09e69c470564641ad75143ca Mon Sep 17 00:00:00 2001 From: github actions Date: Wed, 30 Oct 2024 15:13:50 +0000 Subject: [PATCH 06/17] v2.107.1 changelog update --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 05f9b3d5f3..f5621425ec 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## v2.107.1 - 2024-10-30 + +[Full Changelog](https://github.com/ORCID/orcid-angular/compare/v2.107.0...v2.107.1) + ## v2.107.0 - 2024-10-30 [Full Changelog](https://github.com/ORCID/orcid-angular/compare/v2.106.12...v2.107.0) From 836362d29a0c71f67c49464c5eed0f25e36cd7b1 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 30 Oct 2024 12:02:22 -0600 Subject: [PATCH 07/17] Bump http-proxy-middleware from 2.0.6 to 2.0.7 (#2380) Bumps [http-proxy-middleware](https://github.com/chimurai/http-proxy-middleware) from 2.0.6 to 2.0.7. - [Release notes](https://github.com/chimurai/http-proxy-middleware/releases) - [Changelog](https://github.com/chimurai/http-proxy-middleware/blob/v2.0.7/CHANGELOG.md) - [Commits](https://github.com/chimurai/http-proxy-middleware/compare/v2.0.6...v2.0.7) --- updated-dependencies: - dependency-name: http-proxy-middleware dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Angel Montenegro --- yarn.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/yarn.lock b/yarn.lock index e60c20fcad..5d259bd8be 100644 --- a/yarn.lock +++ b/yarn.lock @@ -9850,9 +9850,9 @@ http-proxy-agent@^7.0.0: debug "^4.3.4" http-proxy-middleware@^2.0.3: - version "2.0.6" - resolved "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz" - integrity sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw== + version "2.0.7" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-2.0.7.tgz#915f236d92ae98ef48278a95dedf17e991936ec6" + integrity sha512-fgVY8AV7qU7z/MmXJ/rxwbrtQH4jBQ9m7kp3llF0liB7glmFeVZFBepQb32T3y8n8k2+AEYuMPCpinYW+/CuRA== dependencies: "@types/http-proxy" "^1.17.8" http-proxy "^1.18.1" From b800d34c0a2cdcb15d346c0914ed2867271e64db Mon Sep 17 00:00:00 2001 From: Leonardo Mendoza Fernadez Date: Mon, 4 Nov 2024 00:58:01 -0600 Subject: [PATCH 08/17] 9422-email-domains-interstitial-oauth --- guides/example-tx-config.yml | 8 + src/app/authorize/authorize.module.ts | 3 + .../form-authorize.component.ts | 24 ++- .../pages/authorize/authorize.component.html | 12 +- .../pages/authorize/authorize.component.ts | 61 ++++++- src/app/cdk/info-panel/info-panel.module.ts | 11 ++ .../info-panel/info-panel.component.html | 10 ++ .../info-panel/info-panel.component.scss | 16 ++ .../info-panel.component.scss-theme.scss | 23 +++ .../info-panel/info-panel.component.spec.ts | 21 +++ .../info-panel/info-panel.component.ts | 10 ++ .../cdk/interstitials/interstitials.module.ts | 32 ++++ .../share-emails-domains.component.html | 148 ++++++++++++++++ .../share-emails-domains.component.scss | 166 ++++++++++++++++++ ...e-emails-domains.component.scss-theme.scss | 24 +++ .../share-emails-domains.component.spec.ts | 21 +++ .../share-emails-domains.component.ts | 89 ++++++++++ .../cdk/platform-info/browserlist.regexp.ts | 3 +- src/assets/scss/material.light-theme.scss | 1 + src/assets/vectors/check-window.svg | 4 + src/assets/vectors/thumbs-up.svg | 3 + .../interstitials/interstitials.en.properties | 11 ++ .../interstitials/interstitials.lr.properties | 11 ++ .../interstitials/interstitials.rl.properties | 11 ++ .../interstitials/interstitials.xx.properties | 11 ++ 25 files changed, 720 insertions(+), 14 deletions(-) create mode 100644 src/app/cdk/info-panel/info-panel.module.ts create mode 100644 src/app/cdk/info-panel/info-panel/info-panel.component.html create mode 100644 src/app/cdk/info-panel/info-panel/info-panel.component.scss create mode 100644 src/app/cdk/info-panel/info-panel/info-panel.component.scss-theme.scss create mode 100644 src/app/cdk/info-panel/info-panel/info-panel.component.spec.ts create mode 100644 src/app/cdk/info-panel/info-panel/info-panel.component.ts create mode 100644 src/app/cdk/interstitials/interstitials.module.ts create mode 100644 src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.html create mode 100644 src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.scss create mode 100644 src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.scss-theme.scss create mode 100644 src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.spec.ts create mode 100644 src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.ts create mode 100644 src/assets/vectors/check-window.svg create mode 100644 src/assets/vectors/thumbs-up.svg create mode 100644 src/locale/properties/interstitials/interstitials.en.properties create mode 100644 src/locale/properties/interstitials/interstitials.lr.properties create mode 100644 src/locale/properties/interstitials/interstitials.rl.properties create mode 100644 src/locale/properties/interstitials/interstitials.xx.properties diff --git a/guides/example-tx-config.yml b/guides/example-tx-config.yml index 08ae2f0153..364de2ee18 100644 --- a/guides/example-tx-config.yml +++ b/guides/example-tx-config.yml @@ -192,3 +192,11 @@ filters: source_file: src/locale/properties/account/account.en.properties # path expression to translation files, must contain placeholder translation_files_expression: src/locale/properties/account/account..properties + + - filter_type: file + # all supported i18n types: https://docs.transifex.com/formats + file_format: UNICODEPROPERTIES + source_language: en + source_file: src/locale/properties/interstitials/interstitials.en.properties + # path expression to translation files, must contain placeholder + translation_files_expression: src/locale/properties/interstitials/interstitials..properties \ No newline at end of file diff --git a/src/app/authorize/authorize.module.ts b/src/app/authorize/authorize.module.ts index 0e7fdbfd1d..e5a8cd822e 100644 --- a/src/app/authorize/authorize.module.ts +++ b/src/app/authorize/authorize.module.ts @@ -15,6 +15,8 @@ import { AuthorizeRoutingModule } from './authorize-routing.module' import { OauthErrorComponent } from './components/oauth-error/oauth-error.component' import { AuthorizeComponent } from './pages/authorize/authorize.component' import { FormAuthorizeComponent } from './components/form-authorize/form-authorize.component' +import { ShareEmailsDomainsComponent } from '../cdk/interstitials/share-emails-domains/share-emails-domains.component' +import { InterstitialsModule } from '../cdk/interstitials/interstitials.module' @NgModule({ declarations: [ @@ -35,6 +37,7 @@ import { FormAuthorizeComponent } from './components/form-authorize/form-authori TrustedIndividualsDropdownModule, InfoDropDownModule, MatProgressBarModule, + InterstitialsModule ], }) export class AuthorizeModule {} diff --git a/src/app/authorize/components/form-authorize/form-authorize.component.ts b/src/app/authorize/components/form-authorize/form-authorize.component.ts index d2bd993dea..fb6c91e507 100644 --- a/src/app/authorize/components/form-authorize/form-authorize.component.ts +++ b/src/app/authorize/components/form-authorize/form-authorize.component.ts @@ -1,4 +1,12 @@ -import { Component, Inject, Input, OnDestroy, OnInit } from '@angular/core' +import { + Component, + EventEmitter, + Inject, + Input, + OnDestroy, + OnInit, + Output, +} from '@angular/core' import { Router } from '@angular/router' import { forkJoin, Observable, Subject } from 'rxjs' import { catchError, map, take, takeUntil } from 'rxjs/operators' @@ -31,6 +39,8 @@ import { Title } from '@angular/platform-browser' preserveWhitespaces: true, }) export class FormAuthorizeComponent implements OnInit, OnDestroy { + @Output() redirectUrl = new EventEmitter() + @Output() organizationName = new EventEmitter() environment = environment $destroy: Subject = new Subject() orcidUrl: string @@ -57,7 +67,9 @@ export class FormAuthorizeComponent implements OnInit, OnDestroy { private _errorHandler: ErrorHandlerService, private _trustedIndividuals: TrustedIndividualsService, private _titleService: Title - ) { + ) {} + + ngOnInit(): void { this._platformInfo .get() .pipe(take(1)) @@ -73,6 +85,8 @@ export class FormAuthorizeComponent implements OnInit, OnDestroy { this.loadingUserInfo = false this.loadingTrustedIndividuals = false this.oauthRequest = userInfo.oauthSession + this.organizationName.emit(this.oauthRequest.clientName) + console.log('this ', this.oauthRequest.clientName) if (userInfo.loggedIn) { this.userName = userInfo.displayName this.orcidUrl = userInfo.effectiveOrcidUrl @@ -92,9 +106,7 @@ export class FormAuthorizeComponent implements OnInit, OnDestroy { this._trustedIndividuals.getTrustedIndividuals().subscribe((value) => { this.trustedIndividuals = value }) - } - ngOnInit(): void { setTimeout(() => { this._titleService.setTitle( this.authorizeAccessFor + @@ -141,8 +153,8 @@ export class FormAuthorizeComponent implements OnInit, OnDestroy { ) ) .subscribe( - () => (this.window as any).outOfRouterNavigation(data.redirectUrl), - () => (this.window as any).outOfRouterNavigation(data.redirectUrl) + () => this.redirectUrl.next(data.redirectUrl), + () => this.redirectUrl.next(data.redirectUrl) ) }) } diff --git a/src/app/authorize/pages/authorize/authorize.component.html b/src/app/authorize/pages/authorize/authorize.component.html index 637f26207a..902b309ebc 100644 --- a/src/app/authorize/pages/authorize/authorize.component.html +++ b/src/app/authorize/pages/authorize/authorize.component.html @@ -10,10 +10,16 @@ > - + + diff --git a/src/app/authorize/pages/authorize/authorize.component.ts b/src/app/authorize/pages/authorize/authorize.component.ts index 13d3c641ee..3331d2ded5 100644 --- a/src/app/authorize/pages/authorize/authorize.component.ts +++ b/src/app/authorize/pages/authorize/authorize.component.ts @@ -1,6 +1,12 @@ -import { Component } from '@angular/core' +import { Component, Inject } from '@angular/core' +import { cloneDeep } from 'lodash' +import { first, tap } from 'rxjs/operators' import { PlatformInfo, PlatformInfoService } from 'src/app/cdk/platform-info' +import { WINDOW } from 'src/app/cdk/window' import { UserService } from 'src/app/core' +import { RecordEmailsService } from 'src/app/core/record-emails/record-emails.service' +import { TogglzService } from 'src/app/core/togglz/togglz.service' +import { AssertionVisibilityString, EmailsEndpoint } from 'src/app/types' @Component({ templateUrl: './authorize.component.html', @@ -8,13 +14,27 @@ import { UserService } from 'src/app/core' preserveWhitespaces: true, }) export class AuthorizeComponent { + redirectUrl: string + platform: PlatformInfo showAuthorizationComponent: boolean + showAuthorizationError: boolean + showInterstital: boolean + originalEmailsBackendCopy: EmailsEndpoint + userHasPrivateDomains = false + oauthDomainsInterstitialEnabled: boolean + organizationName: string - constructor(_user: UserService, private _platformInfo: PlatformInfoService) { + constructor( + _user: UserService, + private _platformInfo: PlatformInfoService, + private _recordEmails: RecordEmailsService, + private _togglz: TogglzService, + @Inject(WINDOW) private window: Window + ) { _user.getUserSession().subscribe((session) => { if (session.oauthSession && session.oauthSession.error) { - this.showAuthorizationComponent = false + this.showAuthorizationError = true } else { this.showAuthorizationComponent = true } @@ -23,4 +43,39 @@ export class AuthorizeComponent { this.platform = platformInfo }) } + + ngOnInit() { + this._togglz.getStateOf('OAUTH_DOMAINS_INTERSTITIAL').subscribe((value) => { + this.oauthDomainsInterstitialEnabled = value + }) + this._recordEmails + .getEmails() + .pipe( + tap((value) => { + this.originalEmailsBackendCopy = cloneDeep(value) + this.userHasPrivateDomains = this.userHasPrivateEmails(value) + }), + first() + ) + .subscribe() + } + + userHasPrivateEmails(value: EmailsEndpoint): boolean { + return !!value.emailDomains.find( + (domain) => domain.visibility !== 'PUBLIC' + ) + } + + handleRedirect(url: string) { + if (url && this.userHasPrivateDomains && this.oauthDomainsInterstitialEnabled) { + this.redirectUrl = url + this.showAuthorizationComponent = false + this.showInterstital = true + } else { + this.finishRedirect() + } + } + finishRedirect() { + ;(this.window as any).outOfRouterNavigation(this.redirectUrl) + } } diff --git a/src/app/cdk/info-panel/info-panel.module.ts b/src/app/cdk/info-panel/info-panel.module.ts new file mode 100644 index 0000000000..5cad734f18 --- /dev/null +++ b/src/app/cdk/info-panel/info-panel.module.ts @@ -0,0 +1,11 @@ +import { NgModule } from '@angular/core' +import { CommonModule } from '@angular/common' +import { InfoPanelComponent } from './info-panel/info-panel.component' +import { MatIcon, MatIconModule } from '@angular/material/icon' + +@NgModule({ + declarations: [InfoPanelComponent], + imports: [CommonModule, MatIconModule], + exports: [InfoPanelComponent], +}) +export class InfoPanelModule {} diff --git a/src/app/cdk/info-panel/info-panel/info-panel.component.html b/src/app/cdk/info-panel/info-panel/info-panel.component.html new file mode 100644 index 0000000000..c97407012a --- /dev/null +++ b/src/app/cdk/info-panel/info-panel/info-panel.component.html @@ -0,0 +1,10 @@ +
+
+ +
+
+

+ +

+
+
diff --git a/src/app/cdk/info-panel/info-panel/info-panel.component.scss b/src/app/cdk/info-panel/info-panel/info-panel.component.scss new file mode 100644 index 0000000000..a846418b5e --- /dev/null +++ b/src/app/cdk/info-panel/info-panel/info-panel.component.scss @@ -0,0 +1,16 @@ +.info { + padding: 16px; + margin-top: 16px; + margin-bottom: 16px; + border: solid 2px; + border-radius: 4px; + display: flex; + + p { + margin: 0; + } + .col { + align-items: start; + padding-left: 0; + } +} diff --git a/src/app/cdk/info-panel/info-panel/info-panel.component.scss-theme.scss b/src/app/cdk/info-panel/info-panel/info-panel.component.scss-theme.scss new file mode 100644 index 0000000000..6a0e1f4b00 --- /dev/null +++ b/src/app/cdk/info-panel/info-panel/info-panel.component.scss-theme.scss @@ -0,0 +1,23 @@ +@use '@angular/material' as mat; +@import 'src/assets/scss/material.orcid-theme.scss'; + +@mixin theme($theme) { + $primary: map-get($theme, primary); + $accent: map-get($theme, accent); + $warn: map-get($theme, accent); + $foreground: map-get($theme, foreground); + $background: map-get($theme, background); + + .info { + border-color: mat.get-color-from-palette( + $foreground, + 'state-info-darkest' + ) !important; + background-color: mat.get-color-from-palette( + $background, + 'state-info-lightest' + ) !important; + } +} + +@include theme($orcid-app-theme); diff --git a/src/app/cdk/info-panel/info-panel/info-panel.component.spec.ts b/src/app/cdk/info-panel/info-panel/info-panel.component.spec.ts new file mode 100644 index 0000000000..1cfc9e2436 --- /dev/null +++ b/src/app/cdk/info-panel/info-panel/info-panel.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { InfoPanelComponent } from './info-panel.component'; + +describe('InfoPanelComponent', () => { + let component: InfoPanelComponent; + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [InfoPanelComponent] + }); + fixture = TestBed.createComponent(InfoPanelComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/cdk/info-panel/info-panel/info-panel.component.ts b/src/app/cdk/info-panel/info-panel/info-panel.component.ts new file mode 100644 index 0000000000..cff766a000 --- /dev/null +++ b/src/app/cdk/info-panel/info-panel/info-panel.component.ts @@ -0,0 +1,10 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-info-panel', + templateUrl: './info-panel.component.html', + styleUrls: ['./info-panel.component.scss', './info-panel.component.scss-theme.scss'] +}) +export class InfoPanelComponent { + +} diff --git a/src/app/cdk/interstitials/interstitials.module.ts b/src/app/cdk/interstitials/interstitials.module.ts new file mode 100644 index 0000000000..72dc6cf736 --- /dev/null +++ b/src/app/cdk/interstitials/interstitials.module.ts @@ -0,0 +1,32 @@ +import { NgModule } from '@angular/core' +import { CommonModule } from '@angular/common' +import { ShareEmailsDomainsComponent } from './share-emails-domains/share-emails-domains.component' +import { MatLegacyCardModule } from '@angular/material/legacy-card' +import { MatIconModule } from '@angular/material/icon' +import { MatDividerModule } from '@angular/material/divider' +import { InfoDropDownModule } from '../info-drop-down/info-drop-down.module' +import { MatProgressBarModule } from '@angular/material/progress-bar' +import { FormsModule, ReactiveFormsModule } from '@angular/forms' +import { MatCheckboxModule } from '@angular/material/checkbox' +import { MatLegacyCheckboxModule } from '@angular/material/legacy-checkbox' +import { MatLegacyButtonModule as MatButtonModule } from '@angular/material/legacy-button' +import { InfoPanelModule } from '../info-panel/info-panel.module' + +@NgModule({ + declarations: [ShareEmailsDomainsComponent], + imports: [ + CommonModule, + MatLegacyCardModule, + MatIconModule, + MatDividerModule, + InfoDropDownModule, + MatProgressBarModule, + ReactiveFormsModule, + FormsModule, + MatLegacyCheckboxModule, + MatButtonModule, + InfoPanelModule, + ], + exports: [ShareEmailsDomainsComponent], +}) +export class InterstitialsModule {} diff --git a/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.html b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.html new file mode 100644 index 0000000000..8019bf20e4 --- /dev/null +++ b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.html @@ -0,0 +1,148 @@ + + + + orcid logo + +

+ Share your verified email domains +

+
+
+ + +
+ We’ve found some unshared email domains in your ORCID record. +
+ +

+ Sharing your email domains lets you prove your association with an + organization or institution without having to make your full email + address public. +

+
+
+

+ Your verified email domains +

+
+ +
+ Uncheck any email domains you don’t want to share on your public ORCID + record +
+ +
+
+
+ +
+ + {{ item.get('email').value }} + + +
+
+
+
+ + + +
+ + + + + +
+ + + + orcid logo + +

+ Email domains shared +

+
+
+ +
+ The following email domains are now visible on your public ORCID record. +
+ + +
+
+ + {{ + domain + }} +
+ + +
+ +
+ Visit your ORCID record to manage your email addresses, domains, + affiliations, works and more. +
+ + + + +
+ + + + + +
diff --git a/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.scss b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.scss new file mode 100644 index 0000000000..e02db7e345 --- /dev/null +++ b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.scss @@ -0,0 +1,166 @@ +@import '../../../../assets/scss/orcid.spacing.scss'; + + +h2 { + margin-top: 16px; + margin-bottom: 16px; + +} +.published-email-container{ + display: flex; + align-items: center; +} + +.published-domain { + margin-inline-start: 16px; +} + +.items { + margin-top: 24px; +} + +.logo { + width: 130px; +} + +.user-links { + display: flex; + justify-content: space-between; +} + +.university-dropdown { + display: flex; + align-items: center; + cursor: pointer; +} + +:host { + ul { + padding: 0; + + li { + list-style-type: none; + flex-direction: column; + align-items: baseline; + + div { + display: flex; + align-items: center; + mat-icon { + margin-bottom: -4px; // Compensates mat icon bottom with space + margin-left: $spacing-small; + margin-right: $spacing-small; + } + } + } + } +} + +button { + width: 100%; + margin-bottom: $spacing-base; +} +mat-divider { + margin-top: 16px; + margin-bottom: 16px; +} + + +mat-divider.last { + margin-top: 32px; + margin-bottom: 32px; +} + +mat-icon > img { + height: 20px; + margin-top: 2px; // Fix icon component with SVG image +} + +.col { + overflow: hidden; +} + +app-info-drop-down { + max-width: 100%; + display: block; +} + +.progress-bar { + top: 0; +} + +mat-card-header.authorize-header { + mat-card-title { + margin: 0 0 32px 0 !important; + } + + h1 { + margin-top: 0; + } + + .orc-font-heading-small { + font-style: normal; + font-weight: 500; + } + + mat-icon.logo-icon { + height: 80px; + width: 64px; + img { + height: 64px; + } + } +} + +mat-card-content.authorize-content { + margin: 0px !important; + + div.profile-icon-wrapper { + padding: 0 !important; + margin-right: 16px; + } + + div.user-wrapper { + padding: 0 !important; + } + + div.deny-button-wrapper { + justify-content: center; + } + + mat-icon.profile-icon { + height: 80px; + width: 64px; + img { + height: 64px; + } + } + + mat-icon.scope { + width: 32px; + } + + mat-icon.scope.orcid { + font-size: small; + img { + margin-top: 0 !important; + } + } + + .user-links { + width: 100%; + } + + .center-content { + justify-content: center; + } +} + +.disclaimer-box { + margin: 24px 0px 20px 0px; + display: flex; + flex-direction: column; + :first-child { + margin-bottom: 12px; + } +} diff --git a/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.scss-theme.scss b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.scss-theme.scss new file mode 100644 index 0000000000..150c755f1b --- /dev/null +++ b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.scss-theme.scss @@ -0,0 +1,24 @@ +@use '@angular/material' as mat; +@import 'src/assets/scss/material.orcid-theme.scss'; + +@mixin theme($theme) { + $primary: map-get($theme, primary); + $accent: map-get($theme, accent); + $warn: map-get($theme, accent); + $foreground: map-get($theme, foreground); + $background: map-get($theme, background); + + .mat-raised-button.mat-primary { + background-color: mat.get-color-from-palette($primary, 700); + } + + ::ng-deep{ + .mat-divider.green-divider { + border: solid 1px mat.get-color-from-palette($foreground, brand-primary); + } + } +} + + + +@include theme($orcid-app-theme); diff --git a/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.spec.ts b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.spec.ts new file mode 100644 index 0000000000..edd68aba7d --- /dev/null +++ b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.spec.ts @@ -0,0 +1,21 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { ShareEmailsDomainsComponent } from './share-emails-domains.component'; + +describe('ShareEmailsDomainsComponent', () => { + let component: ShareEmailsDomainsComponent; + let fixture: ComponentFixture; + + beforeEach(() => { + TestBed.configureTestingModule({ + declarations: [ShareEmailsDomainsComponent] + }); + fixture = TestBed.createComponent(ShareEmailsDomainsComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.ts b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.ts new file mode 100644 index 0000000000..0c5e8fac76 --- /dev/null +++ b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.ts @@ -0,0 +1,89 @@ +import { Component, EventEmitter, Input, Output } from '@angular/core' +import { PlatformInfoService } from '../../platform-info' +import { AssertionVisibilityString, EmailsEndpoint } from 'src/app/types' +import { FormBuilder, FormControl, FormGroup } from '@angular/forms' +import { RecordEmailsService } from 'src/app/core/record-emails/record-emails.service' +import { error } from 'console' + +@Component({ + selector: 'app-share-emails-domains', + templateUrl: './share-emails-domains.component.html', + styleUrls: [ + './share-emails-domains.component.scss', + './share-emails-domains.component.scss-theme.scss', + ], +}) +export class ShareEmailsDomainsComponent { + beforeSummit = true + afterSummit = false + userPrivateDomains: AssertionVisibilityString[] + @Input() userEmailsJson: EmailsEndpoint + @Input() organizationName: string + form: any + domainToMakePublic: string[] + constructor( + public platformInfo: PlatformInfoService, + private fb: FormBuilder, + private recordEmailsService: RecordEmailsService + ) {} + public loadingEmails = true + @Output() finish = new EventEmitter() + + ngOnInit() { + console.log(this.organizationName) + this.userPrivateDomains = this.getTop3MostRecentPrivateDomains( + this.userEmailsJson + ) + this.form = this.fb.group({ + items: this.fb.array( + this.userPrivateDomains.map((item) => this.createItemFormGroup(item)) + ), + }) + } + + getTop3MostRecentPrivateDomains( + value: EmailsEndpoint + ): AssertionVisibilityString[] { + return value.emailDomains + .filter((domain) => domain.visibility !== 'PUBLIC') + .sort((a, b) => { + return b.createdDate.timestamp - a.createdDate.timestamp + }) + .slice(0, 3) + } + + createItemFormGroup(item: AssertionVisibilityString): FormGroup { + return this.fb.group({ + email: new FormControl(item.value), + selected: new FormControl(true), + }) + } + + accept(answear: boolean) { + this.domainToMakePublic = this.form.value.items + .filter((item) => item.selected) + .map((item) => item.email) + + + if (answear && this.domainToMakePublic.length > 0) { + this.userEmailsJson.emailDomains.forEach((domain) => { + if (this.domainToMakePublic.includes(domain.value)) { + domain.visibility = 'PUBLIC' + } + }) + + this.recordEmailsService.postEmails(this.userEmailsJson).subscribe( + (response) => { + this.afterSummit = true + this.beforeSummit = false + setTimeout(() => { + this.finish.emit() + }, 10000) + }, + (error) => this.finish.emit() + ) + } else { + this.finish.emit() + } + } +} diff --git a/src/app/cdk/platform-info/browserlist.regexp.ts b/src/app/cdk/platform-info/browserlist.regexp.ts index 545a90290e..bf8c4aa5cf 100644 --- a/src/app/cdk/platform-info/browserlist.regexp.ts +++ b/src/app/cdk/platform-info/browserlist.regexp.ts @@ -1,3 +1,2 @@ // tslint:disable-next-line: max-line-length -export const BROWSERLIST_REGEXP = - /((CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS)[ +]+(13[_.]4|13[_.]([5-9]|\d{2,})|13[_.]7|13[_.]([8-9]|\d{2,})|(1[4-9]|[2-9]\d|\d{3,})[_.]\d+|14[_.]0|14[_.]([1-9]|\d{2,})|14[_.]4|14[_.]([5-9]|\d{2,})|14[_.]8|14[_.](9|\d{2,})|(1[5-9]|[2-9]\d|\d{3,})[_.]\d+|15[_.]0|15[_.]([1-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})[_.]\d+|16[_.]0|16[_.]([1-9]|\d{2,})|(1[7-9]|[2-9]\d|\d{3,})[_.]\d+|17[_.]0|17[_.]([1-9]|\d{2,})|(1[8-9]|[2-9]\d|\d{3,})[_.]\d+)(?:[_.]\d+)?)|((?:Chrome).*OPR\/(74|(7[5-9]|[8-9]\d|\d{3,}))\.\d+\.\d+)|(Edge\/(80|(8[1-9]|9\d|\d{3,})|83|(8[4-9]|9\d|\d{3,}))(?:\.\d+)?)|((Chromium|Chrome)\/(80|(8[1-9]|9\d|\d{3,})|83|(8[4-9]|9\d|\d{3,}))\.\d+(?:\.\d+)?)|(Version\/(13\.1|13\.([2-9]|\d{2,})|(1[4-9]|[2-9]\d|\d{3,})\.\d+|14\.0|14\.([1-9]|\d{2,})|(1[5-9]|[2-9]\d|\d{3,})\.\d+|15\.0|15\.([1-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+|16\.0|16\.([1-9]|\d{2,})|(1[7-9]|[2-9]\d|\d{3,})\.\d+|17\.0|17\.([1-9]|\d{2,})|(1[8-9]|[2-9]\d|\d{3,})\.\d+)(?:\.\d+)? Safari\/)|(Firefox\/(78|(79|[8-9]\d|\d{3,}))\.\d+\.\d+)|(Firefox\/(78|(79|[8-9]\d|\d{3,}))\.\d+(pre|[ab]\d+[a-z]*)?)/ +export const BROWSERLIST_REGEXP = /((CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS)[ +]+(13[_.]4|13[_.]([5-9]|\d{2,})|13[_.]7|13[_.]([8-9]|\d{2,})|(1[4-9]|[2-9]\d|\d{3,})[_.]\d+|14[_.]0|14[_.]([1-9]|\d{2,})|14[_.]4|14[_.]([5-9]|\d{2,})|14[_.]8|14[_.](9|\d{2,})|(1[5-9]|[2-9]\d|\d{3,})[_.]\d+|15[_.]0|15[_.]([1-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})[_.]\d+|16[_.]0|16[_.]([1-9]|\d{2,})|(1[7-9]|[2-9]\d|\d{3,})[_.]\d+|17[_.]0|17[_.]([1-9]|\d{2,})|(1[8-9]|[2-9]\d|\d{3,})[_.]\d+)(?:[_.]\d+)?)|((?:Chrome).*OPR\/(74|(7[5-9]|[8-9]\d|\d{3,}))\.\d+\.\d+)|(Edge\/(80|(8[1-9]|9\d|\d{3,})|83|(8[4-9]|9\d|\d{3,}))(?:\.\d+)?)|((Chromium|Chrome)\/(80|(8[1-9]|9\d|\d{3,})|83|(8[4-9]|9\d|\d{3,}))\.\d+(?:\.\d+)?)|(Version\/(13\.1|13\.([2-9]|\d{2,})|(1[4-9]|[2-9]\d|\d{3,})\.\d+|14\.0|14\.([1-9]|\d{2,})|(1[5-9]|[2-9]\d|\d{3,})\.\d+|15\.0|15\.([1-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+|16\.0|16\.([1-9]|\d{2,})|(1[7-9]|[2-9]\d|\d{3,})\.\d+|17\.0|17\.([1-9]|\d{2,})|(1[8-9]|[2-9]\d|\d{3,})\.\d+)(?:\.\d+)? Safari\/)|(Firefox\/(78|(79|[8-9]\d|\d{3,}))\.\d+\.\d+)|(Firefox\/(78|(79|[8-9]\d|\d{3,}))\.\d+(pre|[ab]\d+[a-z]*)?)/ diff --git a/src/assets/scss/material.light-theme.scss b/src/assets/scss/material.light-theme.scss index e5c9412da9..0c406c3e12 100644 --- a/src/assets/scss/material.light-theme.scss +++ b/src/assets/scss/material.light-theme.scss @@ -55,6 +55,7 @@ state-notice-light: $state-notice-light, state-notice-dark: $state-notice-dark, state-notice-darkest: $state-notice-darkest, + state-info-darkest: $state-info-darkest, state-warning-dark: $state-warning-dark, state-info-dark: $state-info-dark, text-dark-mid: $text-dark-mid, diff --git a/src/assets/vectors/check-window.svg b/src/assets/vectors/check-window.svg new file mode 100644 index 0000000000..f786d3562b --- /dev/null +++ b/src/assets/vectors/check-window.svg @@ -0,0 +1,4 @@ + + + + diff --git a/src/assets/vectors/thumbs-up.svg b/src/assets/vectors/thumbs-up.svg new file mode 100644 index 0000000000..240c45c88a --- /dev/null +++ b/src/assets/vectors/thumbs-up.svg @@ -0,0 +1,3 @@ + + + diff --git a/src/locale/properties/interstitials/interstitials.en.properties b/src/locale/properties/interstitials/interstitials.en.properties new file mode 100644 index 0000000000..288fd383e2 --- /dev/null +++ b/src/locale/properties/interstitials/interstitials.en.properties @@ -0,0 +1,11 @@ +interstitial.continueTo=Continue to +interstitial.visitYourOrcidRecord=Visit your ORCID record to manage your email addresses, domains, affiliations, works and more. +interstitial.theFollowingEmailDomains=The following email domains are now visible on your public ORCID record. +interstitial.emailDomainsShared=Email domains shared +interstitial.continueWithoutMakingDomainsPublic=Continue without making domains public +interstitial.makeSelectedDomainsPublic=Make selected domains public +interstitial.uncheckedAnyEmail=Uncheck any email domains you don’t want to share on your public ORCID record +interstitial.yourVerifiedEmailDomains=Your verified email domains +interstitial.sharingYourEmailDomains=Sharing your email domains lets you prove your association with an organization or institution without having to make your full email address public. +interstitial.weFoundSomeUnshared=We’ve found some unshared email domains in your ORCID record. +interstitial.shareYourVerified=Share your verified email domains diff --git a/src/locale/properties/interstitials/interstitials.lr.properties b/src/locale/properties/interstitials/interstitials.lr.properties new file mode 100644 index 0000000000..653dd4c52e --- /dev/null +++ b/src/locale/properties/interstitials/interstitials.lr.properties @@ -0,0 +1,11 @@ +interstitial.continueTo=LR +interstitial.visitYourOrcidRecord=LR +interstitial.theFollowingEmailDomains=LR +interstitial.emailDomainsShared=LR +interstitial.continueWithoutMakingDomainsPublic=LR +interstitial.makeSelectedDomainsPublic=LR +interstitial.uncheckedAnyEmail=LR +interstitial.yourVerifiedEmailDomains=LR +interstitial.sharingYourEmailDomains=LR +interstitial.weFoundSomeUnshared=LR +interstitial.shareYourVerified=LR diff --git a/src/locale/properties/interstitials/interstitials.rl.properties b/src/locale/properties/interstitials/interstitials.rl.properties new file mode 100644 index 0000000000..30438a909f --- /dev/null +++ b/src/locale/properties/interstitials/interstitials.rl.properties @@ -0,0 +1,11 @@ +interstitial.continueTo=RL +interstitial.visitYourOrcidRecord=RL +interstitial.theFollowingEmailDomains=RL +interstitial.emailDomainsShared=RL +interstitial.continueWithoutMakingDomainsPublic=RL +interstitial.makeSelectedDomainsPublic=RL +interstitial.uncheckedAnyEmail=RL +interstitial.yourVerifiedEmailDomains=RL +interstitial.sharingYourEmailDomains=RL +interstitial.weFoundSomeUnshared=RL +interstitial.shareYourVerified=RL diff --git a/src/locale/properties/interstitials/interstitials.xx.properties b/src/locale/properties/interstitials/interstitials.xx.properties new file mode 100644 index 0000000000..e5b3788cb3 --- /dev/null +++ b/src/locale/properties/interstitials/interstitials.xx.properties @@ -0,0 +1,11 @@ +interstitial.continueTo=X +interstitial.visitYourOrcidRecord=X +interstitial.theFollowingEmailDomains=X +interstitial.emailDomainsShared=X +interstitial.continueWithoutMakingDomainsPublic=X +interstitial.makeSelectedDomainsPublic=X +interstitial.uncheckedAnyEmail=X +interstitial.yourVerifiedEmailDomains=X +interstitial.sharingYourEmailDomains=X +interstitial.weFoundSomeUnshared=X +interstitial.shareYourVerified=X From 2503b5391463a731d924b576524bd4ae58cbcf17 Mon Sep 17 00:00:00 2001 From: Leonardo Mendoza Fernadez Date: Mon, 4 Nov 2024 01:07:54 -0600 Subject: [PATCH 09/17] 9422-email-domains-interstitial-oauth --- .../pages/authorize/authorize.component.ts | 21 +++++---- .../share-emails-domains.component.html | 3 +- .../share-emails-domains.component.spec.ts | 46 +++++++++++++------ .../share-emails-domains.component.ts | 4 +- 4 files changed, 49 insertions(+), 25 deletions(-) diff --git a/src/app/authorize/pages/authorize/authorize.component.ts b/src/app/authorize/pages/authorize/authorize.component.ts index 3331d2ded5..77cd7ada34 100644 --- a/src/app/authorize/pages/authorize/authorize.component.ts +++ b/src/app/authorize/pages/authorize/authorize.component.ts @@ -1,6 +1,6 @@ import { Component, Inject } from '@angular/core' import { cloneDeep } from 'lodash' -import { first, tap } from 'rxjs/operators' +import { first, take, tap } from 'rxjs/operators' import { PlatformInfo, PlatformInfoService } from 'src/app/cdk/platform-info' import { WINDOW } from 'src/app/cdk/window' import { UserService } from 'src/app/core' @@ -45,9 +45,12 @@ export class AuthorizeComponent { } ngOnInit() { - this._togglz.getStateOf('OAUTH_DOMAINS_INTERSTITIAL').subscribe((value) => { - this.oauthDomainsInterstitialEnabled = value - }) + this._togglz + .getStateOf('OAUTH_DOMAINS_INTERSTITIAL') + .pipe(take(1)) + .subscribe((value) => { + this.oauthDomainsInterstitialEnabled = value + }) this._recordEmails .getEmails() .pipe( @@ -61,13 +64,15 @@ export class AuthorizeComponent { } userHasPrivateEmails(value: EmailsEndpoint): boolean { - return !!value.emailDomains.find( - (domain) => domain.visibility !== 'PUBLIC' - ) + return !!value.emailDomains.find((domain) => domain.visibility !== 'PUBLIC') } handleRedirect(url: string) { - if (url && this.userHasPrivateDomains && this.oauthDomainsInterstitialEnabled) { + if ( + url && + this.userHasPrivateDomains && + this.oauthDomainsInterstitialEnabled + ) { this.redirectUrl = url this.showAuthorizationComponent = false this.showInterstital = true diff --git a/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.html b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.html index 8019bf20e4..6e4f8d4a78 100644 --- a/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.html +++ b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.html @@ -42,13 +42,12 @@
-
{{ item.get('email').value }} diff --git a/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.spec.ts b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.spec.ts index edd68aba7d..fd7032fe57 100644 --- a/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.spec.ts +++ b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.spec.ts @@ -1,21 +1,41 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed } from '@angular/core/testing' -import { ShareEmailsDomainsComponent } from './share-emails-domains.component'; +import { ShareEmailsDomainsComponent } from './share-emails-domains.component' +import { FormBuilder, FormControl, FormGroup } from '@angular/forms' +import { RecordEmailsService } from 'src/app/core/record-emails/record-emails.service' +import { PlatformInfoService } from '../../platform-info' describe('ShareEmailsDomainsComponent', () => { - let component: ShareEmailsDomainsComponent; - let fixture: ComponentFixture; + let component: ShareEmailsDomainsComponent + let fixture: ComponentFixture beforeEach(() => { TestBed.configureTestingModule({ - declarations: [ShareEmailsDomainsComponent] - }); - fixture = TestBed.createComponent(ShareEmailsDomainsComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); + declarations: [ShareEmailsDomainsComponent], + providers: [ + { + provide: PlatformInfoService, + useValue: {}, + }, + { + provide: FormBuilder, + useValue: { + array: () => [new FormControl({})], + group: () => new FormGroup({}), + }, + }, + { + provide: RecordEmailsService, + useValue: {}, + }, + ], + }) + fixture = TestBed.createComponent(ShareEmailsDomainsComponent) + component = fixture.componentInstance + fixture.detectChanges() + }) it('should create', () => { - expect(component).toBeTruthy(); - }); -}); + expect(component).toBeTruthy() + }) +}) diff --git a/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.ts b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.ts index 0c5e8fac76..526713901a 100644 --- a/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.ts +++ b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.ts @@ -36,7 +36,7 @@ export class ShareEmailsDomainsComponent { ) this.form = this.fb.group({ items: this.fb.array( - this.userPrivateDomains.map((item) => this.createItemFormGroup(item)) + this.userPrivateDomains?.map((item) => this.createItemFormGroup(item)) ), }) } @@ -44,7 +44,7 @@ export class ShareEmailsDomainsComponent { getTop3MostRecentPrivateDomains( value: EmailsEndpoint ): AssertionVisibilityString[] { - return value.emailDomains + return value?.emailDomains .filter((domain) => domain.visibility !== 'PUBLIC') .sort((a, b) => { return b.createdDate.timestamp - a.createdDate.timestamp From 2b3050db103cb05d87b28c6da1585b1f1837b702 Mon Sep 17 00:00:00 2001 From: leomendoza123 Date: Mon, 4 Nov 2024 07:27:36 +0000 Subject: [PATCH 10/17] =?UTF-8?q?=F0=9F=A4=96=20GITHUB=20ACTIONS=20format?= =?UTF-8?q?=5Fprettier?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- guides/example-tx-config.yml | 2 +- src/app/authorize/authorize.module.ts | 2 +- .../info-panel/info-panel.component.spec.ts | 26 +++++++++---------- .../info-panel/info-panel.component.ts | 11 ++++---- .../share-emails-domains.component.scss | 5 +--- ...e-emails-domains.component.scss-theme.scss | 4 +-- .../share-emails-domains.component.ts | 5 ++-- .../cdk/platform-info/browserlist.regexp.ts | 3 ++- 8 files changed, 27 insertions(+), 31 deletions(-) diff --git a/guides/example-tx-config.yml b/guides/example-tx-config.yml index 364de2ee18..a44b1edf8a 100644 --- a/guides/example-tx-config.yml +++ b/guides/example-tx-config.yml @@ -199,4 +199,4 @@ filters: source_language: en source_file: src/locale/properties/interstitials/interstitials.en.properties # path expression to translation files, must contain placeholder - translation_files_expression: src/locale/properties/interstitials/interstitials..properties \ No newline at end of file + translation_files_expression: src/locale/properties/interstitials/interstitials..properties diff --git a/src/app/authorize/authorize.module.ts b/src/app/authorize/authorize.module.ts index e5a8cd822e..4dbdc64f2b 100644 --- a/src/app/authorize/authorize.module.ts +++ b/src/app/authorize/authorize.module.ts @@ -37,7 +37,7 @@ import { InterstitialsModule } from '../cdk/interstitials/interstitials.module' TrustedIndividualsDropdownModule, InfoDropDownModule, MatProgressBarModule, - InterstitialsModule + InterstitialsModule, ], }) export class AuthorizeModule {} diff --git a/src/app/cdk/info-panel/info-panel/info-panel.component.spec.ts b/src/app/cdk/info-panel/info-panel/info-panel.component.spec.ts index 1cfc9e2436..b2e99d7da4 100644 --- a/src/app/cdk/info-panel/info-panel/info-panel.component.spec.ts +++ b/src/app/cdk/info-panel/info-panel/info-panel.component.spec.ts @@ -1,21 +1,21 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed } from '@angular/core/testing' -import { InfoPanelComponent } from './info-panel.component'; +import { InfoPanelComponent } from './info-panel.component' describe('InfoPanelComponent', () => { - let component: InfoPanelComponent; - let fixture: ComponentFixture; + let component: InfoPanelComponent + let fixture: ComponentFixture beforeEach(() => { TestBed.configureTestingModule({ - declarations: [InfoPanelComponent] - }); - fixture = TestBed.createComponent(InfoPanelComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); + declarations: [InfoPanelComponent], + }) + fixture = TestBed.createComponent(InfoPanelComponent) + component = fixture.componentInstance + fixture.detectChanges() + }) it('should create', () => { - expect(component).toBeTruthy(); - }); -}); + expect(component).toBeTruthy() + }) +}) diff --git a/src/app/cdk/info-panel/info-panel/info-panel.component.ts b/src/app/cdk/info-panel/info-panel/info-panel.component.ts index cff766a000..7fd1c71784 100644 --- a/src/app/cdk/info-panel/info-panel/info-panel.component.ts +++ b/src/app/cdk/info-panel/info-panel/info-panel.component.ts @@ -1,10 +1,11 @@ -import { Component } from '@angular/core'; +import { Component } from '@angular/core' @Component({ selector: 'app-info-panel', templateUrl: './info-panel.component.html', - styleUrls: ['./info-panel.component.scss', './info-panel.component.scss-theme.scss'] + styleUrls: [ + './info-panel.component.scss', + './info-panel.component.scss-theme.scss', + ], }) -export class InfoPanelComponent { - -} +export class InfoPanelComponent {} diff --git a/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.scss b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.scss index e02db7e345..6949254087 100644 --- a/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.scss +++ b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.scss @@ -1,12 +1,10 @@ @import '../../../../assets/scss/orcid.spacing.scss'; - h2 { margin-top: 16px; margin-bottom: 16px; - } -.published-email-container{ +.published-email-container { display: flex; align-items: center; } @@ -65,7 +63,6 @@ mat-divider { margin-bottom: 16px; } - mat-divider.last { margin-top: 32px; margin-bottom: 32px; diff --git a/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.scss-theme.scss b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.scss-theme.scss index 150c755f1b..d6828643e8 100644 --- a/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.scss-theme.scss +++ b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.scss-theme.scss @@ -12,13 +12,11 @@ background-color: mat.get-color-from-palette($primary, 700); } - ::ng-deep{ + ::ng-deep { .mat-divider.green-divider { border: solid 1px mat.get-color-from-palette($foreground, brand-primary); } } } - - @include theme($orcid-app-theme); diff --git a/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.ts b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.ts index 526713901a..6678b9712e 100644 --- a/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.ts +++ b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.ts @@ -61,9 +61,8 @@ export class ShareEmailsDomainsComponent { accept(answear: boolean) { this.domainToMakePublic = this.form.value.items - .filter((item) => item.selected) - .map((item) => item.email) - + .filter((item) => item.selected) + .map((item) => item.email) if (answear && this.domainToMakePublic.length > 0) { this.userEmailsJson.emailDomains.forEach((domain) => { diff --git a/src/app/cdk/platform-info/browserlist.regexp.ts b/src/app/cdk/platform-info/browserlist.regexp.ts index bf8c4aa5cf..545a90290e 100644 --- a/src/app/cdk/platform-info/browserlist.regexp.ts +++ b/src/app/cdk/platform-info/browserlist.regexp.ts @@ -1,2 +1,3 @@ // tslint:disable-next-line: max-line-length -export const BROWSERLIST_REGEXP = /((CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS)[ +]+(13[_.]4|13[_.]([5-9]|\d{2,})|13[_.]7|13[_.]([8-9]|\d{2,})|(1[4-9]|[2-9]\d|\d{3,})[_.]\d+|14[_.]0|14[_.]([1-9]|\d{2,})|14[_.]4|14[_.]([5-9]|\d{2,})|14[_.]8|14[_.](9|\d{2,})|(1[5-9]|[2-9]\d|\d{3,})[_.]\d+|15[_.]0|15[_.]([1-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})[_.]\d+|16[_.]0|16[_.]([1-9]|\d{2,})|(1[7-9]|[2-9]\d|\d{3,})[_.]\d+|17[_.]0|17[_.]([1-9]|\d{2,})|(1[8-9]|[2-9]\d|\d{3,})[_.]\d+)(?:[_.]\d+)?)|((?:Chrome).*OPR\/(74|(7[5-9]|[8-9]\d|\d{3,}))\.\d+\.\d+)|(Edge\/(80|(8[1-9]|9\d|\d{3,})|83|(8[4-9]|9\d|\d{3,}))(?:\.\d+)?)|((Chromium|Chrome)\/(80|(8[1-9]|9\d|\d{3,})|83|(8[4-9]|9\d|\d{3,}))\.\d+(?:\.\d+)?)|(Version\/(13\.1|13\.([2-9]|\d{2,})|(1[4-9]|[2-9]\d|\d{3,})\.\d+|14\.0|14\.([1-9]|\d{2,})|(1[5-9]|[2-9]\d|\d{3,})\.\d+|15\.0|15\.([1-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+|16\.0|16\.([1-9]|\d{2,})|(1[7-9]|[2-9]\d|\d{3,})\.\d+|17\.0|17\.([1-9]|\d{2,})|(1[8-9]|[2-9]\d|\d{3,})\.\d+)(?:\.\d+)? Safari\/)|(Firefox\/(78|(79|[8-9]\d|\d{3,}))\.\d+\.\d+)|(Firefox\/(78|(79|[8-9]\d|\d{3,}))\.\d+(pre|[ab]\d+[a-z]*)?)/ +export const BROWSERLIST_REGEXP = + /((CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS)[ +]+(13[_.]4|13[_.]([5-9]|\d{2,})|13[_.]7|13[_.]([8-9]|\d{2,})|(1[4-9]|[2-9]\d|\d{3,})[_.]\d+|14[_.]0|14[_.]([1-9]|\d{2,})|14[_.]4|14[_.]([5-9]|\d{2,})|14[_.]8|14[_.](9|\d{2,})|(1[5-9]|[2-9]\d|\d{3,})[_.]\d+|15[_.]0|15[_.]([1-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})[_.]\d+|16[_.]0|16[_.]([1-9]|\d{2,})|(1[7-9]|[2-9]\d|\d{3,})[_.]\d+|17[_.]0|17[_.]([1-9]|\d{2,})|(1[8-9]|[2-9]\d|\d{3,})[_.]\d+)(?:[_.]\d+)?)|((?:Chrome).*OPR\/(74|(7[5-9]|[8-9]\d|\d{3,}))\.\d+\.\d+)|(Edge\/(80|(8[1-9]|9\d|\d{3,})|83|(8[4-9]|9\d|\d{3,}))(?:\.\d+)?)|((Chromium|Chrome)\/(80|(8[1-9]|9\d|\d{3,})|83|(8[4-9]|9\d|\d{3,}))\.\d+(?:\.\d+)?)|(Version\/(13\.1|13\.([2-9]|\d{2,})|(1[4-9]|[2-9]\d|\d{3,})\.\d+|14\.0|14\.([1-9]|\d{2,})|(1[5-9]|[2-9]\d|\d{3,})\.\d+|15\.0|15\.([1-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+|16\.0|16\.([1-9]|\d{2,})|(1[7-9]|[2-9]\d|\d{3,})\.\d+|17\.0|17\.([1-9]|\d{2,})|(1[8-9]|[2-9]\d|\d{3,})\.\d+)(?:\.\d+)? Safari\/)|(Firefox\/(78|(79|[8-9]\d|\d{3,}))\.\d+\.\d+)|(Firefox\/(78|(79|[8-9]\d|\d{3,}))\.\d+(pre|[ab]\d+[a-z]*)?)/ From d2d79efbee8069e8ea34287c0f38bafe0b88da3d Mon Sep 17 00:00:00 2001 From: github actions Date: Mon, 4 Nov 2024 07:51:20 +0000 Subject: [PATCH 11/17] v2.107.2 changelog update --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f5621425ec..6ed4d4b9f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## v2.107.2 - 2024-11-04 + +[Full Changelog](https://github.com/ORCID/orcid-angular/compare/v2.107.1...v2.107.2) + +- [#2386](https://github.com/ORCID/orcid-angular/pull/2386): Lmendoza/9422 email domains interstitial oauth + ## v2.107.1 - 2024-10-30 [Full Changelog](https://github.com/ORCID/orcid-angular/compare/v2.107.0...v2.107.1) From 016f40452f4bed0aaf63f310293e80540b953819 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2024 13:10:55 -0600 Subject: [PATCH 12/17] Bump body-parser from 1.20.2 to 1.20.3 (#2385) Bumps [body-parser](https://github.com/expressjs/body-parser) from 1.20.2 to 1.20.3. - [Release notes](https://github.com/expressjs/body-parser/releases) - [Changelog](https://github.com/expressjs/body-parser/blob/master/HISTORY.md) - [Commits](https://github.com/expressjs/body-parser/compare/1.20.2...1.20.3) --- updated-dependencies: - dependency-name: body-parser dependency-type: indirect ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Angel Montenegro --- yarn.lock | 27 +-------------------------- 1 file changed, 1 insertion(+), 26 deletions(-) diff --git a/yarn.lock b/yarn.lock index 5d259bd8be..687060e390 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5950,7 +5950,7 @@ blocking-proxy@^1.0.0: dependencies: minimist "^1.2.0" -body-parser@1.20.3: +body-parser@1.20.3, body-parser@^1.19.0: version "1.20.3" resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.3.tgz#1953431221c6fb5cd63c4b36d53fab0928e548c6" integrity sha512-7rAxByjUMqQ3/bHJy7D6OGXvx/MMc4IqBn/X0fcM1QUcAItpZrBEYhWGem+tzXH90c+G01ypMcYJBO9Y30203g== @@ -5968,24 +5968,6 @@ body-parser@1.20.3: type-is "~1.6.18" unpipe "1.0.0" -body-parser@^1.19.0: - version "1.20.2" - resolved "https://registry.npmjs.org/body-parser/-/body-parser-1.20.2.tgz" - integrity sha512-ml9pReCu3M61kGlqoTm2umSXTlRTuGTx0bfYj+uIUKKYycG5NtSbeetV3faSU6R7ajOPw0g/J1PvK4qNy7s5bA== - dependencies: - bytes "3.1.2" - content-type "~1.0.5" - debug "2.6.9" - depd "2.0.0" - destroy "1.2.0" - http-errors "2.0.0" - iconv-lite "0.4.24" - on-finished "2.4.1" - qs "6.11.0" - raw-body "2.5.2" - type-is "~1.6.18" - unpipe "1.0.0" - bonjour-service@^1.0.11: version "1.1.1" resolved "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.1.1.tgz" @@ -13683,13 +13665,6 @@ qjobs@^1.2.0: resolved "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz" integrity sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg== -qs@6.11.0: - version "6.11.0" - resolved "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz" - integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q== - dependencies: - side-channel "^1.0.4" - qs@6.13.0: version "6.13.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906" From a33872799754667963e968a250f25983703c7dc1 Mon Sep 17 00:00:00 2001 From: github actions Date: Mon, 4 Nov 2024 19:37:25 +0000 Subject: [PATCH 13/17] v2.107.3 changelog update --- CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6ed4d4b9f8..f9be28e585 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,7 @@ +## v2.107.3 - 2024-11-04 + +[Full Changelog](https://github.com/ORCID/orcid-angular/compare/v2.107.2...v2.107.3) + ## v2.107.2 - 2024-11-04 [Full Changelog](https://github.com/ORCID/orcid-angular/compare/v2.107.1...v2.107.2) From 401f7edf9f70032b37da86d6494293c4525febef Mon Sep 17 00:00:00 2001 From: Leonardo Mendoza Fernadez Date: Mon, 4 Nov 2024 16:28:02 -0600 Subject: [PATCH 14/17] 9422-email-domains-interstitial-oauth --- .../form-authorize.component.ts | 1 - .../pages/authorize/authorize.component.ts | 28 +++++++++++++++-- .../interstitials.service.spec.ts | 16 ++++++++++ .../interstitials/interstitials.service.ts | 31 +++++++++++++++++++ .../share-emails-domains.component.ts | 1 - 5 files changed, 72 insertions(+), 5 deletions(-) create mode 100644 src/app/cdk/interstitials/interstitials.service.spec.ts create mode 100644 src/app/cdk/interstitials/interstitials.service.ts diff --git a/src/app/authorize/components/form-authorize/form-authorize.component.ts b/src/app/authorize/components/form-authorize/form-authorize.component.ts index fb6c91e507..e64cc57cdd 100644 --- a/src/app/authorize/components/form-authorize/form-authorize.component.ts +++ b/src/app/authorize/components/form-authorize/form-authorize.component.ts @@ -86,7 +86,6 @@ export class FormAuthorizeComponent implements OnInit, OnDestroy { this.loadingTrustedIndividuals = false this.oauthRequest = userInfo.oauthSession this.organizationName.emit(this.oauthRequest.clientName) - console.log('this ', this.oauthRequest.clientName) if (userInfo.loggedIn) { this.userName = userInfo.displayName this.orcidUrl = userInfo.effectiveOrcidUrl diff --git a/src/app/authorize/pages/authorize/authorize.component.ts b/src/app/authorize/pages/authorize/authorize.component.ts index 77cd7ada34..c127b6a0a3 100644 --- a/src/app/authorize/pages/authorize/authorize.component.ts +++ b/src/app/authorize/pages/authorize/authorize.component.ts @@ -1,6 +1,7 @@ import { Component, Inject } from '@angular/core' import { cloneDeep } from 'lodash' import { first, take, tap } from 'rxjs/operators' +import { InterstitialsService } from 'src/app/cdk/interstitials/interstitials.service' import { PlatformInfo, PlatformInfoService } from 'src/app/cdk/platform-info' import { WINDOW } from 'src/app/cdk/window' import { UserService } from 'src/app/core' @@ -24,13 +25,17 @@ export class AuthorizeComponent { userHasPrivateDomains = false oauthDomainsInterstitialEnabled: boolean organizationName: string + domainInterstitialHasBeenViewed: boolean + userIsNotImpersonating: boolean constructor( _user: UserService, private _platformInfo: PlatformInfoService, private _recordEmails: RecordEmailsService, private _togglz: TogglzService, - @Inject(WINDOW) private window: Window + private _interstitials: InterstitialsService, + @Inject(WINDOW) private window: Window, + private _userInfo: UserService ) { _user.getUserSession().subscribe((session) => { if (session.oauthSession && session.oauthSession.error) { @@ -45,6 +50,17 @@ export class AuthorizeComponent { } ngOnInit() { + this._userInfo.getUserSession().subscribe((userInfo) => { + this.userIsNotImpersonating = + userInfo.userInfo.REAL_USER_ORCID === + userInfo.userInfo.EFFECTIVE_USER_ORCID + }) + this._interstitials + .getInterstitialsViewed('OAUTH_DOMAIN_INTERSTITIAL') + .subscribe((value) => { + return (this.domainInterstitialHasBeenViewed = value) + }) + this._togglz .getStateOf('OAUTH_DOMAINS_INTERSTITIAL') .pipe(take(1)) @@ -68,14 +84,20 @@ export class AuthorizeComponent { } handleRedirect(url: string) { + this.redirectUrl = url + if ( url && this.userHasPrivateDomains && - this.oauthDomainsInterstitialEnabled + this.oauthDomainsInterstitialEnabled && + !this.domainInterstitialHasBeenViewed && + this.userIsNotImpersonating ) { - this.redirectUrl = url this.showAuthorizationComponent = false this.showInterstital = true + this._interstitials + .setInterstitialsViewed('OAUTH_DOMAIN_INTERSTITIAL') + .subscribe() } else { this.finishRedirect() } diff --git a/src/app/cdk/interstitials/interstitials.service.spec.ts b/src/app/cdk/interstitials/interstitials.service.spec.ts new file mode 100644 index 0000000000..4f647fd988 --- /dev/null +++ b/src/app/cdk/interstitials/interstitials.service.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from '@angular/core/testing'; + +import { InterstitialsService } from './interstitials.service'; + +describe('InterstitialsService', () => { + let service: InterstitialsService; + + beforeEach(() => { + TestBed.configureTestingModule({}); + service = TestBed.inject(InterstitialsService); + }); + + it('should be created', () => { + expect(service).toBeTruthy(); + }); +}); diff --git a/src/app/cdk/interstitials/interstitials.service.ts b/src/app/cdk/interstitials/interstitials.service.ts new file mode 100644 index 0000000000..831f4ff16b --- /dev/null +++ b/src/app/cdk/interstitials/interstitials.service.ts @@ -0,0 +1,31 @@ +import { Injectable } from '@angular/core' +import { userInfo } from 'os' +import { map } from 'rxjs/operators' +import { UserService } from 'src/app/core' +type Interstitials = 'OAUTH_DOMAIN_INTERSTITIAL' | 'SIGN_IN_DOMAIN_INTERSTITIAL' + +@Injectable({ + providedIn: 'root', +}) +export class InterstitialsService { + constructor(private _userInfo: UserService) {} + + setInterstitialsViewed(interstitial: Interstitials) { + return this._userInfo.getUserSession().pipe( + map((userInfo) => { + const effectiveUser = userInfo.userInfo.EFFECTIVE_USER_ORCID + localStorage.setItem(effectiveUser + '_' + interstitial, 'true') + }) + ) + } + getInterstitialsViewed(interstitial: Interstitials) { + return this._userInfo.getUserSession().pipe( + map((userInfo) => { + const effectiveUser = userInfo.userInfo.EFFECTIVE_USER_ORCID + return ( + localStorage.getItem(effectiveUser + '_' + interstitial) === 'true' + ) + }) + ) + } +} diff --git a/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.ts b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.ts index 526713901a..1e5060cf1c 100644 --- a/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.ts +++ b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.ts @@ -30,7 +30,6 @@ export class ShareEmailsDomainsComponent { @Output() finish = new EventEmitter() ngOnInit() { - console.log(this.organizationName) this.userPrivateDomains = this.getTop3MostRecentPrivateDomains( this.userEmailsJson ) From 26a4ea542c2109fee8405004ce54e80f83fdf124 Mon Sep 17 00:00:00 2001 From: Leonardo Mendoza Fernadez Date: Mon, 4 Nov 2024 16:31:47 -0600 Subject: [PATCH 15/17] 9422-email-domains-interstitial-oauth --- .../interstitials.service.spec.ts | 26 ++++++++++++------- 1 file changed, 17 insertions(+), 9 deletions(-) diff --git a/src/app/cdk/interstitials/interstitials.service.spec.ts b/src/app/cdk/interstitials/interstitials.service.spec.ts index 4f647fd988..a626b60b8e 100644 --- a/src/app/cdk/interstitials/interstitials.service.spec.ts +++ b/src/app/cdk/interstitials/interstitials.service.spec.ts @@ -1,16 +1,24 @@ -import { TestBed } from '@angular/core/testing'; +import { TestBed } from '@angular/core/testing' -import { InterstitialsService } from './interstitials.service'; +import { InterstitialsService } from './interstitials.service' +import { UserService } from 'src/app/core' describe('InterstitialsService', () => { - let service: InterstitialsService; + let service: InterstitialsService beforeEach(() => { - TestBed.configureTestingModule({}); - service = TestBed.inject(InterstitialsService); - }); + TestBed.configureTestingModule({ + providers: [ + { + provide: UserService, + useValue: {}, + }, + ], + }) + service = TestBed.inject(InterstitialsService) + }) it('should be created', () => { - expect(service).toBeTruthy(); - }); -}); + expect(service).toBeTruthy() + }) +}) From 84c9d2152d68ac182dd9c4292a356b9bfc60cb2f Mon Sep 17 00:00:00 2001 From: Leonardo Mendoza Fernadez Date: Mon, 4 Nov 2024 16:34:29 -0600 Subject: [PATCH 16/17] 9422-email-domains-interstitial-oauth --- guides/example-tx-config.yml | 2 +- src/app/authorize/authorize.module.ts | 2 +- .../info-panel/info-panel.component.spec.ts | 26 +++++++++---------- .../info-panel/info-panel.component.ts | 11 ++++---- .../share-emails-domains.component.scss | 5 +--- ...e-emails-domains.component.scss-theme.scss | 4 +-- .../share-emails-domains.component.ts | 5 ++-- .../cdk/platform-info/browserlist.regexp.ts | 3 ++- 8 files changed, 27 insertions(+), 31 deletions(-) diff --git a/guides/example-tx-config.yml b/guides/example-tx-config.yml index 364de2ee18..a44b1edf8a 100644 --- a/guides/example-tx-config.yml +++ b/guides/example-tx-config.yml @@ -199,4 +199,4 @@ filters: source_language: en source_file: src/locale/properties/interstitials/interstitials.en.properties # path expression to translation files, must contain placeholder - translation_files_expression: src/locale/properties/interstitials/interstitials..properties \ No newline at end of file + translation_files_expression: src/locale/properties/interstitials/interstitials..properties diff --git a/src/app/authorize/authorize.module.ts b/src/app/authorize/authorize.module.ts index e5a8cd822e..4dbdc64f2b 100644 --- a/src/app/authorize/authorize.module.ts +++ b/src/app/authorize/authorize.module.ts @@ -37,7 +37,7 @@ import { InterstitialsModule } from '../cdk/interstitials/interstitials.module' TrustedIndividualsDropdownModule, InfoDropDownModule, MatProgressBarModule, - InterstitialsModule + InterstitialsModule, ], }) export class AuthorizeModule {} diff --git a/src/app/cdk/info-panel/info-panel/info-panel.component.spec.ts b/src/app/cdk/info-panel/info-panel/info-panel.component.spec.ts index 1cfc9e2436..b2e99d7da4 100644 --- a/src/app/cdk/info-panel/info-panel/info-panel.component.spec.ts +++ b/src/app/cdk/info-panel/info-panel/info-panel.component.spec.ts @@ -1,21 +1,21 @@ -import { ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed } from '@angular/core/testing' -import { InfoPanelComponent } from './info-panel.component'; +import { InfoPanelComponent } from './info-panel.component' describe('InfoPanelComponent', () => { - let component: InfoPanelComponent; - let fixture: ComponentFixture; + let component: InfoPanelComponent + let fixture: ComponentFixture beforeEach(() => { TestBed.configureTestingModule({ - declarations: [InfoPanelComponent] - }); - fixture = TestBed.createComponent(InfoPanelComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); + declarations: [InfoPanelComponent], + }) + fixture = TestBed.createComponent(InfoPanelComponent) + component = fixture.componentInstance + fixture.detectChanges() + }) it('should create', () => { - expect(component).toBeTruthy(); - }); -}); + expect(component).toBeTruthy() + }) +}) diff --git a/src/app/cdk/info-panel/info-panel/info-panel.component.ts b/src/app/cdk/info-panel/info-panel/info-panel.component.ts index cff766a000..7fd1c71784 100644 --- a/src/app/cdk/info-panel/info-panel/info-panel.component.ts +++ b/src/app/cdk/info-panel/info-panel/info-panel.component.ts @@ -1,10 +1,11 @@ -import { Component } from '@angular/core'; +import { Component } from '@angular/core' @Component({ selector: 'app-info-panel', templateUrl: './info-panel.component.html', - styleUrls: ['./info-panel.component.scss', './info-panel.component.scss-theme.scss'] + styleUrls: [ + './info-panel.component.scss', + './info-panel.component.scss-theme.scss', + ], }) -export class InfoPanelComponent { - -} +export class InfoPanelComponent {} diff --git a/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.scss b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.scss index e02db7e345..6949254087 100644 --- a/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.scss +++ b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.scss @@ -1,12 +1,10 @@ @import '../../../../assets/scss/orcid.spacing.scss'; - h2 { margin-top: 16px; margin-bottom: 16px; - } -.published-email-container{ +.published-email-container { display: flex; align-items: center; } @@ -65,7 +63,6 @@ mat-divider { margin-bottom: 16px; } - mat-divider.last { margin-top: 32px; margin-bottom: 32px; diff --git a/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.scss-theme.scss b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.scss-theme.scss index 150c755f1b..d6828643e8 100644 --- a/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.scss-theme.scss +++ b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.scss-theme.scss @@ -12,13 +12,11 @@ background-color: mat.get-color-from-palette($primary, 700); } - ::ng-deep{ + ::ng-deep { .mat-divider.green-divider { border: solid 1px mat.get-color-from-palette($foreground, brand-primary); } } } - - @include theme($orcid-app-theme); diff --git a/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.ts b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.ts index 1e5060cf1c..5f8245ec12 100644 --- a/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.ts +++ b/src/app/cdk/interstitials/share-emails-domains/share-emails-domains.component.ts @@ -60,9 +60,8 @@ export class ShareEmailsDomainsComponent { accept(answear: boolean) { this.domainToMakePublic = this.form.value.items - .filter((item) => item.selected) - .map((item) => item.email) - + .filter((item) => item.selected) + .map((item) => item.email) if (answear && this.domainToMakePublic.length > 0) { this.userEmailsJson.emailDomains.forEach((domain) => { diff --git a/src/app/cdk/platform-info/browserlist.regexp.ts b/src/app/cdk/platform-info/browserlist.regexp.ts index bf8c4aa5cf..545a90290e 100644 --- a/src/app/cdk/platform-info/browserlist.regexp.ts +++ b/src/app/cdk/platform-info/browserlist.regexp.ts @@ -1,2 +1,3 @@ // tslint:disable-next-line: max-line-length -export const BROWSERLIST_REGEXP = /((CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS)[ +]+(13[_.]4|13[_.]([5-9]|\d{2,})|13[_.]7|13[_.]([8-9]|\d{2,})|(1[4-9]|[2-9]\d|\d{3,})[_.]\d+|14[_.]0|14[_.]([1-9]|\d{2,})|14[_.]4|14[_.]([5-9]|\d{2,})|14[_.]8|14[_.](9|\d{2,})|(1[5-9]|[2-9]\d|\d{3,})[_.]\d+|15[_.]0|15[_.]([1-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})[_.]\d+|16[_.]0|16[_.]([1-9]|\d{2,})|(1[7-9]|[2-9]\d|\d{3,})[_.]\d+|17[_.]0|17[_.]([1-9]|\d{2,})|(1[8-9]|[2-9]\d|\d{3,})[_.]\d+)(?:[_.]\d+)?)|((?:Chrome).*OPR\/(74|(7[5-9]|[8-9]\d|\d{3,}))\.\d+\.\d+)|(Edge\/(80|(8[1-9]|9\d|\d{3,})|83|(8[4-9]|9\d|\d{3,}))(?:\.\d+)?)|((Chromium|Chrome)\/(80|(8[1-9]|9\d|\d{3,})|83|(8[4-9]|9\d|\d{3,}))\.\d+(?:\.\d+)?)|(Version\/(13\.1|13\.([2-9]|\d{2,})|(1[4-9]|[2-9]\d|\d{3,})\.\d+|14\.0|14\.([1-9]|\d{2,})|(1[5-9]|[2-9]\d|\d{3,})\.\d+|15\.0|15\.([1-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+|16\.0|16\.([1-9]|\d{2,})|(1[7-9]|[2-9]\d|\d{3,})\.\d+|17\.0|17\.([1-9]|\d{2,})|(1[8-9]|[2-9]\d|\d{3,})\.\d+)(?:\.\d+)? Safari\/)|(Firefox\/(78|(79|[8-9]\d|\d{3,}))\.\d+\.\d+)|(Firefox\/(78|(79|[8-9]\d|\d{3,}))\.\d+(pre|[ab]\d+[a-z]*)?)/ +export const BROWSERLIST_REGEXP = + /((CPU[ +]OS|iPhone[ +]OS|CPU[ +]iPhone|CPU IPhone OS)[ +]+(13[_.]4|13[_.]([5-9]|\d{2,})|13[_.]7|13[_.]([8-9]|\d{2,})|(1[4-9]|[2-9]\d|\d{3,})[_.]\d+|14[_.]0|14[_.]([1-9]|\d{2,})|14[_.]4|14[_.]([5-9]|\d{2,})|14[_.]8|14[_.](9|\d{2,})|(1[5-9]|[2-9]\d|\d{3,})[_.]\d+|15[_.]0|15[_.]([1-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})[_.]\d+|16[_.]0|16[_.]([1-9]|\d{2,})|(1[7-9]|[2-9]\d|\d{3,})[_.]\d+|17[_.]0|17[_.]([1-9]|\d{2,})|(1[8-9]|[2-9]\d|\d{3,})[_.]\d+)(?:[_.]\d+)?)|((?:Chrome).*OPR\/(74|(7[5-9]|[8-9]\d|\d{3,}))\.\d+\.\d+)|(Edge\/(80|(8[1-9]|9\d|\d{3,})|83|(8[4-9]|9\d|\d{3,}))(?:\.\d+)?)|((Chromium|Chrome)\/(80|(8[1-9]|9\d|\d{3,})|83|(8[4-9]|9\d|\d{3,}))\.\d+(?:\.\d+)?)|(Version\/(13\.1|13\.([2-9]|\d{2,})|(1[4-9]|[2-9]\d|\d{3,})\.\d+|14\.0|14\.([1-9]|\d{2,})|(1[5-9]|[2-9]\d|\d{3,})\.\d+|15\.0|15\.([1-9]|\d{2,})|(1[6-9]|[2-9]\d|\d{3,})\.\d+|16\.0|16\.([1-9]|\d{2,})|(1[7-9]|[2-9]\d|\d{3,})\.\d+|17\.0|17\.([1-9]|\d{2,})|(1[8-9]|[2-9]\d|\d{3,})\.\d+)(?:\.\d+)? Safari\/)|(Firefox\/(78|(79|[8-9]\d|\d{3,}))\.\d+\.\d+)|(Firefox\/(78|(79|[8-9]\d|\d{3,}))\.\d+(pre|[ab]\d+[a-z]*)?)/ From b7ec027b05cd035a4c39fc573c5cacff67d11ff2 Mon Sep 17 00:00:00 2001 From: github actions Date: Mon, 4 Nov 2024 23:08:37 +0000 Subject: [PATCH 17/17] v2.107.4 changelog update --- CHANGELOG.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index f9be28e585..63b9a0ff3a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,9 @@ +## v2.107.4 - 2024-11-04 + +[Full Changelog](https://github.com/ORCID/orcid-angular/compare/v2.107.3...v2.107.4) + +- [#2387](https://github.com/ORCID/orcid-angular/pull/2387): Lmendoza/9422 email domains interstitial oauth + ## v2.107.3 - 2024-11-04 [Full Changelog](https://github.com/ORCID/orcid-angular/compare/v2.107.2...v2.107.3)