diff --git a/.gitignore b/.gitignore index 339e469..7186431 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ target/ +target-*/ node_modules/ !.mvn/wrapper/maven-wrapper.jar !**/src/main/**/target/ diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..9fcbc1f --- /dev/null +++ b/build.sh @@ -0,0 +1,36 @@ +#!/bin/bash +# +# Setup env +nvm use 22 +FLAVORS_ROOT="flavors" + +# build default version +/opt/apache-maven-3.9.9/bin/mvn clean install -Ddir=target + + +# Check if the flavors need to be build +if [ ! -d "$FLAVORS_ROOT" ]; then + echo "Directory '$FLAVORS_ROOT' not found. No flavours to be build" + exit 0 +fi + +# Iterate through all items in the flavors directory +for d in "$FLAVORS_ROOT"/* ; do + if [ -d "$d" ]; then + FLAVOR_NAME=$(basename "$d") + + echo "Processing flavor directory: **$FLAVOR_NAME**" + + echo "Copying contents of '$d' to '..'" + cp -r "$d"/. .. + + TARGET_DIR_NAME="target-$FLAVOR_NAME" + + /opt/apache-maven-3.9.9/bin/mvn clean install -Ddir=$TARGET_DIR_NAME + fi +done + + + + + diff --git a/client/pom.xml b/client/pom.xml index c6408a4..59b23cb 100644 --- a/client/pom.xml +++ b/client/pom.xml @@ -10,7 +10,11 @@ client pom client + + target + + ${dir} org.codehaus.mojo diff --git a/client/src/components/Footer.jsx b/client/src/components/Footer.jsx index 80b94f2..047d5d6 100644 --- a/client/src/components/Footer.jsx +++ b/client/src/components/Footer.jsx @@ -26,7 +26,7 @@ export const Footer = () => { - {} diff --git a/client/src/connection/Testing.jsx b/client/src/connection/Testing.jsx index 9e2010e..0d1ab22 100644 --- a/client/src/connection/Testing.jsx +++ b/client/src/connection/Testing.jsx @@ -1212,9 +1212,9 @@ export const Testing = ({ {I18n.t("connection.help")} - createAndClickLink(I18n.t("connection.mailToSurf"))}/> + onClick={() => createAndClickLink(I18n.t("connection.mailToOpenConext"))}/> supportTicket()}/> diff --git a/client/src/locale/en.js b/client/src/locale/en.js index a7c5680..384053b 100644 --- a/client/src/locale/en.js +++ b/client/src/locale/en.js @@ -8,28 +8,28 @@ const en = { }, landing: { header: { - title: "SURF Access", + title: "OpenConext Access", subTitle: "Enabling users in secondary vocational-, higher education and research to access multiple services with one account.", login: "Sign in / sign up", - sup: "EduID ServiceDesk is by invitation only.", + sup: "MyConext ServiceDesk is by invitation only.", logout: "Logout", system: "System" }, loginInfo: { title: "Inloggen / aanmelden", - subTitle: "je kunt op SURF Access inloggen met een bestaand instellingsaccount, of als je deze niet met een eduID. Kies hieronder je situatie", + subTitle: "je kunt op OpenConext Access inloggen met een bestaand instellingsaccount, of als je deze niet met een MyConext. Kies hieronder je situatie", commercial: { title: "Je werkt bij een (commercieel) bedrijf", info: [ "Maken jullie zelf software die je wilt aanbieden in het onderwijsveld?", - "Dan moet je inloggen met eduID. Heb je nog geen account, geen zorgen, het aanmaken van een nieuwe account kan binnen 30 seconden" + "Dan moet je inloggen met MyConext. Heb je nog geen account, geen zorgen, het aanmaken van een nieuwe account kan binnen 30 seconden" ], - login: "Login met eduID" + login: "Login met MyConext" }, education: { title: "Je werkt bij een instelling", info: [ - "Ben je medewerker, student of onderzoeker bij een instelling die al is aangesloten op SURF, dan kan je direct inloggen met je instellingsaccount." + "Ben je medewerker, student of onderzoeker bij een instelling die al is aangesloten op OpenConext, dan kan je direct inloggen met je instellingsaccount." ], login: "Login met je instellingsaccount" } @@ -44,9 +44,9 @@ const en = { applicationProviders: { title: "For application providers", info: [ - "Has an educational or research institution asked you to join SURF Access?", - "SURF Access centrally manages authentication, authorization, group management, and privacy/security agreements.", - "Connecting to our SURF Access is free and you wil start in a sandbox." + "Has an educational or research institution asked you to join OpenConext Access?", + "OpenConext Access centrally manages authentication, authorization, group management, and privacy/security agreements.", + "Connecting to our OpenConext Access is free and you wil start in a sandbox." ], connect: "How to connect" }, @@ -54,16 +54,16 @@ const en = { title: "For institutions", info: [ "Do you want your students, staff and researchers to easily access multiple cloud services?", - "SURF Access offers 'Single Sign On'-access to a large and increasing number of them.", + "OpenConext Access offers 'Single Sign On'-access to a large and increasing number of them.", "It simplifies your work with a single integration instead of separate connections for each service." ], contact: "Contact us", - contactMail: "mailto:info@surfconext.nl" + contactMail: "mailto:info@OpenConextconext.nl" }, joining: { title: "Joining many to many", info: [ - "SURF Access securily connects 1M+ users to over 3000 (web)applications. SURF Access is a service from SURF.", + "OpenConext Access securily connects 1M+ users to over 3000 (web)applications. OpenConext Access is a service from OpenConext.", "Interested which institutions and applications are connected?" ], links: { @@ -76,7 +76,7 @@ const en = { }, navigation: { organizationMaintenance: "Organization maintenance", - catalogue: "SURF app catalogue", + catalogue: "OpenConext app catalogue", yourApps: "Your apps", allApps: "All apps", users: "Team management", @@ -141,8 +141,8 @@ const en = { } }, organizations: { - tooltip: "SURF beoordeelt je organisastie registratie. Je kunt apps registreren op onze testomgeving, voor toegang naar productie moet je ‘bevestigd’ zijn.", - tooltipApproved: "SURF heeft je organisastie registratie goedgekeurd. Je kunt apps registreren op onze productie omgevingn en productie status aanvragen.", + tooltip: "OpenConext beoordeelt je organisastie registratie. Je kunt apps registreren op onze testomgeving, voor toegang naar productie moet je ‘bevestigd’ zijn.", + tooltipApproved: "OpenConext heeft je organisastie registratie goedgekeurd. Je kunt apps registreren op onze productie omgevingn en productie status aanvragen.", pendingApprovalTitle: "Organizations pending approval", pending_approval: "Pending approval", approved: "Approved", @@ -181,10 +181,6 @@ const en = { contentInfoTip: "Attributenset voor content providers:Persistent or Transient NameIDschacHomeOrganization" + "eduPersonAffiliationeduPersonScopedAffiliation", targetGroup: "Target group", - targetSURF: "Verschillende gebruikers die beheerd worden in een (onderzoeks)groep", - targetSURFInfo: "De gebruikers worden individueel uitgenodigd bij de groep.", - targetSRAM: "Studenten, medewerkers en externen uit één instellings IdP", - targetSRAMInfo: "Zij krijgen toegang omdat ze een kenmerk of rol hebben.", terms: "Fair Use terms", checks: { personal: "Mijn applicatie slaat persoonsgegevens veilig op", @@ -205,18 +201,18 @@ const en = { deleteConfirmation: "Are you sure you want to delete the Application {{name}}?" }, organization: { - alertInfo: "Welkom op SURF Access. Via deze Self Service Portal kun je jouw Applicatie beschikbaar maken voor instellingen binnen het hoger onderwijs in Nederland.", + alertInfo: "Welkom op OpenConext Access. Via deze Self Service Portal kun je jouw Applicatie beschikbaar maken voor instellingen binnen het hoger onderwijs in Nederland.", applicationManagement: "Your apps", addFirstApplication: "Voeg je eerste Applicatie toe", addApplication: "Nieuwe Applicatie toevoegen", deleteConfirmation: "Are you sure you want to delete the Organization {{name}}?", catalog: { - terms: "Voorwaarden voor apps in de SURF catalogus", - fairUse: "Is je app voor een specifieke groep gebruikers (zoals één onderzoeksgroep)? Dan valt deze onder de Fair use gebruiksvoorwaarden.", - agreement: "Is je app bedoeld voor gebruik door hele onderwijsinstellingen? Dan teken je een SURF-aansluitovereenkomst.", + terms: "Voorwaarden voor apps in de OpenConext catalogus", + fairUse: "Is je app voor een specifieke groep gebruikers (zoals één onderzoeksgroep)? Dan valt deze onder de Fair use gebruiksvoorwaarden.", + agreement: "Is je app bedoeld voor gebruik door hele onderwijsinstellingen? Dan teken je een OpenConext-aansluitovereenkomst.", disclaimer: "Let op: Deze voorwaarden gelden alleen voor de productieomgeving, je kunt direct met de testomgeving koppelen.", - fairUseExternal: "Is je app voor een specifieke groep gebruikers (zoals één onderzoeksgroep)? Dan valt deze onder de Fair use gebruiksvoorwaarden.", - agreementExternal: "Is je app bedoeld voor gebruik door hele onderwijsinstellingen? Dan teken je een SURF-aansluitovereenkomst.", + fairUseExternal: "Is je app voor een specifieke groep gebruikers (zoals één onderzoeksgroep)? Dan valt deze onder de Fair use gebruiksvoorwaarden.", + agreementExternal: "Is je app bedoeld voor gebruik door hele onderwijsinstellingen? Dan teken je een OpenConext-aansluitovereenkomst.", disclaimerExternal: "Let op: Deze voorwaarden gelden alleen voor de productieomgeving, je kunt direct met de testomgeving koppelen." }, applications: "Applications", @@ -229,7 +225,7 @@ const en = { change_requests: "Change request", contract: "Contract", appteam: "Appteam", - welcome: "Welkom {{user}}. {{name}} is nog niet gekoppeld met SURF Access. Begin met een koppeling aan onze testomgeving.", + welcome: "Welkom {{user}}. {{name}} is nog niet gekoppeld met OpenConext Access. Begin met een koppeling aan onze testomgeving.", testSection: "Test", teamSection: "Team", duplicatedName: "A connection with name {{name}} already exists for this Application.", @@ -248,16 +244,16 @@ const en = { production: { name: "Production", connections: "Koppelingen met onze productieomgeving", - catalogue: "App informatie voor de SURF App catalogus", + catalogue: "App informatie voor de OpenConext App catalogus", access: "Toegang en zichtbaarheid", contract: "Contract", - disclaimer: "Een koppeling aan de productieomgeving van SURF Access heeft goedkeuring nodig van team SURF Access. Alle bovenstaande informatie is verplicht.", + disclaimer: "Een koppeling aan de productieomgeving van OpenConext Access heeft goedkeuring nodig van team OpenConext Access. Alle bovenstaande informatie is verplicht.", }, productionConnectionHint: "Maak een productiekoppeling aan. Om de applicatie te kunnen activeren, moet ook alle informatie over de dienst worden toegevoegd.", applicationInformationHint: "Voordat een productiekoppeling geactiveerd kan worden, moet alle informatie over de dienst zijn toegevoegd én het contract getekend.", productionActivationHint: "Vraag activatie van de propductiekoppeling aan voor {{name}}.", productionActivationAction: "Doe het direct", - productActivationPending: "De aanvraag voor activatie van uw productiekoppeling is ontvangen. SURF neemt binnen drie werkdagen contact met u op.", + productActivationPending: "De aanvraag voor activatie van uw productiekoppeling is ontvangen. OpenConext neemt binnen drie werkdagen contact met u op.", newConnection: "Nieuwe koppeling met de testomgeving", existingConnection: "Testkoppeling bewerken", newConnectionProd: "Nieuwe koppeling met de productieomgeving", @@ -267,15 +263,15 @@ const en = { informationProfile: "Informatieprofiel", pendingChanges: "Pending change requests", testIdP: "Test-IdP's", - visibility: "Zichtbaarheid in de SURF app catalogus", + visibility: "Zichtbaarheid in de OpenConext app catalogus", help: "Hulp nodig?", - callSurf: "Plan een call met SURF", + callOpenConext: "Plan een call met OpenConext", supportTicket: "Maak een support ticket", - mailToSurf: "mailto:surf@info.nl", + mailToOpenConext: "mailto:OpenConext@info.nl", connectionName: "Naam koppeling", connectionPlaceholder: "e.g. {{application}}-{{environment}}", protocol: "Protocol", - protocolTooltip: "When a connection is registered within SURFconext, it is no longer possible to change the protocol. If you want, you can delete this connection and create another with a different protocol.", + protocolTooltip: "When a connection is registered within OpenConextconext, it is no longer possible to change the protocol. If you want, you can delete this connection and create another with a different protocol.", clientID: "Client ID", clientIDPlaceHolder: "", oidc10_rp: "OIDC", @@ -348,7 +344,7 @@ const en = { //A null tooltip won't show open: "Your connection has unfinished sections. Please fill in all the required fields.", complete: null, - pending_prod: "Je productieverzoek ligt ter inzage bij SURF Access. Eén van onze medewerkers beoordeelt nu de configuratie en laat zo snel mogelijk weten of deze akkoord is. Na publicatie kunnen instellingen aan je applicatie koppelen.", + pending_prod: "Je productieverzoek ligt ter inzage bij OpenConext Access. Eén van onze medewerkers beoordeelt nu de configuratie en laat zo snel mogelijk weten of deze akkoord is. Na publicatie kunnen instellingen aan je applicatie koppelen.", prod_ready: "Je applicatie is klaar voor productie en instellingen kunnen aan je applicatie koppelen.", }, protocol: "Protocol", @@ -393,17 +389,17 @@ const en = { }, testIdPs: { info: "Kies met welke IdP’s je wilt testen of het federatief inloggen werkt.", - subTitle: "Test-IdP’s van SURF", + subTitle: "Test-IdP’s van OpenConext", identityProviders: [ { name: "SXS IdP", entityid: "http://mock-idp", - description: "Een test-IdP met fictieve gebruikersaccounts. De metadata vind je hier" + description: "Een test-IdP met fictieve gebruikersaccounts. De metadata vind je hier" }, { name: "SXS Dummy", - entityid: "https://idp.diy.surfconext.nl/saml2/idp/metadata.php", - description: "Een test-IdP waarmee je zelf attributen-sets kunt simuleren. De metadata vind je hier" + entityid: "https://idp.diy.OpenConextconext.nl/saml2/idp/metadata.php", + description: "Een test-IdP waarmee je zelf attributen-sets kunt simuleren. De metadata vind je hier" } ], institutionIdPs: "Test-IdP’s van instellingen", @@ -412,7 +408,7 @@ const en = { institution: "test IdP or institution IdP" }, visibilities: { - info: "Jouw app is straks zichtbaar in de SURF app catalogus. Instellingen of groepen die jouw applicatie willen gebruiken, kunnen deze zelf activeren of een koppeling aanvragen.", + info: "Jouw app is straks zichtbaar in de OpenConext app catalogus. Instellingen of groepen die jouw applicatie willen gebruiken, kunnen deze zelf activeren of een koppeling aanvragen.", disclaimer: "Let op: je kan de zichtbaarheid altijd later nog aanpassen", who: "1. Wie mogen jouw applicatie zien?", visible_to_all: "Alle organisaties", @@ -427,7 +423,7 @@ const en = { connectionOverview: { copy: "Kopieer de inloggegevens", disclaimer: "Het client secret wordt hieronder éénmaal weergegeven. Zorg ervoor dat je het nu kopieert, anders moet er een nieuw seceret aangevraagd worden.", - test: "Gebruik de volgende inloggegevens om verbinding te maken met de productieomgeving. Volg de testinstructies om te kijken of alles werkt.", + test: "Gebruik de volgende inloggegevens om verbinding te maken met de productieomgeving. Volg de testinstructies om te kijken of alles werkt.", discovery: "OpenID Connect Discovery", clientID: "Client ID", secret: "Client secret", @@ -442,10 +438,10 @@ const en = { }, connectionOverviewSAML: { title: "De SAML koppeling is gereed", - link: "Volg de testinstructies om te kijken of alles werkt." + link: "Volg de testinstructies om te kijken of alles werkt." }, appInfo: { - title: "App informatie voor de SURF App catalogus", + title: "App informatie voor de OpenConext App catalogus", label: "App informatie", sections: { logo: "Logo en beschrijving", @@ -470,7 +466,7 @@ const en = { productivity: "Productivity", recommended: "Recommended", repository: "Repository", - surf: "SURF", + OpenConext: "OpenConext", media_video: "Media / Video" }, targetGroup: "Ga door naar de doelgroep" @@ -505,16 +501,16 @@ const en = { }, privacy: { label: "Privacy & Security", - info: "Please fill out the questions below. We will share the answers with institutions connected to SURFconext. This way the institutions interested in your service quickly have an idea of your efforts regarding privacy and security.", + info: "Please fill out the questions below. We will share the answers with institutions connected to OpenConextconext. This way the institutions interested in your service quickly have an idea of your efforts regarding privacy and security.", answerIsRequired: "Answer to this privacy question is required" }, appOverview: { label: "De App informatie zijn compleet.", - info: "Zo verschijnt je app in de SURF App catalogus.", + info: "Zo verschijnt je app in de OpenConext App catalogus.", }, contractSection: { title: "Contract", - info: "Voor apps op SURF Access moet je een SURF-aansluitovereenkomst tekenen.", + info: "Voor apps op OpenConext Access moet je een OpenConext-aansluitovereenkomst tekenen.", notSigned: "Er is nog geen overeenkomst getekend.", signed: "Er is een overeenkomst getekend.", sign: "Teken de overeenkomst" @@ -672,7 +668,7 @@ const en = { }, institutions: { title: "Institutions", - subTitle: "Browse the institutions currently connected to SURF Access, categorized into education, research and affiliated institutions.", + subTitle: "Browse the institutions currently connected to OpenConext Access, categorized into education, research and affiliated institutions.", category: "Category", all: "All categories", other: "Other", @@ -680,7 +676,7 @@ const en = { }, applications: { title: "Applications", - subTitle: "Browse applications currently connected to SURF Access, categorized into categories. Some are connected directy via SURFconext, others via eduGAIN..", + subTitle: "Browse applications currently connected to OpenConext Access, categorized into categories. Some are connected directy via OpenConextconext, others via eduGAIN..", category: "Category", all: "All categories", allSources: "All federations", @@ -690,10 +686,10 @@ const en = { }, applicationDetail: { title: "Applications", - subTitle: "Browse applications currently connected to SURF Access, categorized into categories. Some are connected directy via SURFconext, others via eduGAIN..", + subTitle: "Browse applications currently connected to OpenConext Access, categorized into categories. Some are connected directy via OpenConextconext, others via eduGAIN..", back: "Terug", license: { - license_available_through_surfmarket: "Requires a license through SURFmarket", + license_available_through_OpenConextmarket: "Requires a license through OpenConextmarket", license_not_required: "Does not requires a license", license_required_by_service_provider: "Requires a license", }, @@ -701,7 +697,7 @@ const en = { attributesInfo: "The application needs to receive attributes to function correctly.", details: "Show details", privacy: "Privacy", - privacyInfo: "SURF asks suppliers to provide information about their GDPR (AVG) policies. For anything missing, please contact the supplier.", + privacyInfo: "OpenConext asks suppliers to provide information about their GDPR (AVG) policies. For anything missing, please contact the supplier.", quickLinks: "Quick links", website: "Website", loginPage: "Login page", @@ -710,17 +706,17 @@ const en = { registrationPolicy: "Registration policy", privacyStatement: "Privacy statement", contractual: "Contractual Base", - wiki: " See the wiki.", + wiki: " See the wiki.", noInformation: "No information supplied", contractualInfoOrganization: "(This application is offered by {{name}}.)", contractualBase: { - na: "No info on the contractual base is available: for any questions, please contact support@surfconext.nl.", - ao: "{{organisation}} has signed the SURFconext connection agreement.", - ix: "Application offered by SURFconext member institution.", + na: "No info on the contractual base is available: for any questions, please contact support@OpenConextconext.nl.", + ao: "{{organisation}} has signed the OpenConextconext connection agreement.", + ix: "Application offered by OpenConextconext member institution.", "r&s+coco": "eduGAIN application that has agreed to the Data Protection Code of Conduct and belongs to the Research & Scholarship entity category.", entree: "Member of the Kennisnet Entree-federation.", clarin: "Member of the Clarin research federation.", - none: "{{organisation}} refused to sign the SURFconext connection agreement.", + none: "{{organisation}} refused to sign the OpenConextconext connection agreement.", "edugain (community)": "Application offered through the international research and education community via eduGAIN." }, supportedEntityCategories: "Supported Entity Categories", @@ -733,7 +729,7 @@ const en = { }, none: "None", interfedSource: "Federation source", - registrationInfo: "This application provider is available in SURFconext through eduGAIN. " + + registrationInfo: "This application provider is available in OpenConextconext through eduGAIN. " + "The application provider is registered by the following federation: {{url}}.", noArp: "This application will receive all attirbutes that are released by the identity provider", noMotivation: "No motivation", @@ -742,21 +738,21 @@ const en = { arp: "Informatieprofiel", profile: "Profile", arpSources: { - eduid: "EduID Identity Provider", + MyConext: "MyConext Identity Provider", idp: "Your IdP", - invite: "SURF Invite", - manage: "SURF Manage", + invite: "OpenConext Invite", + manage: "OpenConext Manage", orcid: "ORCID organization", - sabrest: "SURF SAB", - voot: "SURF Memberships", + sabrest: "OpenConext SAB", + voot: "OpenConext Memberships", institution: "Your IdP" } }, connect: { title: "How to connect", - subTitle: "Connecting to SURF Access is not complicated. It requires a formal and a technical part.", + subTitle: "Connecting to OpenConext Access is not complicated. It requires a formal and a technical part.", formal: "Formal part", - formalInfo: "Applications on SURF Access are either provided by commercial entities or by SURF members for the benefit of their peers within the network. Our agreements vary based on the ownership of the application and the intended audience. For instance, if you intend to offer your service to a large number of users, you will need to enter into a formal contract with us. If your service is developed within your institution and is intended for a smaller research group, a shorter terms of service will do.", + formalInfo: "Applications on OpenConext Access are either provided by commercial entities or by OpenConext members for the benefit of their peers within the network. Our agreements vary based on the ownership of the application and the intended audience. For instance, if you intend to offer your service to a large number of users, you will need to enter into a formal contract with us. If your service is developed within your institution and is intended for a smaller research group, a shorter terms of service will do.", agreementTypes: "Agreement types", testIdps: "Test IdP’s", collaborations: "Collaborations", @@ -765,16 +761,16 @@ const en = { accessGroups: "access for diverse groups", accessStudent: "e.g. access for all students", commercial: "Commercial entity", - fairUse: "Fair Use Policy", - accessTOS: "SURF Access TOS", - connectionAgreement: "Connection agreement", - surfMember: "SURF member", + fairUse: "Fair Use Policy", + accessTOS: "OpenConext Access TOS", + connectionAgreement: "Connection agreement", + OpenConextMember: "OpenConext member", notNeeded: "not needed", - memberAgreement: "Member agreement", - surfMemberInfo: "including affiliated organisations", + memberAgreement: "Member agreement", + OpenConextMemberInfo: "including affiliated organisations", provisions: "With these provisions, we aim to ensure a smooth and secure integration for all parties involved.", technical: "Technical part", - technicalInfo: "Whenever a user logs in through SURF Access, their information flows from their home-institution (Identity provider), via SURF Access, directly to your service.", + technicalInfo: "Whenever a user logs in through OpenConext Access, their information flows from their home-institution (Identity provider), via OpenConext Access, directly to your service.", serviceInfo: "Your service can receive a variety of data, including:", serviceBullets: [ "Authentication Data: Proof that the user has been authenticated by the Identity Provider.", @@ -800,7 +796,7 @@ const en = { createdAtBy: "Change request made by {{name}} on {{date}}", show: "Show JSON visual diff", hide: "Hide JSON visual diff", - visibility: "Zichtbaarheid in de SURF app catalogus", + visibility: "Zichtbaarheid in de OpenConext app catalogus", connectOption: "Applicatie koppeling", claimsInIdToken: "Claims in ID token", redirectUrls: "Redirect URLs", @@ -859,10 +855,10 @@ const en = { }, footer: { terms: "Terms of Use", - termsLink: "https://support.surfconext.nl/terms-en", + termsLink: "https://support.OpenConextconext.nl/terms-en", privacy: "Privacy policy", - privacyLink: "https://support.surfconext.nl/privacy-en", - surfLink: "https://surf.nl", + privacyLink: "https://support.OpenConextconext.nl/privacy-en", + OpenConextLink: "https://OpenConext.nl", select_locale: "Select your preferred language" }, diff --git a/client/src/locale/nl.js b/client/src/locale/nl.js index 103638a..3da6c46 100644 --- a/client/src/locale/nl.js +++ b/client/src/locale/nl.js @@ -8,10 +8,10 @@ const nl = { }, landing: { header: { - title: "SURF Access", + title: "OpenConext Access", subTitle: "Enabling users in secondary vocational-, higher education and research to access multiple services with one account.", login: "Come on in", - sup: "EduID ServiceDesk is by invitation only.", + sup: "MyConext ServiceDesk is by invitation only.", logout: "Logout" }, tabs: { @@ -24,9 +24,9 @@ const nl = { applicationProviders: { title: "For application providers", info: [ - "Has an educational or research institution asked you to join SURF Access?", - "SURF Access centrally manages authentication, authorization, group management, and privacy/security agreements.", - "Connecting to our SURF Access is free and you wil start in a sandbox." + "Has an educational or research institution asked you to join OpenConext Access?", + "OpenConext Access centrally manages authentication, authorization, group management, and privacy/security agreements.", + "Connecting to our OpenConext Access is free and you wil start in a sandbox." ], connect: "How to connect" }, @@ -34,16 +34,16 @@ const nl = { title: "For institutions", info: [ "Do you want your students, staff and researchers to easily access multiple cloud services?", - "SURF Access offers 'Single Sign On'-access to a large and increasing number of them.", + "OpenConext Access offers 'Single Sign On'-access to a large and increasing number of them.", "It simplifies your work with a single integration instead of separate connections for each service." ], contact: "Contact us", - contactMail: "mailto:info@surfconext.nl" + contactMail: "mailto:info@OpenConextconext.nl" }, joining: { title: "Joining many to many", info: [ - "SURF Access securily connects 1M+ users to over 3000 (web)applications. SURF Access is a service from SURF.", + "OpenConext Access securily connects 1M+ users to over 3000 (web)applications. OpenConext Access is a service from OpenConext.", "Interested which institutions and applications are connected?" ], links: { @@ -60,7 +60,7 @@ const nl = { teams: "Teams" }, breadCrumb: { - access: "SURF Access", + access: "OpenConext Access", landing: "Search for your organization", applications: "Application maintenance", home: "Home" @@ -96,7 +96,7 @@ const nl = { } }, organizations: { - tooltip: "SURF beoordeelt je organisastie registratie. Je kunt apps registreren op onze testomgeving, voor toegang naar productie moet je ‘bevestigd’ zijn." + tooltip: "OpenConext beoordeelt je organisastie registratie. Je kunt apps registreren op onze testomgeving, voor toegang naar productie moet je ‘bevestigd’ zijn." }, userMenu: { switchOrganization: "Switch organization" @@ -115,10 +115,6 @@ const nl = { contentInfoTip: "Attributenset voor content providers:Persistent or Transient NameIDschacHomeOrganization" + "eduPersonAffiliationeduPersonScopedAffiliation", targetGroup: "Target group", - targetSURF: "Verschillende gebruikers die beheerd worden in een (onderzoeks)groep", - targetSURFInfo: "De gebruikers worden individueel uitgenodigd bij de groep.", - targetSRAM: "Studenten, medewerkers en externen uit één instellings IdP", - targetSRAMInfo: "Zij krijgen toegang omdat ze een kenmerk of rol hebben.", terms: "Fair Use terms", checks: { personal: "Mijn applicatie slaat persoonsgegevens veilig op", @@ -138,14 +134,14 @@ const nl = { deleteConfirmation: "Are you sure you want to delete the Application {{name}}?" }, organization: { - alertInfo: "Welkom op SURF Access. Via deze Self Service Portal kun je jouw Applicatie beschikbaar maken voor instellingen binnen het hoger onderwijs in Nederland.", + alertInfo: "Welkom op OpenConext Access. Via deze Self Service Portal kun je jouw Applicatie beschikbaar maken voor instellingen binnen het hoger onderwijs in Nederland.", addFirstApplication: "Voeg je eerste Applicatie toe", addApplication: "Nieuwe Applicatie toevoegen", deleteConfirmation: "Are you sure you want to delete the Organization {{name}}?", catalog: { - terms: "Voorwaarden voor apps in de SURF catalogus", - fairUse: "Is je app voor een specifieke groep gebruikers (zoals één onderzoeksgroep)? Dan valt deze onder de Fair use gebruiksvoorwaarden.", - agreement: "Is je app bedoeld voor gebruik door hele onderwijsinstellingen? Dan teken je een SURF-aansluitovereenkomst.", + terms: "Voorwaarden voor apps in de OpenConext catalogus", + fairUse: "Is je app voor een specifieke groep gebruikers (zoals één onderzoeksgroep)? Dan valt deze onder de Fair use gebruiksvoorwaarden.", + agreement: "Is je app bedoeld voor gebruik door hele onderwijsinstellingen? Dan teken je een OpenConext-aansluitovereenkomst.", disclaimer: "Let op: Deze voorwaarden gelden alleen voor de productieomgeving, je kunt direct met de testomgeving koppelen." }, applications: "Applications", @@ -158,7 +154,7 @@ const nl = { prod: "Production", application: "App information", contract: "Contract", - welcome: "Welkom {{user}}. {{name}} is nog niet gekoppeld met SURF Access. Begin met een koppeling aan onze testomgeving.", + welcome: "Welkom {{user}}. {{name}} is nog niet gekoppeld met OpenConext Access. Begin met een koppeling aan onze testomgeving.", testSection: "Test", teamSection: "Team", duplicatedName: "A connection with name {{name}} already exists for this Application.", @@ -177,16 +173,16 @@ const nl = { production: { name: "Production", connections: "Koppelingen met onze productieomgeving", - catalogue: "App informatie voor de SURF App catalogus", + catalogue: "App informatie voor de OpenConext App catalogus", access: "Toegang en zichtbaarheid", contract: "Contract", - disclaimer: "Een koppeling aan de productieomgeving van SURF Access heeft goedkeuring nodig van team SURF Access. Alle boventaande informatie is verplicht.", + disclaimer: "Een koppeling aan de productieomgeving van OpenConext Access heeft goedkeuring nodig van team OpenConext Access. Alle boventaande informatie is verplicht.", }, productionConnectionHint: "Maak een productiekoppeling aan. Om de applicatie te kunnen activeren, moet ook alle informatie over de dienst worden toegevoegd.", applicationInformationHint: "Voordat een productiekoppeling geactiveerd kan worden, moet alle informatie over de dienst zijn toegevoegd én het contract getekend.", productionActivationHint: "Vraag activatie van de propductiekoppeling aan.", productionActivationAction: "Doe het direct", - productActivationPending: "De aanvraag voor activatie van uw productiekoppeling is ontvangen. SURF neemt binnen drie werkdagen contact met u op.", + productActivationPending: "De aanvraag voor activatie van uw productiekoppeling is ontvangen. OpenConext neemt binnen drie werkdagen contact met u op.", newConnection: "Nieuwe koppeling met de testomgeving", existingConnection: "Testkoppeling bewerken", newConnectionProd: "Nieuwe koppeling met de productieomgeving", @@ -197,8 +193,8 @@ const nl = { testIdP: "Test-IdP's", visibility: "Visibility", help: "Hulp nodig?", - callSurf: "Plan een call met SURF", - mailToSurf: "mailto:surf@info.nl", + callOpenConext: "Plan een call met OpenConext", + mailToOpenConext: "mailto:OpenConext@info.nl", connectionName: "Naam koppeling", connectionPlaceholder: "e.g. {{application}}-{{environment}}", protocol: "Protocol", @@ -296,17 +292,17 @@ const nl = { }, testIdPs: { info: "Kies met welke IdP’s je wilt testen of het federatief inloggen werkt.", - subTitle: "Test-IdP’s van SURF", + subTitle: "Test-IdP’s van OpenConext", identityProviders: [ { name: "SXS IdP", entityid: "http://mock-idp", - description: "Een test-IdP met fictieve gebruikersaccounts. De metadata vind je hier" + description: "Een test-IdP met fictieve gebruikersaccounts. De metadata vind je hier" }, { name: "SXS Dummy", - entityid: "https://idp.diy.surfconext.nl/saml2/idp/metadata.php", - description: "Een test-IdP waarmee je zelf attributen-sets kunt simuleren. De metadata vind je hier" + entityid: "https://idp.diy.OpenConextconext.nl/saml2/idp/metadata.php", + description: "Een test-IdP waarmee je zelf attributen-sets kunt simuleren. De metadata vind je hier" } ], institutionIdPs: "Test-IdP’s van instellingen", @@ -315,7 +311,7 @@ const nl = { institution: "test IdP or institution IdP" }, visibilities: { - info: "Kies hoe je wilt dat deze koppeling zichtbaar is in de SURF App catalogus", + info: "Kies hoe je wilt dat deze koppeling zichtbaar is in de OpenConext App catalogus", disclaimer: "Let op: je kan de zichtbaarheid altijd later nog aanpassen", options: { "visible_to_all": "Visible for all users and institutions", @@ -328,7 +324,7 @@ const nl = { connectionOverview: { copy: "Kopieer de inloggegevens", disclaimer: "Het client secret wordt hieronder éénmaal weergegeven. Zorg ervoor dat je het nu kopieert, anders moet er een nieuw seceret aangevraagd worden.", - test: "Gebruik de volgende inloggegevens om verbinding te maken met de productieomgeving. Volg de testinstructies om te kijken of alles werkt.", + test: "Gebruik de volgende inloggegevens om verbinding te maken met de productieomgeving. Volg de testinstructies om te kijken of alles werkt.", discovery: "OpenID Connect Discovery", clientID: "Client ID", secret: "Client secret", @@ -342,7 +338,7 @@ const nl = { resetContinue: "I’ve copied the secret. Continue" }, appInfo: { - title: "App informatie voor de SURF App catalogus", + title: "App informatie voor de OpenConext App catalogus", label: "App informatie", sections: { logo: "Logo en beschrijving", @@ -369,7 +365,7 @@ const nl = { organization: "Organisatie van onderwijs/onderzoek", cooperation: "Samenwerken", video: "Videoplatform", - surf: "SURF" + OpenConext: "OpenConext" }, targetGroup: "Ga door naar de doelgroep" }, @@ -403,16 +399,16 @@ const nl = { }, privacy: { label: "Privacy & Security", - info: "Please fill out the questions below. We will share the answers with institutions connected to SURFconext. This way the institutions interested in your service quickly have an idea of your efforts regarding privacy and security.", + info: "Please fill out the questions below. We will share the answers with institutions connected to OpenConextconext. This way the institutions interested in your service quickly have an idea of your efforts regarding privacy and security.", answerIsRequired: "Answer to this privacy question is required" }, appOverview: { label: "De App informatie zijn compleet.", - info: "Zo verschijnt je app in de SURF App catalogus.", + info: "Zo verschijnt je app in de OpenConext App catalogus.", }, contractSection: { title: "Contract", - info: "Voor apps op SURF Access moet je een SURF-aansluitovereenkomst tekenen.", + info: "Voor apps op OpenConext Access moet je een OpenConext-aansluitovereenkomst tekenen.", notSigned: "Er is nog geen overeenkomst getekend.", signed: "Er is een overeenkomst getekend.", sign: "Teken de overeenkomst" @@ -456,10 +452,10 @@ const nl = { }, footer: { terms: "Terms of Use", - termsLink: "https://support.surfconext.nl/terms-en", + termsLink: "https://support.OpenConextconext.nl/terms-en", privacy: "Privacy policy", - privacyLink: "https://support.surfconext.nl/privacy-en", - surfLink: "https://surf.nl", + privacyLink: "https://support.OpenConextconext.nl/privacy-en", + OpenConextLink: "https://OpenConext.nl", select_locale: "Select your preferred language" }, diff --git a/flavors/SURF/client/src/locale/en.js b/flavors/SURF/client/src/locale/en.js new file mode 100644 index 0000000..8fc4641 --- /dev/null +++ b/flavors/SURF/client/src/locale/en.js @@ -0,0 +1,867 @@ +const en = { + code: "EN", + name: "English", + languages: { + language: "Language", + en: "English", + nl: "Dutch", + }, + landing: { + header: { + title: "SURF Access", + subTitle: "Enabling users in secondary vocational-, higher education and research to access multiple services with one account.", + login: "Sign in / sign up", + sup: "EduID ServiceDesk is by invitation only.", + logout: "Logout", + system: "System" + }, + loginInfo: { + title: "Inloggen / aanmelden", + subTitle: "je kunt op SURF Access inloggen met een bestaand instellingsaccount, of als je deze niet met een eduID. Kies hieronder je situatie", + commercial: { + title: "Je werkt bij een (commercieel) bedrijf", + info: [ + "Maken jullie zelf software die je wilt aanbieden in het onderwijsveld?", + "Dan moet je inloggen met eduID. Heb je nog geen account, geen zorgen, het aanmaken van een nieuwe account kan binnen 30 seconden" + ], + login: "Login met eduID" + }, + education: { + title: "Je werkt bij een instelling", + info: [ + "Ben je medewerker, student of onderzoeker bij een instelling die al is aangesloten op SURF, dan kan je direct inloggen met je instellingsaccount." + ], + login: "Login met je instellingsaccount" + } + + }, + tabs: { + home: "Home", + connect: "How to connect", + institutions: "All institutions", + applications: "All applications", + }, + applicationProviders: { + title: "For application providers", + info: [ + "Has an educational or research institution asked you to join SURF Access?", + "SURF Access centrally manages authentication, authorization, group management, and privacy/security agreements.", + "Connecting to our SURF Access is free and you wil start in a sandbox." + ], + connect: "How to connect" + }, + institutions: { + title: "For institutions", + info: [ + "Do you want your students, staff and researchers to easily access multiple cloud services?", + "SURF Access offers 'Single Sign On'-access to a large and increasing number of them.", + "It simplifies your work with a single integration instead of separate connections for each service." + ], + contact: "Contact us", + contactMail: "mailto:info@surfconext.nl" + }, + joining: { + title: "Joining many to many", + info: [ + "SURF Access securily connects 1M+ users to over 3000 (web)applications. SURF Access is a service from SURF.", + "Interested which institutions and applications are connected?" + ], + links: { + prefix: "Browse ", + institutions: "all {{nbr}} institutions", + or: " or ", + applications: "all {{nbr}} applications.", + } + } + }, + navigation: { + organizationMaintenance: "Organization maintenance", + catalogue: "SURF app catalogue", + yourApps: "Your apps", + allApps: "All apps", + users: "Team management", + home: "Home", + applications: "Applications", + teams: "Teams" + }, + breadCrumb: { + access: "Home", + landing: "Search for your organization", + applications: "Your apps", + team: "Team management", + joins: "Join Requests", + invitations: "Invitation", + home: "Home" + }, + welcome: { + greeting: "Welcome {{name}},", + info: "Kies hieronder of jouw organisatie al bestaat of voeg een nieuwe organisatie toe. Dit helpt ons om je aan de juiste omgeving te koppelen.", + subInfo: "Preferable use the name of the organization as registered at the KvK", + searchPlaceholder: "Search for organizations...", + organizationMembers: "{{memberCount}} {{user}} and {{applicationCount}} {{application}}. Request access.", + user: "user", + users: "users", + application: "application", + applications: "applications", + zeroState: "No organizations found", + register: "‘{{name}}’ registreren en doorgaan", + confirmation: "Are you sure you want to register a new organization called {{name}}?", + confirmationAfter: "Your organization is created and is pending approval, but you can continue to create applications. You will be contacted by mail within 3 working days. Your reference number of our internal ticketing system is {{jiraKey}}", + newOrganization: "New organization creaated", + flash: "Created organization {{name}}." + }, + userHome: { + greeting: "{{name}}", + nudgeLanding: "You are not a member of any organization.", + nudgeLandingLink: " You can request to join one or create your own.", + infoJoinRequest: "Just relax, your request to join the organization {{name}} is pending.", + backToLanding: "Go back to ", + backToLandingLink: " create your own organization.", + }, + tabs: { + users: "Users", + organizations: "Organizations", + organizationPendingApproval: "Pending approval organizations", + team: "My Team", + joins: "Join Requests", + invitations: "Invitations", + }, + joinRequest: { + info: "Je hebt geen toegang tot de omgeving van {{name}}. Je kunt toegang vragen aan de beheerder.", + optionalMessage: "Message (optional)", + optionalMessageInfo: "Message included in the join request send to the administrators", + optionalMessagePlaceHolder: "Please, please...", + requestAccess: "Request access", + duplicate: "There is already an outstanding request for you to join {{name}}.", + flash: "Your join request is sent to the admins of {{name}}.", + modal: { + title: "Join request is created", + success: "Your join request is sent to the admins of {{name}}. You will receive an email if the join request is accepted", + proceed: "Proceed" + } + }, + organizations: { + tooltip: "SURF beoordeelt je organisastie registratie. Je kunt apps registreren op onze testomgeving, voor toegang naar productie moet je ‘bevestigd’ zijn.", + tooltipApproved: "SURF heeft je organisastie registratie goedgekeurd. Je kunt apps registreren op onze productie omgevingn en productie status aanvragen.", + pendingApprovalTitle: "Organizations pending approval", + pending_approval: "Pending approval", + approved: "Approved", + disapproved: "Disapproved", + pending_approval_action: "Back to pending", + approved_action: "Approve", + disapproved_action: "Disapprove", + name: "Name", + schacHomeOrganization: "Schac home", + createdAt: "Created", + memberCount: "# Members", + applicationCount: "# Apps", + status: "Status", + searchPlaceHolder: "Search for organizations...", + confirmation: "Are you sure you want to change the status to {{status}} for organization {{name}}?", + flash: { + updated: "Organization {{name}} now has the status {{status}}", + deleted: "Organization {{name}} has been deleted", + } + }, + userMenu: { + switchOrganization: "Switch organization" + }, + application: { + new: "New Application", + edit: "Edit {{name}}", + name: "Name", + nameInfo: "Gebruik een naam die herkenbaar zal zijn voor instellingen", + type: "Type", + app: "Een Applicatie (tools, clouddiensten, utitilities etc...)", + content: "Content dienst (streaming media, educatieve content, e-books)", + contentAbbreviation: "Content", + contentInfoPre: "Content diensten ontvangen de ", + contentInfoLink: "minimale set", + contentInfoPost: " aan attributen.", + contentInfoTip: "Attributenset voor content providers:Persistent or Transient NameIDschacHomeOrganization" + + "eduPersonAffiliationeduPersonScopedAffiliation", + targetGroup: "Target group", + terms: "Fair Use terms", + checks: { + personal: "Mijn applicatie slaat persoonsgegevens veilig op", + duration: "Ik bewaar de persoonsgegevens niet langer dan nodig", + privacy: "Ik verstrek de persoonsgegevens niet aan derden", + safe: "Ik houd mijn applicatie veilig en beschikbaar", + support: "Ik ben bereikbaar bij vragen en problemen" + }, + checksInfo: { + //If the check translation is empty, then the toggle is not shown + personal: "", + duration: "", + privacy: "De persoonsgegevens worden niet aan derden verstrekt", + safe: "", + support: "Als er vragen of problemen zijn, dan zoek je het maar uit" + }, + flash: "Application {{name}} saved.", + deleteConfirmation: "Are you sure you want to delete the Application {{name}}?" + }, + organization: { + alertInfo: "Welkom op SURF Access. Via deze Self Service Portal kun je jouw Applicatie beschikbaar maken voor instellingen binnen het hoger onderwijs in Nederland.", + applicationManagement: "Your apps", + addFirstApplication: "Voeg je eerste Applicatie toe", + addApplication: "Nieuwe Applicatie toevoegen", + deleteConfirmation: "Are you sure you want to delete the Organization {{name}}?", + catalog: { + terms: "Voorwaarden voor apps in de SURF catalogus", + fairUse: "Is je app voor een specifieke groep gebruikers (zoals één onderzoeksgroep)? Dan valt deze onder de Fair use gebruiksvoorwaarden.", + agreement: "Is je app bedoeld voor gebruik door hele onderwijsinstellingen? Dan teken je een SURF-aansluitovereenkomst.", + disclaimer: "Let op: Deze voorwaarden gelden alleen voor de productieomgeving, je kunt direct met de testomgeving koppelen.", + fairUseExternal: "Is je app voor een specifieke groep gebruikers (zoals één onderzoeksgroep)? Dan valt deze onder de Fair use gebruiksvoorwaarden.", + agreementExternal: "Is je app bedoeld voor gebruik door hele onderwijsinstellingen? Dan teken je een SURF-aansluitovereenkomst.", + disclaimerExternal: "Let op: Deze voorwaarden gelden alleen voor de productieomgeving, je kunt direct met de testomgeving koppelen." + }, + applications: "Applications", + }, + connection: { + overview: "Overview", + testing: "Testing", + prod: "Production", + application: "App information", + change_requests: "Change request", + contract: "Contract", + appteam: "Appteam", + welcome: "Welkom {{user}}. {{name}} is nog niet gekoppeld met SURF Access. Begin met een koppeling aan onze testomgeving.", + testSection: "Test", + teamSection: "Team", + duplicatedName: "A connection with name {{name}} already exists for this Application.", + duplicateEntityID: "A connection with entityID {{entityID}} already exists", + test: { + name: "Test", + connections: "Koppelingen met onze testomgeving", + info: "Test of federatief inloggen werkt via onze testomgeving.", + + }, + team: { + name: "Teams", + info: "Geef teamleden of externen toegang tot deze applicatie space.", + members: "Teamleden voor beheer van deze applicatie" + }, + production: { + name: "Production", + connections: "Koppelingen met onze productieomgeving", + catalogue: "App informatie voor de SURF App catalogus", + access: "Toegang en zichtbaarheid", + contract: "Contract", + disclaimer: "Een koppeling aan de productieomgeving van SURF Access heeft goedkeuring nodig van team SURF Access. Alle bovenstaande informatie is verplicht.", + }, + productionConnectionHint: "Maak een productiekoppeling aan. Om de applicatie te kunnen activeren, moet ook alle informatie over de dienst worden toegevoegd.", + applicationInformationHint: "Voordat een productiekoppeling geactiveerd kan worden, moet alle informatie over de dienst zijn toegevoegd én het contract getekend.", + productionActivationHint: "Vraag activatie van de propductiekoppeling aan voor {{name}}.", + productionActivationAction: "Doe het direct", + productActivationPending: "De aanvraag voor activatie van uw productiekoppeling is ontvangen. SURF neemt binnen drie werkdagen contact met u op.", + newConnection: "Nieuwe koppeling met de testomgeving", + existingConnection: "Testkoppeling bewerken", + newConnectionProd: "Nieuwe koppeling met de productieomgeving", + existingConnectionProd: "Productiekoppeling bewerken", + copyConnection: "Kopieer info van andere koppeling", + technical: "Technische gegevens", + informationProfile: "Informatieprofiel", + pendingChanges: "Pending change requests", + testIdP: "Test-IdP's", + visibility: "Zichtbaarheid in de SURF app catalogus", + help: "Hulp nodig?", + callOpenConext: "Plan een call met SURF", + supportTicket: "Maak een support ticket", + mailToOpenConext: "mailto:surf@info.nl", + connectionName: "Naam koppeling", + connectionPlaceholder: "e.g. {{application}}-{{environment}}", + protocol: "Protocol", + protocolTooltip: "When a connection is registered within SURFconext, it is no longer possible to change the protocol. If you want, you can delete this connection and create another with a different protocol.", + clientID: "Client ID", + clientIDPlaceHolder: "", + oidc10_rp: "OIDC", + saml20_sp: "SAML", + grantType: "OAuth Grant type", + grantTypes: "OAuth Grant types", + authorization_code: "Authorization Code", + refresh_token: "Refresh tokens", + device_code: "Device Code", + pkce: "PKCE", + pkceTooltip: "PKCE (Proof Key for Code Exchange) enhances the security of the authorization code flow by preventing authorization code interception. It’s especially important for public clients like mobile or single-page apps", + optional: "Optional", + required: "Required (public client)", + refreshTokenValidity: "Refresh token validity in seconds", + refreshTokenMax: "Maximum validity is {{max}} seconds", + redirectUrl: "Redirect URL", + redirectUrls: "Redirect URLs", + redirectUrlsPlaceholder: "Redirect URL, for example https://redirect.com", + addRedirectUrl: "+ Redirect URL", + sslGrade: "SSL Grade (min. B)", + sslGradeTooltip: "Ensure the SSL/TLS certificate meets or exceeds grade B", + claimsInIdToken: "Claims", + claimsInIdTokenTooltip: "Receive all claims directly in the ID Token", + configuration: "Congifuratiegegevens", + import: "Metadata importeren", + entityID: "Entity ID", + entityIDPlaceHolder: "https://entityID.com", + acsLocation: "ACS location", + acsLocations: "ACS location(s)", + addACSLocation: "+ Add ASC location", + save: "Opslaan", + saveAndNext: "Opslaan en volgende", + requiresChangeRequest: "Request change", + deleteConfirmation: "Are you sure you want to delete this connection?", + metadata: { + how: "Hoe wil je de metadata importeren?", + url: "De URL van een metadata-bestand opgeven", + file: "Een metadata-bestand uploaden", + paste: "De metadata in een tekstveld plakken", + urlMetaData: "URL metadata bestand", + import: "Metadata importeren", + chooseFile: "Choose file", + doPaste: "Plak hier de metadata", + parsed: "The metadata has successfully been imported", + errorParsed: "Error in parsing the metadata" + }, + flash: { + created: "Created connection {{name}}", + updated: "Updated connection {{name}}", + deleted: "Deleted connection {{name}}", + copied: "Copied connection data from {{name}}" + }, + connections: { + titleProd: "Koppelingen met de productieomgeving", + titleTest: "Koppelingen met de testomgeving", + name: "Name", + created: "Added at", + updatedAt: "Updated at", + status: "Status", + open: "In progress", + complete: "Completed", + in_progress: "In progress", + pending_prod: "Pending approval", + prod_ready: "Live", + ready_for_prod: "Ready for prod", + open_change_requests: "Pending changes", + multiple_connections: "Multiple connections", + no_connections: "No production connections", + tooltips: { + //A null tooltip won't show + open: "Your connection has unfinished sections. Please fill in all the required fields.", + complete: null, + pending_prod: "Je productieverzoek ligt ter inzage bij SURF Access. Eén van onze medewerkers beoordeelt nu de configuratie en laat zo snel mogelijk weten of deze akkoord is. Na publicatie kunnen instellingen aan je applicatie koppelen.", + prod_ready: "Je applicatie is klaar voor productie en instellingen kunnen aan je applicatie koppelen.", + }, + protocol: "Protocol", + details: "Details", + requestProductionStatus: "Vraag productiestatus aan", + requestProductionStatusConfirmation: "Are you sure you want to request production status for {{name}}", + requestProductionStatusPostInfo: "Your request is sent and you will be contacted by mail within 3 working days. Your reference number of our internal ticketing system is {{jiraKey}}" + }, + informational: { + disclaimer: "Verwerk alleen informatie die strikt noodzakelijk is voor het functioneren van je applicatie.", + contentAppAlert: "Een content application ontvangt de volgend informatie", + profiles: { + anonymous: { + name: "Anoniem", + title: "Het meest privacyvriendelijk", + info: "Deze bundel is speciaal bedoeld voor als je zeer privacy bewust wilt werken. Je ontvangt een transient NameID, dit betekent dat de gebruiker elke keer als hij bij de dienst inlogt een nieuw etcetera." + }, + pseudonymized: { + name: "Pseudonymized", + title: "Privacy vriendelijk inclusief betrouwbaarheid", + info: "Deze bundel is speciaal bedoeld voor toelichting. Je ontvangt een persistent NameID, dit betekent dat de toelichting gebruiker elke keer als hij bij de dienst inlogt etcetera." + }, + personalized: { + name: "Gepersonaliseerd", + title: "Persoonlijke gegevens ter identificatie", + info: "" + }, + uidOnly: { + name: "UID only", + title: "Voor instellingen die intern alle persoonsinformatie aanvullen", + info: "" + } + }, + attributes: "Je ontvangt de volgende attributen (we tonen voorbeeldwaarden)", + additionalAttributes: "Ik heb additionele attributen nodig", + availableAttributes: "De volgende attributen zijn mogelijk bij deze bundel", + profileMotivation: "Motivatie voor de noodzaak van dit profiel", + profileMotivationPlaceholder: "Beschrijf waarom je dit informatieprofiel nodig hebt", + profileMotivationDisclaimer: "Deze tekst wordt getoond aan eindgebruikers die willen aansluiten bij je dienst", + motivation: "Motivation", + motivationPlaceholder: "Attribute is used to ..." + }, + testIdPs: { + info: "Kies met welke IdP’s je wilt testen of het federatief inloggen werkt.", + subTitle: "Test-IdP’s van SURF", + identityProviders: [ + { + name: "SXS IdP", + entityid: "http://mock-idp", + description: "Een test-IdP met fictieve gebruikersaccounts. De metadata vind je hier" + }, + { + name: "SXS Dummy", + entityid: "https://idp.diy.surfconext.nl/saml2/idp/metadata.php", + description: "Een test-IdP waarmee je zelf attributen-sets kunt simuleren. De metadata vind je hier" + } + ], + institutionIdPs: "Test-IdP’s van instellingen", + institutionIdPsInfo: "Je kunt ook testen met accounts en data van instellingen. Let wel op: Je moet zelf contact opnemen voor de test-inloggegevens voor hun test-IdP’s.", + placeholder: "Selecteer één of meerdere instellingen", + institution: "test IdP or institution IdP" + }, + visibilities: { + info: "Jouw app is straks zichtbaar in de SURF app catalogus. Instellingen of groepen die jouw applicatie willen gebruiken, kunnen deze zelf activeren of een koppeling aanvragen.", + disclaimer: "Let op: je kan de zichtbaarheid altijd later nog aanpassen", + who: "1. Wie mogen jouw applicatie zien?", + visible_to_all: "Alle organisaties", + visible_to_none: "Nog niemand (app is nog niet zichtbaar in de Appstore)", + connect: "2. Kan men direct met de applicatie koppelen?", + connect_with_interaction: "Nee, een koppeling moet worden aangevraagd", + connect_without_interaction_with_email: "Yes, but with a notification email", + connect_without_interaction_without_email: "Yes, without notification email", + placeholder: "Selecteer één of meerdere instellingen", + institution: "Institution IdP" + }, + connectionOverview: { + copy: "Kopieer de inloggegevens", + disclaimer: "Het client secret wordt hieronder éénmaal weergegeven. Zorg ervoor dat je het nu kopieert, anders moet er een nieuw seceret aangevraagd worden.", + test: "Gebruik de volgende inloggegevens om verbinding te maken met de productieomgeving. Volg de testinstructies om te kijken of alles werkt.", + discovery: "OpenID Connect Discovery", + clientID: "Client ID", + secret: "Client secret", + authentication: "Authenticatie", + secretReset: "For security reasons your current secret can not be displayed.", + secretResetLink: "Reset your secret when needed.", + secretResetDisclaimer: "Let op. Regenerating the secret will break your current connection.", + secretResetTitle: "Reset your secret", + secretResetNew: "New secret", + reset: "Reset my secret", + resetContinue: "I’ve copied the secret. Continue" + }, + connectionOverviewSAML: { + title: "De SAML koppeling is gereed", + link: "Volg de testinstructies om te kijken of alles werkt." + }, + appInfo: { + title: "App informatie voor de SURF App catalogus", + label: "App informatie", + sections: { + logo: "Logo en beschrijving", + contact: "Contactgegevens", + privacy: "Privacy & Security ", + overview: "Overview" + }, + logoUrl: "Logo", + descriptionEn: "Beschrijving in het Engels", + descriptionNl: "Beschrijving in het Nederlands", + webSite: "Website", + tags: "Tag je applicatie", + tagPlaceholder: "Maximaal 3 tags", + tagInfo: "In de appstore kunnen instellingen hierop filteren", + tagsAvailable: { + business_management: "Business management", + collaboration: "Collaboration", + content_library: "Content/ Library", + learn_study: "Learning/ Study", + education_logistics: "Education / Logistics", + privacy_security: "Privacy / Security", + productivity: "Productivity", + recommended: "Recommended", + repository: "Repository", + surf: "SURF", + media_video: "Media / Video" + }, + targetGroup: "Ga door naar de doelgroep" + }, + logo: { + name: "logo", + add: "Add a logo", + edit: "Change logo", + imageToLarge: "Image is larger then 2MB.", + confirm: "Set new logo image", + header: "Crop your new logo image", + disclaimers: [ + "png, jpg, svg or gif", + "min 100 * 100 pixels", + "max 2MB.", + ] + }, + contacts: { + label: "Contactgegevens", + info: "Gebruik zoveel mogelijk functionele adressen in plaats van persoonlijke.", + name: "name", + administrative: "Administratief contact", + administrativeTooltip: "Administratief contact Tooltip", + administrativePlaceholder: "e.g. admin@{{name}}.nl", + emailOrWebsite: "Email-adres of website", + technical: "Technisch contact (anders dan administratief)", + technicalTooltip: "Technical contact Tooltip", + technicalPlaceholder: "e.g. technical@{{name}}.nl", + support: "Support contact (eindgebruikers zien dit)", + supportTooltip: "Support contact Tooltip", + supportPlaceholder: "e.g. support@{{name}}.nl", + }, + privacy: { + label: "Privacy & Security", + info: "Please fill out the questions below. We will share the answers with institutions connected to SURFconext. This way the institutions interested in your service quickly have an idea of your efforts regarding privacy and security.", + answerIsRequired: "Answer to this privacy question is required" + }, + appOverview: { + label: "De App informatie zijn compleet.", + info: "Zo verschijnt je app in de SURF App catalogus.", + }, + contractSection: { + title: "Contract", + info: "Voor apps op SURF Access moet je een SURF-aansluitovereenkomst tekenen.", + notSigned: "Er is nog geen overeenkomst getekend.", + signed: "Er is een overeenkomst getekend.", + sign: "Teken de overeenkomst" + } + }, + testing: { + newConnection: "New connection", + added: "Added at", + status: "Status", + protocol: "Protocol", + details: "Details", + zeroState: "Application {{name}} has no {{type}} connections yet.", + production: "production", + test: "test" + }, + confirmationDialog: { + title: "Confirm", + error: "Error", + subTitle: "This action requires a confirmation", + subTitleError: "An error has occurred", + confirm: "Confirm", + ok: "Ok", + cancel: "Cancel", + }, + userManagement: { + title: "Gebruikersbeheer" + }, + teamManagement: { + nameEmail: "Name & Email", + applicationMemberships: "Member of ApplicationTeams", + active: "Active since", + role: "Role", + maintain: "Maintain the {{name}} team", + searchPlaceHolder: "Search for members", + new: "Invite team member", + deleteConfirmation: "Are you sure you want to remove the organization membership of {{name}}?", + deleteDemotion: "Are you sure you don't want to be admin anymore? This can not be reverted", + flash: { + deleted: "The organization membership of {{name}} has been removed", + updated: "The organization membership of {{name}} has been updated" + }, + makeAdmin: "Make admin", + makeMember: "Make member", + makeGuest: "Make guest", + explanations: { + title: "Toelichting SXS rollen", + admin: "Admin", + adminRights: "Admins kunnen alle functies van SXS bedienen en members en guests beheren.", + member: "Member", + memberRights: "Members horen bij de organsatie en mogen applicatie beheren en applicatie gebruikers uitnodigen.", + guest: "Guest", + guestRights: "Gasten zijn gebruikers die niet bij de organisatie horen maar externen die betrokken zijn om bepaalde applicaties te beheren." + } + }, + joinRequestManagement: { + nameEmail: "Name & Email", + message: "Personal message", + createdAt: "Created at", + maintain: "Maintain the {{name}} join requests", + zeroState: "There are no outstanding join requests for {{name}}", + searchPlaceHolder: "Search for join requests", + approveConfirmation: "Are you sure you want to approve the organization join request of {{name}}?", + denialConfirmation: "Are you sure you want to deny the organization join request of {{name}}?", + flash: { + approved: "The organization membership of {{name}} has been created.", + approveAll: "The organization memberships habe been created.", + denied: "The join request of {{name}} has been denied." + }, + deny: "Deny", + approve: "Approve", + approveAll: "Approve all", + approveAllConfirmation: "Are you sure you want to approve all the organization join requests?" + }, + invitationsManagement: { + email: "Email", + active: "Active since", + role: "Role", + createdAt: "Send at", + expiryDate: "Expires on", + inviter: "Inviter", + maintain: "Open invitations", + searchPlaceHolder: "Search for members", + zeroState: "There are no outstanding invitations for {{name}}", + new: "Invite team member", + deleteAll: "Delete all", + deleteConfirmation: "Are you sure you want to revoke the invitation for {{email}}?", + deleteAllConfirmation: "Are you sure you want to revoke all of the invitations of {{name}}?", + flashDeleteAll: "All invitations have been deleted", + flashDelete: "Invitations have been revoked", + resend: "Resend", + revoke: "Revoke", + resendConfirmation: "Are you sure you want to resend the invitation for {{email}}?", + flashReminderSent: "Reminder mail has been sent" + }, + appTeamManagement: { + name: "Name", + role: "Role", + createdAt: "Member since", + maintain: "Applicatieteam", + searchPlaceHolder: "Search for members", + zeroState: "There are no application memberships for {{name}} yet", + new: "Invite new user", + addPlaceHolder: "Add existing user", + remove: "Remove from appteam", + deleteConfirmation: "Are you sure you want to delete the application role for {{name}}?", + organizationMembersPre: "Je kunt ", + organizationMembersLink: "organisatiegebruikers", + organizationMembersPost: " toevoegen aan dit applicatieteam. ", + flashCreated: "Created application membership for {{name}}", + createdBy: "Created by {{name}} on {{date}}" + }, + roles: { + admin: "Admin", + member: "Member", + guest: "Guest", + all: "Roles - all" + }, + impersonate: { + exit: "Stop impersonating", + impersonator: "You are impersonating {{name}}", + impersonatorTooltip: "You are really {{impersonator}}, but you are impersonating {{currentUser}}.", + flash: { + startedImpersonation: "You now impersonate {{name}}.", + clearedImpersonation: "Cleared your impersonation. You are you again." + }, + }, + users: { + name_email: "Name & Email", + schacHomeOrganization: "Organization", + createdAt: "Active since", + lastActivity: "Last activity", + searchPlaceHolder: "Search users...", + impersonate: "Impersonate user {{name}}", + you: "You" + }, + invitation: { + title: "New invitation for {{name}} membership", + invitees: "Invitees", + intendedAuthority: "Rol", + message: "Personal note", + messagePlaceholder: "Add an optional personal note to your invitation", + inviteesPlaceholder: "Invitee email addresses", + invite: "Invite", + invalidEmails: "Invalid email addresses removed: {{emails}}.", + requiredEmail: "At least one email is required for an invitation", + intendedAuthorityTooltip: "The authority determines the rights the invitee will be granted on accepting the invitation", + inviteesTooltip: "Add email addresses separated by comma, space or semi-colon or on seperate lines. You can also paste a csv file with line-separated email addresses.", + applications: "Applications", + applicationsPlaceHolder: "Find and add application access for this invitation", + applicationsTooltip: "You can already add applications to this invitation. The invitees will be granted read and write access to the applications", + languageTooltip: "Choose the language of the invitation mail", + createFlash: "Invitations are created and sent to the invitees", + acceptedFlash: "Invitation is accepted and you are now a member of the {{name}} organization", + accept: "{{inviter}} has invited you to join organization {{name}}. Press proceed to accept the invitation and checkout the organization", + }, + institutions: { + title: "Institutions", + subTitle: "Browse the institutions currently connected to SURF Access, categorized into education, research and affiliated institutions.", + category: "Category", + all: "All categories", + other: "Other", + searchPlaceHolder: "Search institutions..." + }, + applications: { + title: "Applications", + subTitle: "Browse applications currently connected to SURF Access, categorized into categories. Some are connected directy via SURFconext, others via eduGAIN..", + category: "Category", + all: "All categories", + allSources: "All federations", + other: "-", + searchPlaceHolder: "Search applications...", + recent: "Recently added applications" + }, + applicationDetail: { + title: "Applications", + subTitle: "Browse applications currently connected to SURF Access, categorized into categories. Some are connected directy via SURFconext, others via eduGAIN..", + back: "Terug", + license: { + license_available_through_surfmarket: "Requires a license through SURFmarket", + license_not_required: "Does not requires a license", + license_required_by_service_provider: "Requires a license", + }, + attributes: "Attributes", + attributesInfo: "The application needs to receive attributes to function correctly.", + details: "Show details", + privacy: "Privacy", + privacyInfo: "SURF asks suppliers to provide information about their GDPR (AVG) policies. For anything missing, please contact the supplier.", + quickLinks: "Quick links", + website: "Website", + loginPage: "Login page", + support: "Support", + terms: "Terms & conditions", + registrationPolicy: "Registration policy", + privacyStatement: "Privacy statement", + contractual: "Contractual Base", + wiki: " See the wiki.", + noInformation: "No information supplied", + contractualInfoOrganization: "(This application is offered by {{name}}.)", + contractualBase: { + na: "No info on the contractual base is available: for any questions, please contact support@surfconext.nl.", + ao: "{{organisation}} has signed the SURFconext connection agreement.", + ix: "Application offered by SURFconext member institution.", + "r&s+coco": "eduGAIN application that has agreed to the Data Protection Code of Conduct and belongs to the Research & Scholarship entity category.", + entree: "Member of the Kennisnet Entree-federation.", + clarin: "Member of the Clarin research federation.", + none: "{{organisation}} refused to sign the SURFconext connection agreement.", + "edugain (community)": "Application offered through the international research and education community via eduGAIN." + }, + supportedEntityCategories: "Supported Entity Categories", + entityCategory: { + "http://wwwgeantnet/uri/dataprotection-code-of-conduct/v1": "GÉANT Data Protection Code of Conduct", + "https://refedsorg/category/code-of-conduct/v2": "REFEDS Data Protection Code of Conduct v2", + "http://refedsorg/category/research-and-scholarship": "Research and Scholarship", + "http://clarineu/category/clarin-member": "Clarin member", + "http://refedsorg/category/hide-from-discovery": "Hide from discovery" + }, + none: "None", + interfedSource: "Federation source", + registrationInfo: "This application provider is available in SURFconext through eduGAIN. " + + "The application provider is registered by the following federation: {{url}}.", + noArp: "This application will receive all attirbutes that are released by the identity provider", + noMotivation: "No motivation", + noPrivacyInfo: "No information supplied", + source: "Source: ", + arp: "Informatieprofiel", + profile: "Profile", + arpSources: { + eduid: "EduID Identity Provider", + idp: "Your IdP", + invite: "SURF Invite", + manage: "SURF Manage", + orcid: "ORCID organization", + sabrest: "SURF SAB", + voot: "SURF Memberships", + institution: "Your IdP" + } + }, + connect: { + title: "How to connect", + subTitle: "Connecting to SURF Access is not complicated. It requires a formal and a technical part.", + formal: "Formal part", + formalInfo: "Applications on SURF Access are either provided by commercial entities or by SURF members for the benefit of their peers within the network. Our agreements vary based on the ownership of the application and the intended audience. For instance, if you intend to offer your service to a large number of users, you will need to enter into a formal contract with us. If your service is developed within your institution and is intended for a smaller research group, a shorter terms of service will do.", + agreementTypes: "Agreement types", + testIdps: "Test IdP’s", + collaborations: "Collaborations", + enterprises: "Enterprises", + accessTestIdps: "access for test IdP’s", + accessGroups: "access for diverse groups", + accessStudent: "e.g. access for all students", + commercial: "Commercial entity", + fairUse: "Fair Use Policy", + accessTOS: "SURF Access TOS", + connectionAgreement: "Connection agreement", + OpenConextMember: "SURF member", + notNeeded: "not needed", + memberAgreement: "Member agreement", + OpenConextMemberInfo: "including affiliated organisations", + provisions: "With these provisions, we aim to ensure a smooth and secure integration for all parties involved.", + technical: "Technical part", + technicalInfo: "Whenever a user logs in through SURF Access, their information flows from their home-institution (Identity provider), via SURF Access, directly to your service.", + serviceInfo: "Your service can receive a variety of data, including:", + serviceBullets: [ + "Authentication Data: Proof that the user has been authenticated by the Identity Provider.", + "Authorisation Information: Details necessary for making authorisation decisions within your service.", + "Group Membership Information: Data about a user’s group memberships.", + "Additional User Data: Any other data relevant to the service you provide." + ], + samlOidc: "SAML & OpenID Connect", + samlOidcInfo: "We use these open standards as they are used in most countries and many sectors.", + attributes: "Attributes and claims", + attributesInfo: "Learn more about use these open standards as they are used in most countries and many sectors.", + connect: "Connect your application now" + }, + changeRequests: { + title: "Pending change request(s)", + info1: "De volgende change requests staan open. Je kunt nog steeds wijzigingen aanbrengen.", + info2: "Let op! In de andere tabs zie je dus de oude informatie staan, informatie waar een change request voor actief is, is herkenbaar aan het waarschuwings icoon", + changes: "Changes", + open: "Pending approval", + revoke: "Revoke", + revokeConfirmation: "Are you sure you want to revoke this change request?", + revoked: "Change request has been revoked", + createdAtBy: "Change request made by {{name}} on {{date}}", + show: "Show JSON visual diff", + hide: "Hide JSON visual diff", + visibility: "Zichtbaarheid in de SURF app catalogus", + connectOption: "Applicatie koppeling", + claimsInIdToken: "Claims in ID token", + redirectUrls: "Redirect URLs", + grantTypes: "OAuth Grant types", + name: "Connection name", + arp: "Information profile", + profile: "profile", + attributes: "attribute", + motivation: "motivation", + refreshTokenValidity: "Refresh token validity in seconds", + visible_to_all: "Alle organisaties", + visible_to_none: "Nog niemand (app is nog niet zichtbaar in de Appstore)", + connect_with_interaction: "Nee, een koppeling moet worden aangevraagd", + connect_without_interaction_with_email: "Yes, but with a notification email", + connect_without_interaction_without_email: "Yes, without notification email", + refresh_token: "Refresh token", + "urn:ietf:params:oauth:grant-type:device_code": "Device code", + authorization_code: "Authorization code", + actions: { + added: "Added", + removed: "Removed", + changed: "Changed", + array_added: "Added", + array_removed: "Removed", + array_changed: "Changed", + oldValue: "Old value", + newValue: "New value" + } + }, + forms: { + cancel: "Cancel", + submit: "Submit", + sure: "I'm sure", + edit: "Edit", + accept: "Accept", + proceed: "Proceed", + delete: "Delete", + back: "Back", + and: "and", + required: "{{name}} is required", + requiredOne: "At least one {{name}} is required", + error: "An unexpected error occurred", + backToConnections: "Back to connections", + backToOverview: "Back to overview", + overview: "Naar overzicht", + invalidURL: "{{name}} is not a valid URL", + invalidEmailURL: "{{name}} is not a valid URL or valid email", + moreLabel: "Show me more", + lessLabel: "Show me less", + you: "You", + copied: "Copied" + }, + tooltips: { + userIcon: "User {[name}} is created on {{createdAt}} and was last seen at {{lastActivity}}", + organizationsIcon: "Organization {{name}} is created on {{createdAt}} and has the status {{status}}", + }, + footer: { + terms: "Terms of Use", + termsLink: "https://support.surfconext.nl/terms-en", + privacy: "Privacy policy", + privacyLink: "https://support.surfconext.nl/privacy-en", + OpenConextLink: "https://openconext.org", + select_locale: "Select your preferred language" + }, + +} + +export default en; diff --git a/flavors/SURF/client/src/locale/nl.js b/flavors/SURF/client/src/locale/nl.js new file mode 100644 index 0000000..f920697 --- /dev/null +++ b/flavors/SURF/client/src/locale/nl.js @@ -0,0 +1,464 @@ +const nl = { + code: "NL", + name: "Nederlands", + languages: { + language: "Language", + en: "English", + nl: "Dutch", + }, + landing: { + header: { + title: "SURF Access", + subTitle: "Enabling users in secondary vocational-, higher education and research to access multiple services with one account.", + login: "Come on in", + sup: "EduID ServiceDesk is by invitation only.", + logout: "Logout" + }, + tabs: { + home: "Home", + connect: "How to connect", + institutions: "All institutions", + applications: "All applications", + + }, + applicationProviders: { + title: "For application providers", + info: [ + "Has an educational or research institution asked you to join SURF Access?", + "SURF Access centrally manages authentication, authorization, group management, and privacy/security agreements.", + "Connecting to our SURF Access is free and you wil start in a sandbox." + ], + connect: "How to connect" + }, + institutions: { + title: "For institutions", + info: [ + "Do you want your students, staff and researchers to easily access multiple cloud services?", + "SURF Access offers 'Single Sign On'-access to a large and increasing number of them.", + "It simplifies your work with a single integration instead of separate connections for each service." + ], + contact: "Contact us", + contactMail: "mailto:info@surfconext.nl" + }, + joining: { + title: "Joining many to many", + info: [ + "SURF Access securily connects 1M+ users to over 3000 (web)applications. SURF Access is a service from SURF.", + "Interested which institutions and applications are connected?" + ], + links: { + prefix: "Browse ", + institutions: "all {{nbr}} institutions", + or: " or ", + applications: "all {{nbr}} applications.", + } + } + }, + navigation: { + home: "Home", + applications: "Applications", + teams: "Teams" + }, + breadCrumb: { + access: "SURF Access", + landing: "Search for your organization", + applications: "Application maintenance", + home: "Home" + }, + welcome: { + greeting: "Welcome {{name}}", + info: "Kies hieronder of jouw organisatie al bestaat of voeg een nieuwe organisatie toe. Dit helpt ons om je aan de juiste omgeving te koppelen.", + searchPlaceholder: "Search for organizations...", + organizationMembers: "{{memberCount}} {{user}} and {{applicationCount}} {{application}}. Request access.", + user: "user", + users: "users", + application: "application", + applications: "applications", + zeroState: "No organizations found", + register: "‘{{name}}’ registreren en doorgaan", + flash: "Created organization {{name}}." + }, + userHome: { + greeting: "{{name}}", + nudgeLanding: "You are not a member of any organization.", + nudgeLandingLink: " You can request to join one.", + infoJoinRequest: "Just relax, your request to join the organization {{name}} is pending." + }, + joinRequest: { + info: "Je hebt geen toegang tot de omgeving van {{name}}. Je kunt toegang vragen aan de beheerder.", + requestAccess: "Request access", + duplicate: "There is already an outstanding request for you to join {{name}}.", + flash: "Your join request is sent to the admins of {{name}}.", + modal: { + title: "Join request is created", + success: "Your join request is sent to the admins of {{name}}. You will receive an email if the join request is accepted", + proceed: "Proceed" + } + }, + organizations: { + tooltip: "SURF beoordeelt je organisastie registratie. Je kunt apps registreren op onze testomgeving, voor toegang naar productie moet je ‘bevestigd’ zijn." + }, + userMenu: { + switchOrganization: "Switch organization" + }, + application: { + new: "New Application", + edit: "Edit {{name}}", + name: "Name", + nameInfo: "Gebruik een naam die herkenbaar zal zijn voor instellingen", + type: "Type", + app: "Een Applicatie (tools, clouddiensten, utitilities etc...)", + content: "Content dienst (streaming media, educatieve content, e-books)", + contentInfoPre: "Content diensten ontvangen de ", + contentInfoLink: "minimale set", + contentInfoPost: " aan attributen.", + contentInfoTip: "Attributenset voor content providers:Persistent or Transient NameIDschacHomeOrganization" + + "eduPersonAffiliationeduPersonScopedAffiliation", + targetGroup: "Target group", + terms: "Fair Use terms", + checks: { + personal: "Mijn applicatie slaat persoonsgegevens veilig op", + duration: "Ik bewaar de persoonsgegevens niet langer dan nodig", + privacy: "Ik verstrek de persoonsgegevens niet aan derden", + safe: "Ik houd mijn applicatie veilig en beschikbaar", + support: "Ik ben bereikbaar bij vragen en problemen" + }, + checksInfo: { + personal: "De persoonsgegevens worden op een beveiligde manier opgeslagen.", + duration: "De persoonsgegevens worden echt niet langer dan nodig opgeslagen", + privacy: "De persoonsgegevens worden niet aan derden verstrekt", + safe: "De applicatie is uitermate veilig en bijna altijd beschikbaar", + support: "Als er vragen of problemen zijn, dan zoek je het maar uit" + }, + flash: "Application {{name}} saved.", + deleteConfirmation: "Are you sure you want to delete the Application {{name}}?" + }, + organization: { + alertInfo: "Welkom op SURF Access. Via deze Self Service Portal kun je jouw Applicatie beschikbaar maken voor instellingen binnen het hoger onderwijs in Nederland.", + addFirstApplication: "Voeg je eerste Applicatie toe", + addApplication: "Nieuwe Applicatie toevoegen", + deleteConfirmation: "Are you sure you want to delete the Organization {{name}}?", + catalog: { + terms: "Voorwaarden voor apps in de SURF catalogus", + fairUse: "Is je app voor een specifieke groep gebruikers (zoals één onderzoeksgroep)? Dan valt deze onder de Fair use gebruiksvoorwaarden.", + agreement: "Is je app bedoeld voor gebruik door hele onderwijsinstellingen? Dan teken je een SURF-aansluitovereenkomst.", + disclaimer: "Let op: Deze voorwaarden gelden alleen voor de productieomgeving, je kunt direct met de testomgeving koppelen." + }, + applications: "Applications", + team: "My Team", + joins: "Join Requests" + }, + connection: { + overview: "Overview", + testing: "Testing", + prod: "Production", + application: "App information", + contract: "Contract", + welcome: "Welkom {{user}}. {{name}} is nog niet gekoppeld met SURF Access. Begin met een koppeling aan onze testomgeving.", + testSection: "Test", + teamSection: "Team", + duplicatedName: "A connection with name {{name}} already exists for this Application.", + duplicateEntityID: "A connection with entityID {{entityID}} already exists", + test: { + name: "Test", + connections: "Koppelingen met onze testomgeving", + info: "Test of federatief inloggen werkt via onze testomgeving.", + + }, + team: { + name: "Teams", + info: "Geef teamleden of externen toegang tot deze applicatie space.", + members: "Teamleden voor beheer van deze applicatie" + }, + production: { + name: "Production", + connections: "Koppelingen met onze productieomgeving", + catalogue: "App informatie voor de SURF App catalogus", + access: "Toegang en zichtbaarheid", + contract: "Contract", + disclaimer: "Een koppeling aan de productieomgeving van SURF Access heeft goedkeuring nodig van team SURF Access. Alle boventaande informatie is verplicht.", + }, + productionConnectionHint: "Maak een productiekoppeling aan. Om de applicatie te kunnen activeren, moet ook alle informatie over de dienst worden toegevoegd.", + applicationInformationHint: "Voordat een productiekoppeling geactiveerd kan worden, moet alle informatie over de dienst zijn toegevoegd én het contract getekend.", + productionActivationHint: "Vraag activatie van de propductiekoppeling aan.", + productionActivationAction: "Doe het direct", + productActivationPending: "De aanvraag voor activatie van uw productiekoppeling is ontvangen. SURF neemt binnen drie werkdagen contact met u op.", + newConnection: "Nieuwe koppeling met de testomgeving", + existingConnection: "Testkoppeling bewerken", + newConnectionProd: "Nieuwe koppeling met de productieomgeving", + existingConnectionProd: "Productiekoppeling bewerken", + copyConnection: "Kopieer info van andere koppeling", + technical: "Technische gegevens", + informationProfile: "Informatieprofiel", + testIdP: "Test-IdP's", + visibility: "Visibility", + help: "Hulp nodig?", + callOpenConext: "Plan een call met SURF", + mailToOpenConext: "mailto:surf@info.nl", + connectionName: "Naam koppeling", + connectionPlaceholder: "e.g. {{application}}-{{environment}}", + protocol: "Protocol", + clientID: "Client ID", + clientIDPlaceHolder: "", + oidc10_rp: "OpenID Connect", + saml20_sp: "SAML 2.0", + grantType: "OAuth Grant type", + grantTypes: "OAuth Grant types", + authorization_code: "Authorization Code", + refresh_token: "Refresh tokens", + device_code: "Device Code", + pkce: "PKCE", + pkceTooltip: "PKCE (Proof Key for Code Exchange) enhances the security of the authorization code flow by preventing authorization code interception. It’s especially important for public clients like mobile or single-page apps", + optional: "Optional", + required: "Required (public client)", + redirectUrl: "Redirect URL", + redirectUrls: "Redirect URLs", + addRedirectUrl: "+ Redirect URL", + sslGrade: "SSL Grade (min. B)", + sslGradeTooltip: "Ensure the SSL/TLS certificate meets or exceeds grade B", + configuration: "Congifuratiegegevens", + import: "Metadata importeren", + entityID: "Entity ID", + entityIDPlaceHolder: "https://entityID.com", + acsLocation: "ACS location", + acsLocations: "ACS location(s)", + addACSLocation: "+ Add ASC location", + save: "Opslaan", + saveAndNext: "Opslaan en volgende", + deleteConfirmation: "Are you sure you want to delete this connection?", + metadata: { + how: "Hoe wil je de metadata importeren?", + url: "De URL van een metadata-bestand opgeven", + file: "Een metadata-bestand uploaden", + paste: "De metadata in een tekstveld plakken", + urlMetaData: "URL metadata bestand", + import: "Metadata importeren", + chooseFile: "Choose file", + doPaste: "Plak hier de metadata", + parsed: "The metadata has successfully been imported", + errorParsed: "Error in parsing the metadata" + }, + flash: { + created: "Created connection {{name}}", + updated: "Updated connection {{name}}", + deleted: "Deleted connection {{name}}", + copied: "Copied connection data from {{name}}" + }, + connections: { + titleProd: "Koppelingen met de productieomgeving", + titleTest: "Koppelingen met de testomgeving", + name: "Name", + created: "Added at", + status: "Status", + open: "Open", + complete: "Completed", + protocol: "Protocol", + details: "Details", + requestProductionStatus: "Vraag productiestatus aan" + }, + informational: { + disclaimer: "Verwerk alleen informatie die strikt noodzakelijk is voor het functioneren van je applicatie.", + contentAppAlert: "Een content application ontvangt de volgend informatie", + profiles: { + anonymous: { + name: "Anoniem", + title: "Het meest privacyvriendelijk", + info: "Deze bundel is speciaal bedoeld voor als je zeer privacy bewust wilt werken. Je ontvangt een transient NameID, dit betekent dat de gebruiker elke keer als hij bij de dienst inlogt een nieuw etcetera." + }, + pseudonymized: { + name: "Pseudonymized", + title: "Privacy vriendelijk inclusief betrouwbaarheid", + info: "Deze bundel is speciaal bedoeld voor toelichting. Je ontvangt een persistent NameID, dit betekent dat de toelichting gebruiker elke keer als hij bij de dienst inlogt etcetera." + }, + personalized: { + name: "Gepersonaliseerd", + title: "Persoonlijke gegevens ter identificatie", + info: "" + }, + uidOnly: { + name: "UID only", + title: "Voor instellingen die intern alle persoonsinformatie aanvullen", + info: "" + } + }, + attributes: "Je ontvangt de volgende attributen (we tonen voorbeeldwaarden)", + additionalAttributes: "Ik heb additionele attributen nodig", + availableAttributes: "De volgende attributen zijn mogelijk bij deze bundel", + profileMotivation: "Motivatie voor de noodzaak van dit profiel", + profileMotivationPlaceholder: "Beschrijf waarom je dit informatieprofiel nodig hebt", + profileMotivationDisclaimer: "Deze tekst wordt getoond aan eindgebruikers die willen aansluiten bij je dienst", + motivation: "Motivation", + motivationPlaceholder: "Attribute is used to ..." + }, + testIdPs: { + info: "Kies met welke IdP’s je wilt testen of het federatief inloggen werkt.", + subTitle: "Test-IdP’s van SURF", + identityProviders: [ + { + name: "SXS IdP", + entityid: "http://mock-idp", + description: "Een test-IdP met fictieve gebruikersaccounts. De metadata vind je hier" + }, + { + name: "SXS Dummy", + entityid: "https://idp.diy.surfconext.nl/saml2/idp/metadata.php", + description: "Een test-IdP waarmee je zelf attributen-sets kunt simuleren. De metadata vind je hier" + } + ], + institutionIdPs: "Test-IdP’s van instellingen", + institutionIdPsInfo: "Je kunt ook testen met accounts en data van instellingen. Let wel op: Je moet zelf contact opnemen voor de test-inloggegevens voor hun test-IdP’s.", + placeholder: "Selecteer één of meerdere instellingen", + institution: "test IdP or institution IdP" + }, + visibilities: { + info: "Kies hoe je wilt dat deze koppeling zichtbaar is in de SURF App catalogus", + disclaimer: "Let op: je kan de zichtbaarheid altijd later nog aanpassen", + options: { + "visible_to_all": "Visible for all users and institutions", + "visible_to_idp_only": "Only visible for users from institutions that are granted access to this connection", + "visible_to_none": "Not visible for any users or institutions (e.g. hidden in the catalogus)", + }, + placeholder: "Selecteer één of meerdere instellingen", + institution: "Institution IdP" + }, + connectionOverview: { + copy: "Kopieer de inloggegevens", + disclaimer: "Het client secret wordt hieronder éénmaal weergegeven. Zorg ervoor dat je het nu kopieert, anders moet er een nieuw seceret aangevraagd worden.", + test: "Gebruik de volgende inloggegevens om verbinding te maken met de productieomgeving. Volg de testinstructies om te kijken of alles werkt.", + discovery: "OpenID Connect Discovery", + clientID: "Client ID", + secret: "Client secret", + authentication: "Authenticatie", + secretReset: "For security reasons your current secret can not be displayed.", + secretResetLink: "Reset your secret when needed.", + secretResetDisclaimer: "Let op. Regenerating the secret will break your current connection.", + secretResetTitle: "Reset your secret", + secretResetNew: "New secret", + reset: "Reset my secret", + resetContinue: "I’ve copied the secret. Continue" + }, + appInfo: { + title: "App informatie voor de SURF App catalogus", + label: "App informatie", + sections: { + logo: "Logo en beschrijving", + contact: "Contactgegevens", + privacy: "Privacy & Security ", + overview: "Overview" + }, + logoUrl: "Logo", + descriptionEn: "Beschrijving in het Engels", + descriptionNl: "Beschrijving in het Nederlands", + webSite: "Website", + tags: "Tag je applicatie", + tagPlaceholder: "Maximaal 3 tags", + tagInfo: "In de appstore kunnen instellingen hierop filteren", + tagsAvailable: { + education: "Onderwijs", + research: "Onderzoek", + privacy: "Privacy/beveiliging", + content: "Content/bibliotheek", + repository: "Repository", + company: "Bedrijfsvoering", + recommended: "Aangeraden", + productivity: "Productiviteit", + organization: "Organisatie van onderwijs/onderzoek", + cooperation: "Samenwerken", + video: "Videoplatform", + surf: "SURF" + }, + targetGroup: "Ga door naar de doelgroep" + }, + logo: { + name: "logo", + add: "Add a logo", + edit: "Change logo", + imageToLarge: "Image is larger then 2MB.", + confirm: "Set new logo image", + header: "Crop your new logo image", + disclaimers: [ + "png, jpg, svg or gif", + "min 100 * 100 pixels", + "max 2MB.", + ] + }, + contacts: { + label: "Contactgegevens", + info: "Gebruik zoveel mogelijk functionele adressen in plaats van persoonlijke.", + name: "name", + administrative: "Administratief contact", + administrativeTooltip: "Administratief contact Tooltip", + administrativePlaceholder: "e.g. admin@{{name}}", + emailOrWebsite: "Email-adres of website", + technical: "Technisch contact (anders dan administratief)", + technicalTooltip: "Technical contact Tooltip", + technicalPlaceholder: "e.g. technical@{{name}}", + support: "Support contact (eindgebruikers zien dit)", + supportTooltip: "Support contact Tooltip", + supportPlaceholder: "e.g. support@{{name}}", + }, + privacy: { + label: "Privacy & Security", + info: "Please fill out the questions below. We will share the answers with institutions connected to SURFconext. This way the institutions interested in your service quickly have an idea of your efforts regarding privacy and security.", + answerIsRequired: "Answer to this privacy question is required" + }, + appOverview: { + label: "De App informatie zijn compleet.", + info: "Zo verschijnt je app in de SURF App catalogus.", + }, + contractSection: { + title: "Contract", + info: "Voor apps op SURF Access moet je een SURF-aansluitovereenkomst tekenen.", + notSigned: "Er is nog geen overeenkomst getekend.", + signed: "Er is een overeenkomst getekend.", + sign: "Teken de overeenkomst" + } + }, + testing: { + newConnection: "New connection", + added: "Added at", + status: "Status", + protocol: "Protocol", + details: "Details", + zeroState: "Application {{name}} has no {{type}} connections yet.", + production: "production", + test: "test" + }, + confirmationDialog: { + title: "Confirm", + error: "Error", + subTitle: "This action requires a confirmation", + subTitleError: "An error has occurred", + confirm: "Confirm", + ok: "Ok", + cancel: "Cancel", + }, + forms: { + cancel: "Cancel", + submit: "Submit", + edit: "Edit", + delete: "Delete", + back: "Back", + required: "{{name}} is required", + requiredOne: "At least one {{name}} is required", + error: "An unexpected error occurred", + backToConnections: "Back to connections", + backToOverview: "Back to overview", + overview: "Naar overzicht", + invalidURL: "{{name}} is not a valid URL", + invalidEmailURL: "{{name}} is not a valid URL or valid email", + moreLabel: "Show me more", + lessLabel: "Show me less", + }, + footer: { + terms: "Terms of Use", + termsLink: "https://support.surfconext.nl/terms-en", + privacy: "Privacy policy", + privacyLink: "https://support.surfconext.nl/privacy-en", + OpenConextLink: "https://openconext.org", + select_locale: "Select your preferred language" + }, + +} + +export default nl; diff --git a/server/pom.xml b/server/pom.xml index 18813c4..1080367 100644 --- a/server/pom.xml +++ b/server/pom.xml @@ -256,7 +256,11 @@ test + + target + + ${dir} org.springframework.boot
{I18n.t("connection.help")}