diff --git a/ios/SAPTracker/src/xcode/SAPTracker/Base.lproj/InfoPlist.strings b/ios/SAPTracker/src/xcode/SAPTracker/Base.lproj/InfoPlist.strings index 0faec172b97..aa9e4a5471e 100644 --- a/ios/SAPTracker/src/xcode/SAPTracker/Base.lproj/InfoPlist.strings +++ b/ios/SAPTracker/src/xcode/SAPTracker/Base.lproj/InfoPlist.strings @@ -1,10 +1,10 @@ -// -// InfoPlist.strings -// SAPTracker -// -// Created by Raimund Wege on 04.11.16. -// Copyright © 2016 com.sap.sailing. All rights reserved. -// +/* + InfoPlist.strings + SAPTracker + + Created by Raimund Wege on 04.11.16. + Copyright © 2016 com.sap.sailing. All rights reserved. +*/ "NSLocationWhenInUseUsageDescription" = "In order to track your entire race your phone needs to continue tracking also when you switch off or lock the screen which helps save battery and avoids unintentionally stopping the tracking process."; "NSLocationAlwaysAndWhenInUseUsageDescription" = "In order to track your entire race your phone needs to continue tracking also when you switch off or lock the screen which helps save battery and avoids unintentionally stopping the tracking process."; diff --git a/ios/SAPTracker/src/xcode/SAPTracker/Base.lproj/Localizable.strings b/ios/SAPTracker/src/xcode/SAPTracker/Base.lproj/Localizable.strings index 9a7c34ec360..721f4b8d9d2 100644 Binary files a/ios/SAPTracker/src/xcode/SAPTracker/Base.lproj/Localizable.strings and b/ios/SAPTracker/src/xcode/SAPTracker/Base.lproj/Localizable.strings differ diff --git a/ios/SAPTracker/src/xcode/SAPTracker/SignUp.strings b/ios/SAPTracker/src/xcode/SAPTracker/SignUp.strings index fb997d137b2..837e90ea66f 100644 --- a/ios/SAPTracker/src/xcode/SAPTracker/SignUp.strings +++ b/ios/SAPTracker/src/xcode/SAPTracker/SignUp.strings @@ -6,30 +6,30 @@ Copyright © 2017 com.sap.sailing. All rights reserved. */ -// MARK: - Common +/* MARK: - Common */ "Common.Email" = "E-Mail"; "Common.Password" = "Passwort"; "Common.Server" = "Server"; "Common.UserName" = "Benutzername"; -// MARK: - ForgotPasswordView +/* MARK: - ForgotPasswordView */ "ForgotPasswordView.Title" = "Passwort vergessen"; "ForgotPasswordView.InfoLabel.Text" = "Benutzernamen oder E-Mail Adresse angeben"; "ForgotPasswordView.ResetPasswordButton.Title" = "Passwort zurücksetzen"; -// MARK: - LoginView +/* MARK: - LoginView */ "LoginView.Title" = "Anmelden"; "LoginView.ForgotPasswordButton.Title" = "Passwort vergessen"; "LoginView.LoginButton.Title" = "Anmelden"; -// MARK: - SignUpControllerError +/* MARK: - SignUpControllerError */ "SignUpControllerError.LoginFailed" = "Anmeldung fehlgeschlagen. Zugangsdaten überprüfen."; -// MARK: - SignUpView +/* MARK: - SignUpView */ "SignUpView.Title" = "Registrieren"; "SignUpView.InfoLabel.Text" = "Herzlich Willkommen."; @@ -40,7 +40,7 @@ "SignUpView.RepeatPasswordTextField.Placeholder" = "Wiederholen Sie das Passwort"; "SignUpView.SignUpButton.Title" = "Registrieren"; -// MARK: - SignUpViewError +/* MARK: - SignUpViewError */ "SignUpViewError.UserNameIsToShort" = "Bitte einen Benutzername mit mindestens 3 Zeichen eingeben."; "SignUpViewError.PasswordIsToShort" = "Bitte ein Passwort mit mindestens 5 Zeichen eingeben."; diff --git a/ios/SAPTracker/src/xcode/SAPTracker/de.lproj/InfoPlist.strings b/ios/SAPTracker/src/xcode/SAPTracker/de.lproj/InfoPlist.strings index e3fca47d2f6..2624687163b 100644 --- a/ios/SAPTracker/src/xcode/SAPTracker/de.lproj/InfoPlist.strings +++ b/ios/SAPTracker/src/xcode/SAPTracker/de.lproj/InfoPlist.strings @@ -1,10 +1,10 @@ -// -// InfoPlist.strings -// SAPTracker -// -// Created by Raimund Wege on 04.11.16. -// Copyright © 2016 com.sap.sailing. All rights reserved. -// +/* + InfoPlist.strings + SAPTracker + + Created by Raimund Wege on 04.11.16. + Copyright © 2016 com.sap.sailing. All rights reserved. +*/ "NSLocationWhenInUseUsageDescription" = "Um das ganze Rennen mit Deinem Gerät zu tracken, muss das Tracking auch dann fortgesetzt werden, wenn der Bildschirm abgeschaltet oder gesperrt wird. Das hilft, die Batterielaufzeit zu verlängern und versehentlich das Tracking zu stoppen."; "NSLocationAlwaysAndWhenInUseUsageDescription" = "Um das ganze Rennen mit Deinem Gerät zu tracken, muss das Tracking auch dann fortgesetzt werden, wenn der Bildschirm abgeschaltet oder gesperrt wird. Das hilft, die Batterielaufzeit zu verlängern und versehentlich das Tracking zu stoppen."; diff --git a/ios/SAPTracker/src/xcode/SAPTracker/de.lproj/Localizable.strings b/ios/SAPTracker/src/xcode/SAPTracker/de.lproj/Localizable.strings index e3645843144..fb9255a4529 100644 Binary files a/ios/SAPTracker/src/xcode/SAPTracker/de.lproj/Localizable.strings and b/ios/SAPTracker/src/xcode/SAPTracker/de.lproj/Localizable.strings differ diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/maneuverdetection/impl/ManeuverDetectorImpl.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/maneuverdetection/impl/ManeuverDetectorImpl.java old mode 100644 new mode 100755 index fd6580496be..88e0fe6ae2f --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/maneuverdetection/impl/ManeuverDetectorImpl.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/maneuverdetection/impl/ManeuverDetectorImpl.java @@ -941,32 +941,32 @@ public class ManeuverDetectorImpl extends AbstractManeuverDetectorImpl { } TimePoint stableBearingAnalysisUntil = maneuverStart == null ? maneuverMainCurveDetails.getTimePointBefore() : maneuverStart.getExtensionTimePoint(); - Speed lowestSpeed = maneuverStart == null ? null : maneuverStart.getLowestSpeedWithinExtensionArea(); - double courseChangeSinceManeuverMainCurveInDegrees = maneuverStart == null ? 0 - : maneuverStart.getCourseChangeInDegreesWithinExtensionArea(); stepsToAnalyze = getSpeedWithBearingStepsWithinTimeRange(stepsToAnalyze, earliestTimePointForSpeedTrendAnalysis, stableBearingAnalysisUntil); ManeuverCurveBoundaryExtension stableBearingExtension = findStableBearingWithMaxAbsCourseChangeSpeed( stepsToAnalyze, true, MAX_TURNING_RATE_IN_DEG_PER_SECOND_FOR_STABLE_COURSE_ANALYSIS); - if (stableBearingExtension != null - && !isCourseChangeLimitExceededForCurveExtension(maneuverMainCurveDetails, stableBearingExtension)) { - maneuverStart = stableBearingExtension; - courseChangeSinceManeuverMainCurveInDegrees += stableBearingExtension - .getCourseChangeInDegreesWithinExtensionArea(); - if (lowestSpeed == null - || lowestSpeed.compareTo(stableBearingExtension.getLowestSpeedWithinExtensionArea()) > 0) { - lowestSpeed = stableBearingExtension.getLowestSpeedWithinExtensionArea(); - } + ManeuverCurveBoundaryExtension mergedExtension = extendManeuverCurveBoundaryExtension(maneuverStart, stableBearingExtension); + if(!isCourseChangeLimitExceededForCurveExtension(maneuverMainCurveDetails, mergedExtension)) { + maneuverStart = mergedExtension; } return maneuverStart != null - ? new ManeuverCurveBoundaryExtension(maneuverStart.getExtensionTimePoint(), - maneuverStart.getSpeedWithBearingAtExtensionTimePoint(), - courseChangeSinceManeuverMainCurveInDegrees - + maneuverStart.getCourseChangeInDegreesWithinExtensionArea(), - lowestSpeed) + ? maneuverStart : new ManeuverCurveBoundaryExtension(maneuverMainCurveDetails.getTimePointBefore(), maneuverMainCurveDetails.getSpeedWithBearingBefore(), 0, null); } + + private ManeuverCurveBoundaryExtension extendManeuverCurveBoundaryExtension(ManeuverCurveBoundaryExtension previousExtension, ManeuverCurveBoundaryExtension newExtension) { + if(previousExtension == null) { + return newExtension; + } + if(newExtension == null) { + return previousExtension; + } + Speed lowestSpeed = previousExtension.getLowestSpeedWithinExtensionArea().compareTo(newExtension.getLowestSpeedWithinExtensionArea()) > 0 ? newExtension.getLowestSpeedWithinExtensionArea() : previousExtension.getLowestSpeedWithinExtensionArea(); + double courseChangeInDegrees = previousExtension.getCourseChangeInDegreesWithinExtensionArea() + newExtension.getCourseChangeInDegreesWithinExtensionArea(); + ManeuverCurveBoundaryExtension mergedExtension = new ManeuverCurveBoundaryExtension(newExtension.getExtensionTimePoint(), newExtension.getSpeedWithBearingAtExtensionTimePoint(), courseChangeInDegrees, lowestSpeed); + return mergedExtension; + } private boolean isCourseChangeLimitExceededForCurveExtension( ManeuverMainCurveDetailsWithBearingSteps maneuverMainCurveDetails, @@ -1025,27 +1025,16 @@ public class ManeuverDetectorImpl extends AbstractManeuverDetectorImpl { } TimePoint stableBearingAnalysisFrom = maneuverEnd == null ? maneuverMainCurveDetails.getTimePointAfter() : maneuverEnd.getExtensionTimePoint(); - Speed lowestSpeed = maneuverEnd == null ? null : maneuverEnd.getLowestSpeedWithinExtensionArea(); - double courseChangeSinceManeuverMainCurveInDegrees = maneuverEnd == null ? 0 - : maneuverEnd.getCourseChangeInDegreesWithinExtensionArea(); stepsToAnalyze = getSpeedWithBearingStepsWithinTimeRange(stepsToAnalyze, stableBearingAnalysisFrom, latestTimePointForSpeedTrendAnalysis); ManeuverCurveBoundaryExtension stableBearingExtension = findStableBearingWithMaxAbsCourseChangeSpeed( stepsToAnalyze, false, MAX_TURNING_RATE_IN_DEG_PER_SECOND_FOR_STABLE_COURSE_ANALYSIS); - if (stableBearingExtension != null - && !isCourseChangeLimitExceededForCurveExtension(maneuverMainCurveDetails, stableBearingExtension)) { - maneuverEnd = stableBearingExtension; - courseChangeSinceManeuverMainCurveInDegrees += stableBearingExtension - .getCourseChangeInDegreesWithinExtensionArea(); - if (lowestSpeed == null - || lowestSpeed.compareTo(stableBearingExtension.getLowestSpeedWithinExtensionArea()) > 0) { - lowestSpeed = stableBearingExtension.getLowestSpeedWithinExtensionArea(); - } + ManeuverCurveBoundaryExtension mergedExtension = extendManeuverCurveBoundaryExtension(maneuverEnd, stableBearingExtension); + if(!isCourseChangeLimitExceededForCurveExtension(maneuverMainCurveDetails, mergedExtension)) { + maneuverEnd = mergedExtension; } return maneuverEnd != null - ? new ManeuverCurveBoundaryExtension(maneuverEnd.getExtensionTimePoint(), - maneuverEnd.getSpeedWithBearingAtExtensionTimePoint(), - courseChangeSinceManeuverMainCurveInDegrees, lowestSpeed) + ? maneuverEnd : new ManeuverCurveBoundaryExtension(maneuverMainCurveDetails.getTimePointAfter(), maneuverMainCurveDetails.getSpeedWithBearingAfter(), 0, null); } diff --git a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/impl/StationarySequenceBasedFilter.java b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/impl/StationarySequenceBasedFilter.java index 58e788e678a..830ce564e10 100755 --- a/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/impl/StationarySequenceBasedFilter.java +++ b/java/com.sap.sailing.domain/src/com/sap/sailing/domain/markpassingcalculation/impl/StationarySequenceBasedFilter.java @@ -537,7 +537,12 @@ public class StationarySequenceBasedFilter { } if (fixesReplacingExistingOnes != null) { for (final GPSFixMoving fixReplacingExistingOne : fixesReplacingExistingOnes) { - assert Util.contains(newFixes, fixesReplacingExistingOnes); + final boolean assertion2 = Util.contains(newFixes, fixReplacingExistingOne); + if (!assertion2) { + logger.severe("Expected "+fixesReplacingExistingOnes+" to be part of the "+Util.size(newFixes)+ + " new fixes, but it wasn't"); + } + assert assertion2; final Candidate dummyCandidateForReplacementFix = StationarySequence.createDummyCandidate(fixReplacingExistingOne.getTimePoint()); final StationarySequence dummyStationarySequenceForFix = createStationarySequence(dummyCandidateForReplacementFix); final StationarySequence lastSequenceStartingAtOrBeforeFix = stationarySequences.floor(dummyStationarySequenceForFix); diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TracTracEventManagementPanel.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TracTracEventManagementPanel.java index 1323abf49cf..37b5b3a5042 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TracTracEventManagementPanel.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/TracTracEventManagementPanel.java @@ -97,15 +97,11 @@ public class TracTracEventManagementPanel extends AbstractEventManagementPanel { protected Widget createContent() { VerticalPanel mainPanel = new VerticalPanel(); mainPanel.setWidth("100%"); - CaptionPanel connectionsPanel = createConnectionsPanel(); mainPanel.add(connectionsPanel); - HorizontalPanel racesPanel = createRacesPanel(); racesPanel.setWidth("100%"); - mainPanel.add(racesPanel); - return mainPanel; } @@ -130,7 +126,8 @@ public class TracTracEventManagementPanel extends AbstractEventManagementPanel { tableAndConfigurationPanel.add(buttonPanel); buttonPanel.addUnsecuredAction(stringMessages.refresh(), () -> connectionsTable.refreshTracTracConnectionList()); Button addCreateAction = buttonPanel.addCreateAction(stringMessages.addTracTracConnection(), - () -> new EditTracTracConnectionDialog(new TracTracConfigurationWithSecurityDTO(), + () -> new EditTracTracConnectionDialog(new TracTracConfigurationWithSecurityDTO( + userService.getCurrentUser() == null ? null : userService.getCurrentUser().getName()), new DialogCallback() { @Override public void ok(TracTracConfigurationWithSecurityDTO editedConnection) { @@ -148,7 +145,7 @@ public class TracTracEventManagementPanel extends AbstractEventManagementPanel { @Override public void onSuccess(Void voidResult) { - connectionsTable.refreshTracTracConnectionList(); + connectionsTable.refreshTracTracConnectionList(/* selectWhenDone */ editedConnection); } })); } @@ -189,7 +186,7 @@ public class TracTracEventManagementPanel extends AbstractEventManagementPanel { }); return connectionsPanel; } - + protected HorizontalPanel createRacesPanel() { HorizontalPanel racesPanel = new HorizontalPanel(); CaptionPanel trackableRacesPanel = createTrackableRacesPanel(); @@ -472,25 +469,23 @@ public class TracTracEventManagementPanel extends AbstractEventManagementPanel { List races = TracTracEventManagementPanel.this.raceList.getList(); races.clear(); races.addAll(TracTracEventManagementPanel.this.availableTracTracRaces); - TracTracEventManagementPanel.this.racesFilterablePanel.getTextBox().setText(""); TracTracEventManagementPanel.this.racesTable.setPageSize(races.size()); loadingMessageLabel.setText(""); - // store a successful configuration in the database for later retrieval - sailingService.updateTracTracConfiguration(updatedConnection, - new MarkedAsyncCallback( - new AsyncCallback() { - @Override - public void onFailure(Throwable caught) { - reportError("Exception trying to store configuration in DB: " + caught.getMessage()); - } - - @Override - public void onSuccess(Void voidResult) { - connectionsTable.refreshTracTracConnectionList(); - } - })); + sailingService.updateTracTracConfiguration(updatedConnection, + new MarkedAsyncCallback( + new AsyncCallback() { + @Override + public void onFailure(Throwable caught) { + reportError("Exception trying to store configuration in DB: " + caught.getMessage()); + } + + @Override + public void onSuccess(Void voidResult) { + connectionsTable.refreshTracTracConnectionList(); + } + })); } })); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/tractrac/TracTracConnectionTableWrapper.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/tractrac/TracTracConnectionTableWrapper.java index a541b02f139..b1ed8d13751 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/tractrac/TracTracConnectionTableWrapper.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/adminconsole/tractrac/TracTracConnectionTableWrapper.java @@ -5,6 +5,7 @@ import static com.sap.sse.security.ui.client.component.AccessControlledActionsCo import java.util.ArrayList; import java.util.List; +import com.google.gwt.core.client.Scheduler; import com.google.gwt.user.cellview.client.AbstractCellTable; import com.google.gwt.user.cellview.client.ColumnSortEvent.ListHandler; import com.google.gwt.user.cellview.client.TextColumn; @@ -168,6 +169,15 @@ public class TracTracConnectionTableWrapper extends } public void refreshTracTracConnectionList() { + refreshTracTracConnectionList(/* selectWhenDone */ null); + } + + /** + * @param selectEntityWhenDone + * if not {@code null}, select an entity in the table that the {@link EntityIdentityComparator} considers + * the same entity if present + */ + public void refreshTracTracConnectionList(final TracTracConfigurationWithSecurityDTO selectEntityWhenDone) { sailingServiceAsync .getPreviousTracTracConfigurations(new AsyncCallback>() { @Override @@ -180,6 +190,16 @@ public class TracTracConnectionTableWrapper extends @Override public void onSuccess(List result) { filterField.updateAll(result); + if (selectEntityWhenDone != null) { + Scheduler.get().scheduleDeferred(()->{ + for (final TracTracConfigurationWithSecurityDTO oneResult : result) { + if (getSelectionModel().getEntityIdentityComparator().representSameEntity(oneResult, selectEntityWhenDone)) { + getSelectionModel().setSelected(oneResult, true); + break; + } + } + }); + } } }); } diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_es.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_es.properties index 7202c5419b4..b7f87f3120c 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_es.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_es.properties @@ -526,6 +526,7 @@ longitude=Longitud actionAddEvent=Añadir evento publicationUrl=URL de publicación suppress=Suprimir +isListedOnHomepage=Enumerado en la página de inicio unsuppress=Anular la eliminación suppressedCompetitors=Competidores suprimidos mediaPanel=Audio y vídeo @@ -1026,6 +1027,7 @@ errorGettingIgtimiAuthorizationUrl=Error al obtener URL de autorización de Igti addIgtimiUser=Añadir usuario de Igtimi doYouReallyWantToRemoveLeaderboards=¿Desea realmente eliminar las tablas de clasificación? doYouReallyWantToRemoveNonVisibleLeaderboards=Del mismo modo, está borrando las tablas de clasificación que actualmente no son visibles con el filtro. Se eliminarán las siguientes tablas de clasificación. ¿Desea continuar?\n\n{0} +doYouReallyWantToRemoveLeaderboardGroup=¿Desea realmente eliminar los grupos de la tabla de clasificación "{0}"? doYouReallyWantToRemoveLeaderboardGroups=¿Desea realmente eliminar los grupos de la tabla de clasificación? doYouReallyWantToRemoveNonVisibleLeaderboardGroups=Del mismo modo, está borrando los grupos de la tabla de clasificación que actualmente no son visibles con el filtro. Se eliminarán los siguientes grupos de la tabla de clasificación. ¿Desea continuar?\n\n{0} doYouReallyWantToRemoveTrackedRaces=¿Desea realmente eliminar las carreras rastreadas? @@ -1180,6 +1182,24 @@ controlTrackingFromStartAndFinishTimes=Control de rastreo a partir de la hora de canBoatsOfCompetitorsChangePerRace=¿Pueden modificarse por carrera las embarcaciones de competidores? canBoatsChange=¿Pueden modificarse las embarcaciones? canNotRegisterBoats=Las embarcaciones solo pueden registrarse aquí cuando pueden modificarse por carrera; de otro modo, se registran junto el competidor. +competitorRegistrationType=Tipo de registro de competidor +competitorRegistrationTypeShort=Registro +competitorRegistrationTypeClosed=cerrado +competitorRegistrationTypeOpenModerated=abierto moderado +competitorRegistrationTypeOpenUnmoderated=abierto no moderado +registrationLink=Enlace de registro +registrationLinkConfig=Vista +registrationLinkDialog=Enlace de registro de la regata abierta +registrationLinkDialogQrcode=Código QR +registrationLinkDialogQrcodeExplain=Puede descargar la imagen del código QR y pegarla en su invitación. +registrationLinkSecret=Secreto +registrationLinkSecretExplain=Se añade una cadena secreta al enlace de registro que se requiere para validar una solicitud de registro. Los enlaces públicos y los códigos QR ya no funcionarán si modifica esta cadena. +registrationLinkSecretGenerate=Generar +registrationLinkUrl=URL de enlace de registro +registrationLinkUrlExplain=Puede copiar el URL y pegarlo en su invitación. +registrationLinkUrlCopy=Copiar al portapapeles +registrationLinkShare=Compartir +explainRegistrationLinkDialog=Los competidores de regatas abiertas pueden registrarlas mediante el enlace de registro y el escaneo de código QR siguiente con su smartphone. numberOfQueueMessagesSent=Número de mensajes en cola enviados totalSize=Tamaño total averageMessageSize=Tamaño total por mensaje en bytes @@ -1222,6 +1242,7 @@ enterImageURL=Indicar URL de imagen... enterVideoURL=Indicar URL de vídeo... enterSponsorImageURL=Indicar URL de imagen de patrocinador... enterRaceName=Indicar nombre de carrera... +userGroupManagement=Gestión de grupo de usuarios userManagement=Gestión de usuarios regattaStructureImport=Importación de la estructura de regata filteredBy=Filtrado por @@ -1249,6 +1270,9 @@ noFleetsDefined=Ninguna flota definida successfullyCreatedRegattas=Regatas creadas con éxito errorTryingToRegisterRacesForTracking=Error al intentar registrar carreras {0} para rastreo: {1}. Compruebe sintaxis URI en directo/grabada. errorDeterminingPolarAvailability=Error al determinar la disponibilidad de datos polares / VPP para la carrera {0}: {1} +selectedDetailType=Mostrar métrica +errorLoadingAvailableDetailTypes=Error al cargar las métricas disponibles +tailColor=Color de cola fileStorage=Almacenamiento de archivos active=Activo scoringSchemeHighPointEssOverallDescription=Calificación en puntos. El ganador de una prueba obtiene 10 puntos; el segundo, 9 puntos, etc. Si hay un empate en la serie de Extreme Sailing, el empate se resuelve a favor del competidor que ha ganado más pruebas. Si aún persiste el empate, se utiliza el resultado de la última prueba. @@ -1969,6 +1993,7 @@ errorCalculatingPairingListTemplate=Error al calcular la plantilla de la lista d errorCreatingPairingList=Error al crear la lista de emparejamientos: {0} unexpectedErrorDuringFileImport=Se ha producido un error inesperado durante la carga del fichero. couldNotDownload=No se ha podido descargar el fichero: {0} +roles=Roles sliceRace=Cortar una carrera slicingARaceWasSuccessful=El corte de carrera fue exitoso. enterNameForSlicedRace=Indique un nombre para la carrera a cortar @@ -2111,6 +2136,8 @@ qrCodeUnsecureServerRedirect=El enlace indicado le redireccionará al sitio desc qrCodeUnsecureServerRedirectTitle=Servidor desconocido {0} qrCodeInfoMessage=Escanee este código QR con su dispositivo móvil para continuar con el registro qrCodeErrorMessage=Lo sentimos, esta función no está disponible actualmente. +soundOff=Sin sonido +turnOffAllSoundChannels=Desactive todos los canales de sonido tag=Etiqueta tagButtons=Botones de etiqueta tagPanel=Etiquetas @@ -2196,3 +2223,35 @@ moreLoginInformationSectionSailorProfilesDescription=Después de iniciar sesión moreLoginInformationSectionSailorProfilesHeading=Perfiles de navegante confirmDeletion=Confirmar borrado priorityMustBeANonNegativeNumber=La prioridad debe ser un número entero no negativo +selfServiceServer=El servidor tiene autoservicio +publicServer=El servidor es público +updatedServerSetupError=No se ha podido actualizar la configuración del servidor +updatedServerSetup=Confirmación de servidor actualizada +useExistingUserGroup=Utilizar grupo de usuarios existente +useNewUserGroup=Utilizar grupo de usuarios nuevo +currentGroupOwner=Responsable de grupo actual +migrateCompetitors=Migrar competidores +migrateBoats=Migrar embarcaciones +migrateHierarchyToGroupOwner=Migrar jerarquía a responsable de grupo +serverIsPublicButTenantIsNot=Este servidor está configurado como público, su arrendatario actual no es el servidor. Los objetos que ha creado no serán públicos sin una configuración adicional del servidor. Modifique por defecto el arrendatario mediante el perfil de usuario si desea un escenario de servidor público por defecto. +serverIsPublicButTenantIsNotAndCouldBeChanged=Este servidor está configurado como público, su arrendatario actual no es el servidor. Los objetos que ha creado no serán públicos sin una configuración adicional del servidor. ¿Desea que modifiquemos el arrendatario estándar? +copyMembersAndRoles=Copiar miembros y roles +invalidSecret=Secreto no válido +warningSailInsightVersion=El servidor se ha configurado para el uso con SAP Sail Insight 1. Las regatas abiertas solo son compatibles con SAP Sail Insight 2; se pueden producir problemas de uso. +invalidState=Estado no válido +doYouReallyWantToRemoveDeviceConfiguration=¿Desea realmente eliminar la configuración del dispositivo {0}? +errorFetchingSimulationData=Se ha producido un error al obtener los datos de simulación: {0} +usernameAndPasswordMustBothBeSet=El nombre de usuario y contraseña deben estar completados o en blanco +explainUserName=El nombre de usuario a utilizar para la autenticación en el maestro +explainPassword=La contraseña a utilizar para la autenticación en el maestro +addTracTracConnection=Añadir conexión TracTrac +editTracTracConnection=Tratar conexión TracTrac +filterTracTracConnections=Filtrar conexiones TracTrac +creatorName=Nombre de creador +addSwissTimingAchivedConnection=Añadir conexión SwissTimingArchived +editSwissTimingAchivedConnection=Tratar conexión SwissTimingArchived +filterSwissTimingAchivedConnections=Filtrar conexiones SwissTimingArchived +editSwissTimingConnections=Tratar conexión SwissTiming +filterSwissTimingConnections=Filtrar conexiones SwissTiming +addSwissTimingConnection=Añadir conexión SwissTiming +updateURL=Actualizar URL diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_fr.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_fr.properties index fda2f9b1f4f..3ae215520e0 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_fr.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_fr.properties @@ -526,6 +526,7 @@ longitude=Longitude actionAddEvent=Ajouter manifestation publicationUrl=URL de publication suppress=Supprimer +isListedOnHomepage=Est listé sur la page d''accueil unsuppress=Annuler la suppression suppressedCompetitors=Concurrents supprimés mediaPanel=Audio et vidéo @@ -1026,6 +1027,7 @@ errorGettingIgtimiAuthorizationUrl=Erreur lors de l''accès à l''URL d''autoris addIgtimiUser=Ajouter utilisateur Igtimi doYouReallyWantToRemoveLeaderboards=Voulez-vous vraiment supprimer les palmarès ? doYouReallyWantToRemoveNonVisibleLeaderboards=Vous êtes également en train de supprimer des palmarès qui ne sont pas visibles actuellement à cause du filtre. Les palmarès suivants seront supprimés. Voulez-vous poursuivre ?\n\n{0} +doYouReallyWantToRemoveLeaderboardGroup=Voulez-vous vraiment supprimer le groupe de palmarès "{0}" ? doYouReallyWantToRemoveLeaderboardGroups=Voulez-vous vraiment supprimer les groupes de palmarès ? doYouReallyWantToRemoveNonVisibleLeaderboardGroups=Vous êtes également en train de supprimer des groupes de palmarès qui ne sont pas visibles actuellement à cause du filtre. Les groupes de palmarès suivants seront supprimés. Voulez-vous poursuivre ?\n\n{0} doYouReallyWantToRemoveTrackedRaces=Voulez-vous vraiment supprimer les courses suivies ? @@ -1180,6 +1182,24 @@ controlTrackingFromStartAndFinishTimes=Contrôler suivi à partir des heures de canBoatsOfCompetitorsChangePerRace=Les bateaux des concurrents peuvent-ils changer pendant une course canBoatsChange=Les bateaux peuvent-ils changer canNotRegisterBoats=Les bateaux peuvent uniquement être inscrits ici lorsqu''il est possible d''en changer pendant une couse. Sinon, ils sont inscrits avec le concurrent. +competitorRegistrationType=Type d''inscription du concurrent +competitorRegistrationTypeShort=Inscription +competitorRegistrationTypeClosed=clôturée +competitorRegistrationTypeOpenModerated=ouverte et modérée +competitorRegistrationTypeOpenUnmoderated=ouverte et non modérée +registrationLink=Lien d''inscription +registrationLinkConfig=Afficher +registrationLinkDialog=Lien d''inscription pour régate ouverte +registrationLinkDialogQrcode=Code QR +registrationLinkDialogQrcodeExplain=Vous pouvez télécharger l''image du code QR et la coller dans votre invitation. +registrationLinkSecret=Secret +registrationLinkSecretExplain=Une chaîne secrète est ajoutée au lien d''inscription requis pour valider une demande d''inscription. Les liens déjà publics et les codes QR ne fonctionneront plus si vous modifiez ce secret. +registrationLinkSecretGenerate=Générer +registrationLinkUrl=URL du lien d''inscription +registrationLinkUrlExplain=Vous pouvez copier l''URL et la coller dans votre invitation. +registrationLinkUrlCopy=Copier dans le presse-papiers +registrationLinkShare=Partager +explainRegistrationLinkDialog=Les concurrents des régates ouvertes peuvent s''inscrire eux-mêmes en ouvrant le lien d''inscription ou en scannant le code QR ci-dessous avec leur smartphone. numberOfQueueMessagesSent=Nombre de messages en file d''attente envoyés totalSize=Taille totale averageMessageSize=Taille moyenne par message en octets @@ -1222,6 +1242,7 @@ enterImageURL=Saisissez l''URL de l''image... enterVideoURL=Saisissez l''URL de la vidéo... enterSponsorImageURL=Saisissez l''URL de l''image du sponsor... enterRaceName=Saisissez le nom du parcours... +userGroupManagement=Gestion des groupes d''utilisateurs userManagement=Gestion des utilisateurs regattaStructureImport=Importation de la structure de la régate filteredBy=filtré par @@ -1249,6 +1270,9 @@ noFleetsDefined=Aucune flotte définie successfullyCreatedRegattas=Création des régates réussie errorTryingToRegisterRacesForTracking=Erreur lors de la tentative d''enregistrement des courses {0} pour le suivi : {1}. Vérifiez la syntaxe de l''URL stockée/du direct. errorDeterminingPolarAvailability=Erreur lors de la détermination de la disponibilité des données polaires/VPP pour la course {0} : {1} +selectedDetailType=Afficher métrique +errorLoadingAvailableDetailTypes=Erreur lors du chargement des métriques disponibles +tailColor=Couleur du parcours effectué fileStorage=Stockage du fichier active=Actif scoringSchemeHighPointEssOverallDescription=Score en points. Le vainqueur d''un Act totalise 10 points, le 2e - 9 points, etc. En cas d''égalité au classement général des Extreme Sailing Series, la victoire est accordée au concurrent ayant remporté le plus d''Act. Si l''égalité persiste, le résultat obtenu au dernier Act sera utilisé. @@ -1969,6 +1993,7 @@ errorCalculatingPairingListTemplate=Erreur lors du calcul du modèle de la liste errorCreatingPairingList=Erreur lors de la création de la liste d''appariement: {0} unexpectedErrorDuringFileImport=Une erreur inattendue s''est produite lors du chargement du fichier. couldNotDownload=Impossible de télécharger le fichier : {0} +roles=Rôles sliceRace=Segmenter course slicingARaceWasSuccessful=Segmentation de la course réussie enterNameForSlicedRace=Veuillez saisir un nom pour la course à segmenter. @@ -2097,7 +2122,7 @@ swissTimingUpdateUsername=Nom d''utilisateur pour l''envoi des mises à jour swissTimingUpdatePassword=Mot de passe pour l''envoi des mises à jour allowResizing=Autoriser le redimensionnement resizeSuccessfull=Redimensionnement correctement terminé -resizeUnsuccessful=Redimensionnement impossible: {0} +resizeUnsuccessful=Redimensionnement impossible : {0} setUpStorageService=Veuillez d''abord configurer un service de stockage de fichier. automaticResizeNeedsStorageService=Pour pouvoir utiliser le redimensionnement automatique, un service de stockage de fichier doit être configuré. qrCodeBoatInviteTitle=Vous êtes invité à suivre le bateau {0} pour la régate {1}. @@ -2111,6 +2136,8 @@ qrCodeUnsecureServerRedirect=En suivant ce lien, vous allez être redirigé vers qrCodeUnsecureServerRedirectTitle=Serveur inconnu {0} qrCodeInfoMessage=Veuillez scanner ce code QR avec votre appareil mobile pour poursuivre l''inscription. qrCodeErrorMessage=Désolé, cette fonctionnalité n''est pas disponible actuellement. +soundOff=Son désactivé +turnOffAllSoundChannels=Désactiver tous les canaux sonores tag=Balise tagButtons=Boutons de balises tagPanel=Balises @@ -2196,3 +2223,35 @@ moreLoginInformationSectionSailorProfilesDescription=Une fois connecté(e), vous moreLoginInformationSectionSailorProfilesHeading=Profils de sportifs confirmDeletion=Confirmer la suppression priorityMustBeANonNegativeNumber=Pour la priorité, seule un nombre entier non négatif est valide. +selfServiceServer=Le serveur est en libre-service. +publicServer=Le serveur est public. +updatedServerSetupError=Impossible de mettre à jour la configuration du serveur +updatedServerSetup=Configuration du serveur mise à jour +useExistingUserGroup=Utiliser groupe d''utilisateurs existant +useNewUserGroup=Utiliser nouveau groupe d''utilisateurs +currentGroupOwner=Responsable du groupe actuel +migrateCompetitors=Migrer concurrents +migrateBoats=Migrer bateaux +migrateHierarchyToGroupOwner=Migrer hiérarchie vers le responsable du groupe +serverIsPublicButTenantIsNot=Ce serveur est configuré comme étant public, votre locataire ne correspond pas à ceux du serveur. Les objets que vous avez créés ne seront pas publics si le serveur n''est pas davantage configuré. Modifiez votre locataire par défaut via le profil utilisateur si vous souhaitez un scénario de serveur public par défaut. +serverIsPublicButTenantIsNotAndCouldBeChanged=Ce serveur est configuré comme étant public, votre locataire ne correspond pas à ceux du serveur. Les objets que vous avez créés ne seront pas publics si le serveur n''est pas davantage configuré. Devons-nous modifier le locataire par défaut pour vous ? +copyMembersAndRoles=Copier membres et rôles +invalidSecret=Secret non valide +warningSailInsightVersion=Le serveur est configuré pour être utilisé avec SAP Sailing Boat Tracker 1. Les régates ouvertes sont prises en charge uniquement dans SAP Sailing Boat Tracker 2. Cela peut provoquer des problèmes d''utilisation. +invalidState=Statut non valide +doYouReallyWantToRemoveDeviceConfiguration=Voulez-vous vraiment supprimer la configuration de l''appareil "{0}" ? +errorFetchingSimulationData=Une erreur s''est produite lors de l''accès aux données de simulation : {0} +usernameAndPasswordMustBothBeSet=Le nom d''utilisateur et le mot de passe doivent tous les deux être renseignés ou vides. +explainUserName=Nom d''utilisateur à utiliser pour l''authentification dans le système principal +explainPassword=Mot de passe à utiliser pour l''authentification dans le système principal +addTracTracConnection=Ajouter connexion TracTrac +editTracTracConnection=Modifier connexion TracTrac +filterTracTracConnections=Filtrer connexions TracTrac +creatorName=Nom de l''auteur +addSwissTimingAchivedConnection=Ajouter connexion SwissTimingArchived +editSwissTimingAchivedConnection=Modifier connexion SwissTimingArchived +filterSwissTimingAchivedConnections=Filtrer connexions SwissTimingArchived +editSwissTimingConnections=Modifier connexion SwissTiming +filterSwissTimingConnections=Filtrer connexions SwissTiming +addSwissTimingConnection=Ajouter connexion SwissTiming +updateURL=Mettre à jour URL diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ja.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ja.properties index 385dfe8a518..3c47a985ccf 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ja.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ja.properties @@ -526,6 +526,7 @@ longitude=経度 actionAddEvent=イベント追加 publicationUrl=公開 URL suppress=非表示 +isListedOnHomepage=ホームページに一覧表示 unsuppress=非表示解除 suppressedCompetitors=非表示競技者 mediaPanel=音声と動画 @@ -1026,6 +1027,7 @@ errorGettingIgtimiAuthorizationUrl=Igtimi 権限 URL 取得でエラー発生: { addIgtimiUser=Igtimi ユーザ追加 doYouReallyWantToRemoveLeaderboards=リーダーボードを削除しますか doYouReallyWantToRemoveNonVisibleLeaderboards=フィルタリングされていて現在表示されていないリーダーボードも削除しようとしています。以下のリーダーボードが削除されます。続行しますか。\n\n{0} +doYouReallyWantToRemoveLeaderboardGroup=リーダーボードグループ "{0}" を削除しますか doYouReallyWantToRemoveLeaderboardGroups=リーダーボードグループを削除しますか doYouReallyWantToRemoveNonVisibleLeaderboardGroups=フィルタリングされていて現在表示されていないリーダーボードグループも削除しようとしています。以下のリーダーボードグループが削除されます。続行しますか。\n\n{0} doYouReallyWantToRemoveTrackedRaces=追跡レースを削除しますか @@ -1180,6 +1182,24 @@ controlTrackingFromStartAndFinishTimes=スタート時刻およびフィニッ canBoatsOfCompetitorsChangePerRace=レースごとに競技者の艇を変更可能 canBoatsChange=艇を変更可能 canNotRegisterBoats=艇はレースごとに変更可能な場合にのみここで登録することができ、可能でない場合は競技者と一緒に登録されます。 +competitorRegistrationType=競技者登録タイプ +competitorRegistrationTypeShort=登録 +competitorRegistrationTypeClosed=終了 +competitorRegistrationTypeOpenModerated=調停済未終了 +competitorRegistrationTypeOpenUnmoderated=未調停未終了 +registrationLink=登録リンク +registrationLinkConfig=表示 +registrationLinkDialog=オープンレガッタの登録リンク +registrationLinkDialogQrcode=QR コード +registrationLinkDialogQrcodeExplain=QR コード画像をダウンロードして、それを招待にペーストできます。 +registrationLinkSecret=シークレット +registrationLinkSecretExplain=シークレット文字列が、登録依頼をチェックするために必要な登録リンクに追加されます。すでにパブリックになっているリンクおよび QR コードは、このシークレットを変更する場合はもう機能しません。 +registrationLinkSecretGenerate=生成 +registrationLinkUrl=登録リンク URL +registrationLinkUrlExplain=URL をコピーして、それを招待にペーストできます。 +registrationLinkUrlCopy=クリップボードにコピー +registrationLinkShare=共有 +explainRegistrationLinkDialog=オープンレガッタの競技者は、登録リンクを開くか、スマートフォンで下記の QR コードをスキャンして、自分自身で登録を行うことができます。 numberOfQueueMessagesSent=送信済キューメッセージ数 totalSize=合計サイズ averageMessageSize=メッセージごとの平均サイズ (バイト) @@ -1222,6 +1242,7 @@ enterImageURL=画像 URL を入力... enterVideoURL=動画 URL を入力... enterSponsorImageURL=スポンサー画像 URL を入力... enterRaceName=レース名を入力... +userGroupManagement=ユーザグループ管理 userManagement=ユーザ管理 regattaStructureImport=レガッタ構成のインポート filteredBy=フィルタキー @@ -1249,6 +1270,9 @@ noFleetsDefined=フリートが定義されていません。 successfullyCreatedRegattas=レガッタが登録されました errorTryingToRegisterRacesForTracking=追跡するレース {0} を登録しようとしてエラーが発生: {1}。ライブ/格納 URI 構文をチェックしてください。 errorDeterminingPolarAvailability=レース {0} のポーラー/VPP データの利用可能性の決定でエラー発生: {1} +selectedDetailType=メトリック表示 +errorLoadingAvailableDetailTypes=利用可能なメトリックのロードでエラー発生 +tailColor=テール色 fileStorage=ファイルストレージ active=有効 scoringSchemeHighPointEssOverallDescription=得点数によるスコアです。アクトの勝者が 10 点、2 位が 9 点などと得点します。Extreme Sailing シリーズ全体で同点となった場合は、より多くのアクトで勝者となった競技者を上位とします。それでも同じ場合には、最終アクトの結果を用います。 @@ -1725,7 +1749,7 @@ sapSailInSight=SAP Sail InSight contentSapSailInSight=iPhone、iPad、および Android フォン向け SAP Sail InSight モバイルアプリにより、ヨット競技者はいつでもどこでもレガッタ参加やパフォーマンスを管理することができます。このアプリは SAP Sailing Analytics ソリューションに接続され、競技者が SAP Sail InSight 対応のレガッタへの受付を行い、自分がどこにいるかを艇速や帆走距離などのパフォーマンス指標とともに追跡し、自らのパフォーマンスを分析することを可能にします。 sapSailInSightReadMore=詳細情報 sapSailingBuoyPinger=SAP Sailing Buoy Pinger -contentSapSailingBuoyPinger=Android フォン向け SAP Sailing Buoy Pinger モバイルアプリにより、ヨットレース運営者はいつでもどこでもレース用のマークの位置決めや、マーク設置担当者とのやり取りを簡略化することができます。このアプリは SAP Sailing Analytics ソリューションに接続され、レガッタ運営者がレース用のマークの地理的位置を追跡することを可能にし、レガッタに参加しているセーラーが SAP Sail InSight モバイルアプリを使用できるようにします。 +contentSapSailingBuoyPinger=Android フォン向け SAP Sailing Buoy Pinger モバイルアプリにより、ヨットレース運営者はいつでもどこでもレース用のマークの位置決めや、マーク設置担当者とのやり取りを簡略化することができます。このアプリは SAP Sailing Analytics ソリューションに接続され、レガッタ運営者がレース用のマークの地理的位置を追跡することを可能にし、レガッタに参加しているセーラーが SAP Sail InSight (SAP Sailing Boat Tracker) モバイルアプリを使用できるようにします。 sapSailingBuoyPingerReadMore=詳細情報 postRaceAnalytics=レース後分析 contentPostRaceAnalytics1=セーリングイベントで収集されたデータへのアクセスにより、戦略の策定や帆走の向上に役立つ、セーラーがそのパフォーマンスを評価および分析する機会が提供されます。 @@ -1969,6 +1993,7 @@ errorCalculatingPairingListTemplate=対戦表テンプレート {0} の計算中 errorCreatingPairingList=対戦表 {0} の作成中にエラーが発生しました unexpectedErrorDuringFileImport=ファイルのアップロード時に予期しないエラーが発生しました。 couldNotDownload={0} ファイルをダウンロードできませんでした。 +roles=ロール sliceRace=レースをスライス slicingARaceWasSuccessful=レースがスライスされました。 enterNameForSlicedRace=スライスするレースの名称を入力してください @@ -2111,6 +2136,8 @@ qrCodeUnsecureServerRedirect=指定されたリンクは不明なサイト {0} qrCodeUnsecureServerRedirectTitle={0} 不明なサーバー qrCodeInfoMessage=モバイルデバイスでこの QR コードをスキャンして登録を続行してください qrCodeErrorMessage=この機能は現在使用できません +soundOff=サウンドオフ +turnOffAllSoundChannels=すべてのサウンドチャネルをオフ tag=タグ tagButtons=タグボタン tagPanel=タグ @@ -2196,3 +2223,35 @@ moreLoginInformationSectionSailorProfilesDescription=ログインすると、セ moreLoginInformationSectionSailorProfilesHeading=セーラープロファイル confirmDeletion=削除確認 priorityMustBeANonNegativeNumber=優先度はマイナスでない整数である必要があります +selfServiceServer=サーバにセルフサービスがあります +publicServer=サーバがパブリックです +updatedServerSetupError=サーバ設定を更新できませんでした +updatedServerSetup=サーバ設定が更新されました +useExistingUserGroup=既存ユーザグループを使用 +useNewUserGroup=既存ユーザグループを使用 +currentGroupOwner=現在のグループオーナー +migrateCompetitors=競技者を移行 +migrateBoats=艇を移行 +migrateHierarchyToGroupOwner=階層をグループオーナーに移行 +serverIsPublicButTenantIsNot=このサーバはパブリックとして設定されており、現在のテナントはサーバのものでありません。ユーザが作成したオブジェクトは追加のサーバ設定なしにはパブリックになりません。デフォルトのパブリックサーバシナリオが必要な場合はユーザプロファイルを介してデフォルトのテナントを変更してください。 +serverIsPublicButTenantIsNotAndCouldBeChanged=このサーバはパブリックとして設定されており、現在のテナントはサーバのものではありません。作成したオブジェクトは追加のサーバ設定なしにはパブリックにはなりません。デフォルトのテナントを変更する必要がありますか。 +copyMembersAndRoles=メンバーとロールをコピー +invalidSecret=無効なシークレット +warningSailInsightVersion=このサーバは SAP Sail Insight 1 で使用するために設定されています。オープンレガッタは SAP Sail Insight 2 でのみサポートされています。これにより使用に問題が生じる可能性があります +invalidState=無効なステータス +doYouReallyWantToRemoveDeviceConfiguration=デバイス設定 {0} を削除しますか +errorFetchingSimulationData=シミュレーションデータのフェッチ時にエラーが発生しました: {0} +usernameAndPasswordMustBothBeSet=ユーザ名とパスワードは両方とも入力するか、両方とも空である必要があります +explainUserName=マスタ上で認証のために使用するユーザ名 +explainPassword=マスタ上で認証のために使用するパスワード +addTracTracConnection=TracTrac 接続の追加 +editTracTracConnection=TracTrac 接続の編集 +filterTracTracConnections=TracTrac 接続のフィルタリング +creatorName=作成者名 +addSwissTimingAchivedConnection=SwissTimingArchived 接続の追加 +editSwissTimingAchivedConnection=SwissTimingArchived 接続の編集 +filterSwissTimingAchivedConnections=SwissTimingArchived 接続のフィルタリング +editSwissTimingConnections=SwissTiming 接続の編集 +filterSwissTimingConnections=SwissTiming 接続のフィルタリング +addSwissTimingConnection=SwissTiming 接続の追加 +updateURL=URL 更新 diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_pt.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_pt.properties index 334656e9664..15f2e2fb836 100644 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_pt.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_pt.properties @@ -526,6 +526,7 @@ longitude=Longitude actionAddEvent=Adicionar evento publicationUrl=URL de publicação suppress=Suprimir +isListedOnHomepage=Está listado na home page unsuppress=Anular supressão suppressedCompetitors=Competidores suprimidos mediaPanel=Áudio & Vídeo @@ -1026,6 +1027,7 @@ errorGettingIgtimiAuthorizationUrl=Erro ao obter URL de autorização de Igtimi: addIgtimiUser=Adicionar usuário de Igtimi doYouReallyWantToRemoveLeaderboards=Você tem a certeza que quer remover os painéis de classificação? doYouReallyWantToRemoveNonVisibleLeaderboards=Você está também eliminando painéis de classificação que não estão atualmente visíveis ao filtrar. Os seguintes painéis de classificação serão removidos. Continuar?\n\n{0} +doYouReallyWantToRemoveLeaderboardGroup=Você tem a certeza que quer remover o grupo de painéis de classificação "{0}"? doYouReallyWantToRemoveLeaderboardGroups=Você tem a certeza que quer remover os grupos de painéis de classificação? doYouReallyWantToRemoveNonVisibleLeaderboardGroups=Você está também eliminando grupos de painéis de classificação que não estão atualmente visíveis ao filtrar. Os seguintes grupos de painéis de classificação serão removidos. Continuar?\n\n{0} doYouReallyWantToRemoveTrackedRaces=Você tem a certeza que quer remover as corridas rastreadas? @@ -1180,6 +1182,24 @@ controlTrackingFromStartAndFinishTimes=Rastreamento de controle das horas de par canBoatsOfCompetitorsChangePerRace=Os barcos dos competidores podem mudar por corrida canBoatsChange=Os barcos podem mudar canNotRegisterBoats=Os barcos só podem ser registrados aqui se puderem mudar por corrida, caso contrário, são registrados juntamente com o competidor. +competitorRegistrationType=Tipo de registro de competidor +competitorRegistrationTypeShort=Registro +competitorRegistrationTypeClosed=encerrado +competitorRegistrationTypeOpenModerated=aberto moderado +competitorRegistrationTypeOpenUnmoderated=aberto não moderado +registrationLink=Link de registro +registrationLinkConfig=Visualizar +registrationLinkDialog=Link de registro para regata aberta +registrationLinkDialogQrcode=Código QR +registrationLinkDialogQrcodeExplain=Você pode baixar a imagem do código QR e colá-la em seu convite. +registrationLinkSecret=Chave secreta +registrationLinkSecretExplain=É adicionada uma cadeia secreta ao link de registro, que é necessária para validar uma solicitação de registro. Links já públicos e códigos QR não funcionarão mais se você modificar esta chave secreta. +registrationLinkSecretGenerate=Gerar +registrationLinkUrl=URL de link de registro +registrationLinkUrlExplain=Você pode copiar o URL e colá-lo em seu convite. +registrationLinkUrlCopy=Copiar para o clipboard +registrationLinkShare=Compartilhar +explainRegistrationLinkDialog=Os competidores para regatas abertas podem se registrar a eles próprios abrindo o link de registro ou digitalizando o código QR abaixo com seu smartphone. numberOfQueueMessagesSent=Número de mensagens em fila enviadas totalSize=Tamanho total averageMessageSize=Tamanho médio por mensagem em bytes @@ -1222,6 +1242,7 @@ enterImageURL=Inserir URL de imagem... enterVideoURL=Inserir URL de vídeo... enterSponsorImageURL=Inserir URL de imagem de patrocinador... enterRaceName=Inserir nome da corrida... +userGroupManagement=Administração de grupos de usuários userManagement=Administração de usuários regattaStructureImport=Importação de estrutura da regata filteredBy=filtrado por @@ -1249,6 +1270,9 @@ noFleetsDefined=Nenhuma flotilha definida. successfullyCreatedRegattas=Regatas criadas com êxito errorTryingToRegisterRacesForTracking=Erro ao tentar registrar corridas {0} para rastreamento: {1}. Verificar sintaxe de URI ao vivo/armazenado. errorDeterminingPolarAvailability=Erro ao determinar disponibilidade de dados de carta polar/VPP para corrida {0}: {1} +selectedDetailType=Exibir métrica +errorLoadingAvailableDetailTypes=Erro ao carregar métrica disponível +tailColor=Cor da popa fileStorage=Armazenamento de arquivos active=Ativo scoringSchemeHighPointEssOverallDescription=Pontuação em pontos. O vencedor de uma etapa pontua 10 pontos, o 2º - 9 pontos, .... O desempate na pontuação geral da Extreme Sailing Series é efetuado a favor do competidor com o maior número de vitórias em etapas. Se isso não efetuar o desempate, será utilizado o resultado na última etapa. @@ -1969,6 +1993,7 @@ errorCalculatingPairingListTemplate=Erro ao calcular modelo da lista de pares: { errorCreatingPairingList=Erro ao criar lista de pares: {0} unexpectedErrorDuringFileImport=Ocorreu um erro inesperado durante o carregamento do arquivo. couldNotDownload=Não foi possível baixar o arquivo: {0} +roles=Funções sliceRace=Dividir corrida slicingARaceWasSuccessful=A divisão da corrida foi efetuada com êxito. enterNameForSlicedRace=Inserir um nome para a corrida a ser dividida @@ -2111,6 +2136,8 @@ qrCodeUnsecureServerRedirect=O link indicado redirecionará para o site desconhe qrCodeUnsecureServerRedirectTitle={0} Servidor desconhecido qrCodeInfoMessage=Digitalize este código QR com seu dispositivo móvel para continuar com o registro qrCodeErrorMessage=Esta funcionalidade não está disponível no momento! +soundOff=Som desativado +turnOffAllSoundChannels=Desativar todos os canais de som tag=Etiqueta tagButtons=Botões de etiqueta tagPanel=Etiquetas @@ -2196,3 +2223,35 @@ moreLoginInformationSectionSailorProfilesDescription=Após o logon, você pode a moreLoginInformationSectionSailorProfilesHeading=Perfis de velejadores confirmDeletion=Confirmar eliminação priorityMustBeANonNegativeNumber=A prioridade deve ser um número inteiro não negativo +selfServiceServer=O servidor tem self-service +publicServer=O servidor é público +updatedServerSetupError=Não foi possível atualizar configuração do servidor +updatedServerSetup=Configuração do servidor atualizada +useExistingUserGroup=Utilizar grupo de usuários existente +useNewUserGroup=Utilizar grupo de usuários novo +currentGroupOwner=Proprietário do grupo atual +migrateCompetitors=Migrar competidores +migrateBoats=Migrar barcos +migrateHierarchyToGroupOwner=Migrar hierarquia para proprietário do grupo +serverIsPublicButTenantIsNot=Este servidor está configurado como público, seu inquilino atual não é o do servidor. Os objetos criados por você não serão públicos sem outra configuração do servidor. Modifique seu inquilino padrão mediante o perfil do usuário se pretender um cenário de servidor público padrão. +serverIsPublicButTenantIsNotAndCouldBeChanged=Este servidor está configurado como público, seu inquilino atual não é o do servidor. Os objetos criados por você não serão públicos sem outra configuração do servidor. O inquilino padrão deve ser modificado para você? +copyMembersAndRoles=Copiar membros e funções +invalidSecret=Chave secreta inválida +warningSailInsightVersion=O servidor está configurado para utilização com o SAP Sail Insight 1. As regatas abertas só são suportadas no SAP Sail Insight 2. Isto pode causar problemas na utilização +invalidState=Status inválido +doYouReallyWantToRemoveDeviceConfiguration=Você quer realmente remover a configuração do dispositivo {0}? +errorFetchingSimulationData=Ocorreu um erro ao chamar dados de simulação: {0} +usernameAndPasswordMustBothBeSet=Nome de utilizador e senha devem estar ambos preenchidos ou vazios +explainUserName=Nome de usuário para utilizar para autenticação no mestre +explainPassword=Senha para utilizar para autenticação no mestre +addTracTracConnection=Adicionar conexão TracTrac +editTracTracConnection=Processar conexão TracTrac +filterTracTracConnections=Filtrar conexões TracTrac +creatorName=Nome do autor +addSwissTimingAchivedConnection=Adicionar conexão SwissTimingArchived +editSwissTimingAchivedConnection=Processar conexão SwissTimingArchived +filterSwissTimingAchivedConnections=Filtrar conexões SwissTimingArchived +editSwissTimingConnections=Processar conexão SwissTiming +filterSwissTimingConnections=Filtrar conexões SwissTiming +addSwissTimingConnection=Adicionar conexão SwissTiming +updateURL=Atualizar URL diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties index 988b54643c5..0450793c52e 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_ru.properties @@ -526,6 +526,7 @@ longitude=Долгота actionAddEvent=Добавить событие publicationUrl=URL-адрес публикации suppress=Подавлять +isListedOnHomepage=Отображается на начальной странице unsuppress=Отменить подавление suppressedCompetitors=Подавляемые участники mediaPanel=Аудио и видео @@ -1026,6 +1027,7 @@ errorGettingIgtimiAuthorizationUrl=Ошибка при получении URL-а addIgtimiUser=Добавить пользователя Igtimi doYouReallyWantToRemoveLeaderboards=Действительно удалить эти таблицы лидеров? doYouReallyWantToRemoveNonVisibleLeaderboards=Таблицы лидеров, не отображаемые сейчас из-за фильтрации, также удаляются. Будут удалены следующие таблицы лидеров. Продолжить?\n\n{0} +doYouReallyWantToRemoveLeaderboardGroup=Действительно удалить группу таблиц лидеров "{0}"? doYouReallyWantToRemoveLeaderboardGroups=Действительно удалить эти группы таблиц лидеров? doYouReallyWantToRemoveNonVisibleLeaderboardGroups=Группы таблиц лидеров, не отображаемые сейчас из-за фильтрации, также удаляются. Будут удалены следующие группы таблиц лидеров. Продолжить?\n\n{0} doYouReallyWantToRemoveTrackedRaces=Действительно удалить эти отслеживаемые гонки? @@ -1180,6 +1182,24 @@ controlTrackingFromStartAndFinishTimes=Контролировать отслеж canBoatsOfCompetitorsChangePerRace=Участники могут менять лодки в каждой гонке canBoatsChange=Лодки можно менять canNotRegisterBoats=Лодки можно регистрировать здесь, только при наличии возможности менять их в каждой гонке. В противном случае они регистрируются вместе с участником. +competitorRegistrationType=Тип регистрации участника +competitorRegistrationTypeShort=Регистрация +competitorRegistrationTypeClosed=закрыто +competitorRegistrationTypeOpenModerated=открыто с модерацией +competitorRegistrationTypeOpenUnmoderated=открыто без модерации +registrationLink=Ссылка для регистрации +registrationLinkConfig=Просмотр +registrationLinkDialog=Ссылка для регистрации в открытой регате +registrationLinkDialogQrcode=QR-код +registrationLinkDialogQrcodeExplain=Вы можете выгрузить изображение QR-кода и вставить его в приглашение. +registrationLinkSecret=Секрет +registrationLinkSecretExplain=Строка секрета добавляется в ссылку для регистрации и требуется для проверки запроса на регистрацию. Если вы измените этот секрет, то существующие общедоступные ссылки и QR-коды перестанут действовать. +registrationLinkSecretGenerate=Сгенерировать +registrationLinkUrl=URL ссылки для регистрации +registrationLinkUrlExplain=Вы можете скопировать этот URL и вставить его в приглашение. +registrationLinkUrlCopy=Копировать в буфер обмена +registrationLinkShare=Поделиться +explainRegistrationLinkDialog=Участники открытых регат могут зарегистрироваться, открыв ссылку для регистрации или отсканировав QR-код ниже со своего смартфона. numberOfQueueMessagesSent=Число отправленных сообщений очереди totalSize=Общий размер averageMessageSize=Средний размер сообщения в байтах @@ -1222,6 +1242,7 @@ enterImageURL=Ввести URL-адрес изображения... enterVideoURL=Ввести URL-адрес видео... enterSponsorImageURL=Ввести URL-адрес изображения спонсора... enterRaceName=Ввести название гонки... +userGroupManagement=Управление группами пользователей userManagement=Управление пользователями regattaStructureImport=Импорт структуры регаты filteredBy=отфильтровано по @@ -1249,6 +1270,9 @@ noFleetsDefined=Не определены флоты. successfullyCreatedRegattas=Регаты успешно созданы errorTryingToRegisterRacesForTracking=Ошибка при попытке зарегистрировать гонки {0} для отслеживания: {1}. проверьте синтаксис URI оперативных/хранимых данных. errorDeterminingPolarAvailability=Ошибка при определении доступности полярных/VPP данных для гонки {0}: {1} +selectedDetailType=Показать метрику +errorLoadingAvailableDetailTypes=Ошибка при загрузке доступных метрик +tailColor=Цвет хвоста fileStorage=Хранилище файлов active=Активно scoringSchemeHighPointEssOverallDescription=Оценка в баллах. Победитель в акте получает 10 баллов, 2-й — 9 баллов, .... Любое равенство в общей оценке Extreme Sailing Series разрешается в пользу участника с наибольшим числом побед в актах. В случае равенства числа побед для разрешения используется последний акт. @@ -1969,6 +1993,7 @@ errorCalculatingPairingListTemplate=Ошибка при вычислении ш errorCreatingPairingList=Ошибка при создании списка пар: {0} unexpectedErrorDuringFileImport=При отправке файла возникла непредвиденная ошибка. couldNotDownload=Не удалось загрузить файл: {0} +roles=Роли sliceRace=Сделать срезы гонки slicingARaceWasSuccessful=Срезы гонки сделаны успешно enterNameForSlicedRace=Введите имя для гонки, по которой требуется сделать срезы @@ -2111,6 +2136,8 @@ qrCodeUnsecureServerRedirect=Указанная ссылка открывает qrCodeUnsecureServerRedirectTitle={0} Неизвестный сервер qrCodeInfoMessage=Отсканируйте этот QR-код с помощью мобильного устройства, чтобы продолжить регистрацию qrCodeErrorMessage=Приносим извинения, эта функция сейчас недоступна! +soundOff=Выключить звук +turnOffAllSoundChannels=Выключить все звуковые каналы tag=Тег tagButtons=Кнопки тегирования tagPanel=Теги @@ -2196,3 +2223,35 @@ moreLoginInformationSectionSailorProfilesDescription=После входа в п moreLoginInformationSectionSailorProfilesHeading=Профили участников гонки confirmDeletion=Подтвердить удаление priorityMustBeANonNegativeNumber=Приоритет должен быть не отрицательным целым числом +selfServiceServer=Сервер с самообслуживанием +publicServer=Сервер является общедоступным +updatedServerSetupError=Не удалось обновить настройку сервера +updatedServerSetup=Настройка сервера обновлена +useExistingUserGroup=Используйте существующую группу пользователей +useNewUserGroup=Используйте новую группу пользователей +currentGroupOwner=Владелец текущей группы +migrateCompetitors=Выполнить миграцию участников +migrateBoats=Выполнить миграцию лодок +migrateHierarchyToGroupOwner=Выполнить миграцию иерархии во владельца группы +serverIsPublicButTenantIsNot=Сервер сконфигурирован как общедоступный, ваш текущий тенант не является тенантом сервера. Созданные вами объекты не будут общедоступными без дополнительной настройки конфигурации сервера. Измените тенант по умолчанию через профиль пользователя, если вы хотите использовать сценарий по умолчанию общедоступного сервера. +serverIsPublicButTenantIsNotAndCouldBeChanged=Сервер сконфигурирован как общедоступный, ваш текущий тенант не является тенантом сервера. Созданные вами объекты не будут общедоступными без дополнительной настройки конфигурации сервера. Изменить ваш тенант по умолчанию? +copyMembersAndRoles=Скопировать членов и роли +invalidSecret=Недействительный секрет +warningSailInsightVersion=Сервер сконфигурирован для использования с SAP Sail Insight 1. Открытые регаты поддерживаются только в SAP Sail Insight 2. Это может стать причиной проблем при использовании +invalidState=Недействительный статус +doYouReallyWantToRemoveDeviceConfiguration=Действительно удалить конфигурацию устройства {0}? +errorFetchingSimulationData=Произошла ошибка при вызове данных моделирования: {0} +usernameAndPasswordMustBothBeSet=Имя пользователя и пароль должны быть либо заполненными, либо пустыми +explainUserName=Имя пользователя для аутентификации на главном сервере +explainPassword=Пароль для аутентификации на главном сервере +addTracTracConnection=Добавить соединение TracTrac +editTracTracConnection=Редактировать соединение TracTrac +filterTracTracConnections=Фильтр соединений TracTrac +creatorName=Имя автора +addSwissTimingAchivedConnection=Добавить соединение SwissTimingArchived +editSwissTimingAchivedConnection=Редактировать соединение SwissTimingArchived +filterSwissTimingAchivedConnections=Фильтр соединений SwissTimingArchived +editSwissTimingConnections=Редактировать соединение SwissTiming +filterSwissTimingConnections=Фильтр соединений SwissTiming +addSwissTimingConnection=Добавить соединение SwissTiming +updateURL=Обновить URL diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_zh.properties b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_zh.properties index 6e6681a16f7..dbeb3ba255f 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_zh.properties +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/client/StringMessages_zh.properties @@ -526,6 +526,7 @@ longitude=经度 actionAddEvent=添加活动 publicationUrl=出版 URL suppress=禁止 +isListedOnHomepage=列在主页中 unsuppress=取消禁止 suppressedCompetitors=禁止的参赛队 mediaPanel=音频和视频 @@ -1026,6 +1027,7 @@ errorGettingIgtimiAuthorizationUrl=获取 Igtimi 权限 URL 出错: {0} addIgtimiUser=添加 Igtimi 用户 doYouReallyWantToRemoveLeaderboards=是否确定移除积分榜? doYouReallyWantToRemoveNonVisibleLeaderboards=您还正要删除筛选时目前不可见的积分榜。以下积分榜将移除。是否继续?\n\n{0} +doYouReallyWantToRemoveLeaderboardGroup=是否确定移除积分榜组 "{0}"? doYouReallyWantToRemoveLeaderboardGroups=是否确定移除积分榜组? doYouReallyWantToRemoveNonVisibleLeaderboardGroups=您还正要删除筛选时目前不可见的积分榜组。以下积分榜组将移除。是否继续?\n\n{0} doYouReallyWantToRemoveTrackedRaces=是否确定移除跟踪的比赛轮次? @@ -1180,6 +1182,24 @@ controlTrackingFromStartAndFinishTimes=从开始和结束时间控制跟踪 canBoatsOfCompetitorsChangePerRace=每个比赛轮次可以更改参赛队的船只 canBoatsChange=可以更改船只 canNotRegisterBoats=仅在每个比赛轮次更改船只时,才可以在此处注册船只;否则,与参赛队同时注册。 +competitorRegistrationType=参赛队注册类型 +competitorRegistrationTypeShort=注册 +competitorRegistrationTypeClosed=不公开 +competitorRegistrationTypeOpenModerated=适度公开 +competitorRegistrationTypeOpenUnmoderated=不加节制的公开 +registrationLink=注册链接 +registrationLinkConfig=查看 +registrationLinkDialog=公开赛注册链接 +registrationLinkDialogQrcode=二维码 +registrationLinkDialogQrcodeExplain=您可以下载二维码图像,并将其粘贴到您的邀请中。 +registrationLinkSecret=密钥 +registrationLinkSecretExplain=密钥字符串添加到验证注册申请所需的注册链接。如果您更改此密钥,公共链接和二维码将不再起作用。 +registrationLinkSecretGenerate=生成 +registrationLinkUrl=注册链接 URL +registrationLinkUrlExplain=您可以复制此 URL,并将其粘贴到您的邀请中。 +registrationLinkUrlCopy=复制到剪贴板 +registrationLinkShare=共享 +explainRegistrationLinkDialog=公开赛的参赛队可以通过打开注册链接或使用智能手机扫描下方的二维码来注册。 numberOfQueueMessagesSent=发送的队列消息的数量 totalSize=总大小 averageMessageSize=各消息的平均大小(字节) @@ -1222,6 +1242,7 @@ enterImageURL=输入图像 URL... enterVideoURL=输入视频 URL... enterSponsorImageURL=输入赞助商图像 URL... enterRaceName=输入比赛轮次名称... +userGroupManagement=用户组管理 userManagement=用户管理 regattaStructureImport=比赛结构导入 filteredBy=筛选方式 @@ -1249,6 +1270,9 @@ noFleetsDefined=未定义船队。 successfullyCreatedRegattas=已成功创建比赛 errorTryingToRegisterRacesForTracking=尝试注册比赛轮次{0}用于跟踪出错: {1}。检查实况/存储的 URI 语法。 errorDeterminingPolarAvailability=确定比赛轮次{0}的极坐标/VPP 数据的可用性出错: {1} +selectedDetailType=显示指标 +errorLoadingAvailableDetailTypes=加载可用的指标出错 +tailColor=尾流线颜色 fileStorage=文件存储 active=已激活 scoringSchemeHighPointEssOverallDescription=得分。 分站赛获胜者得 10 分、第 2 名 9 分、.... 在总体极限帆船系列赛中如有平局,以获得最多分站赛名次的参赛队取得胜利。 如果仍有平局,就以最后一个分站赛的名次打破平局。 @@ -1969,6 +1993,7 @@ errorCalculatingPairingListTemplate=计算配对清单模板出错:{0} errorCreatingPairingList=创建配对清单出错:{0} unexpectedErrorDuringFileImport=文件上传期间发生意外错误。 couldNotDownload=无法下载文件:{0} +roles=角色 sliceRace=划分比赛轮次 slicingARaceWasSuccessful=划分比赛轮次成功。 enterNameForSlicedRace=请输入待划分比赛轮次的名称 @@ -2097,7 +2122,7 @@ swissTimingUpdateUsername=用于发送更新的用户名 swissTimingUpdatePassword=用于发送更新的密码 allowResizing=允许重新调整大小 resizeSuccessfull=重新调整大小已成功完成 -resizeUnsuccessful=无法重新调整大小 {0} +resizeUnsuccessful=无法重新调整大小:{0} setUpStorageService=请先设置文件存储服务 automaticResizeNeedsStorageService=自动重新调整大小需要正常运行的 FileStorageService。 qrCodeBoatInviteTitle=您受邀跟踪比赛{1}的船只{0} @@ -2111,6 +2136,8 @@ qrCodeUnsecureServerRedirect=给定的链接将重定向到未知站点{0},请 qrCodeUnsecureServerRedirectTitle={0}未知服务器 qrCodeInfoMessage=请用移动设备扫描此二维码,继续注册 qrCodeErrorMessage=抱歉,此功能目前无法使用! +soundOff=声音关闭 +turnOffAllSoundChannels=关闭所有声道 tag=标记 tagButtons=标记按钮 tagPanel=标记 @@ -2196,3 +2223,35 @@ moreLoginInformationSectionSailorProfilesDescription=登录后,您现在可以 moreLoginInformationSectionSailorProfilesHeading=水手资料 confirmDeletion=确认删除 priorityMustBeANonNegativeNumber=优先级必须是非负整数 +selfServiceServer=服务器具有自助服务 +publicServer=服务器为公共服务器 +updatedServerSetupError=无法更新服务器设置 +updatedServerSetup=服务器设置已更新 +useExistingUserGroup=使用现有用户组 +useNewUserGroup=使用新用户组 +currentGroupOwner=当前组所有者 +migrateCompetitors=迁移参赛队 +migrateBoats=迁移船只 +migrateHierarchyToGroupOwner=迁移层次结构至组所有者 +serverIsPublicButTenantIsNot=此服务器配置为公共服务器,您当前的托管系统不是公共服务器。如果没有进一步的服务器配置,您创建的对象将不会公开。如果需要默认的公共服务器场景,请通过用户参数文件更改默认托管系统。 +serverIsPublicButTenantIsNotAndCouldBeChanged=此服务器配置为公共服务器,您当前的托管系统不是公共服务器。如果没有进一步的服务器配置,您创建的对象将不会公开。是否要为您更改默认托管系统? +copyMembersAndRoles=复制成员和角色 +invalidSecret=密钥无效 +warningSailInsightVersion=此服务器配置为与 SAP Sail Insight 一起使用 1. 仅 SAP Sail Insight 中支持公开赛 2. 这可能会导致使用中出现问题 +invalidState=状态无效 +doYouReallyWantToRemoveDeviceConfiguration=是否确定移除设备配置{0}? +errorFetchingSimulationData=获取模拟数据时发生错误:{0} +usernameAndPasswordMustBothBeSet=用户名和密码必须填写或为空 +explainUserName=用于在主服务器上进行身份验证的用户名 +explainPassword=用于在主服务器上进行身份验证的密码 +addTracTracConnection=添加 TracTrac 连接 +editTracTracConnection=编辑 TracTrac 连接 +filterTracTracConnections=筛选 TracTrac 连接 +creatorName=创建者名称 +addSwissTimingAchivedConnection=添加 SwissTimingArchived 连接 +editSwissTimingAchivedConnection=编辑 SwissTimingArchived 连接 +filterSwissTimingAchivedConnections=筛选 SwissTimingArchived 连接 +editSwissTimingConnections=编辑 SwissTiming 连接 +filterSwissTimingConnections=筛选 SwissTiming 连接 +addSwissTimingConnection=添加 SwissTiming 连接 +updateURL=更新 URL diff --git a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/TracTracConfigurationWithSecurityDTO.java b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/TracTracConfigurationWithSecurityDTO.java index 25e6fd35419..03aad78d061 100755 --- a/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/TracTracConfigurationWithSecurityDTO.java +++ b/java/com.sap.sailing.gwt.ui/src/main/java/com/sap/sailing/gwt/ui/shared/TracTracConfigurationWithSecurityDTO.java @@ -26,6 +26,10 @@ public class TracTracConfigurationWithSecurityDTO implements IsSerializable, Sec public TracTracConfigurationWithSecurityDTO() { } + + public TracTracConfigurationWithSecurityDTO(String creatorName) { + this.creatorName = creatorName; + } public TracTracConfigurationWithSecurityDTO(String name, String jsonUrl, String liveDataURI, String storedDataURI, String courseDesignUpdateUrl, String tractracUsername, String tractracPassword, String creatorName) { diff --git a/java/com.sap.sailing.polars.test/src/com/sap/sailing/polars/windestimation/TestWindEstimationFromManeuversOnAFew505Races.java b/java/com.sap.sailing.polars.test/src/com/sap/sailing/polars/windestimation/TestWindEstimationFromManeuversOnAFew505Races.java index 2dae30bdcdd..b14b6022dfa 100755 --- a/java/com.sap.sailing.polars.test/src/com/sap/sailing/polars/windestimation/TestWindEstimationFromManeuversOnAFew505Races.java +++ b/java/com.sap.sailing.polars.test/src/com/sap/sailing/polars/windestimation/TestWindEstimationFromManeuversOnAFew505Races.java @@ -90,7 +90,7 @@ public class TestWindEstimationFromManeuversOnAFew505Races extends OnlineTracTra CreateModelException, NotEnoughDataHasBeenAddedException { setUp("event_20110609_KielerWoch-505_Race_2"); Wind average = getManeuverBasedAverageWind(); - assertEquals(235, average.getFrom().getDegrees(), 5.0); + assertEquals(250, average.getFrom().getDegrees(), 10.0); } @Test @@ -108,7 +108,7 @@ public class TestWindEstimationFromManeuversOnAFew505Races extends OnlineTracTra CreateModelException, NotEnoughDataHasBeenAddedException { setUp("event_20110609_KielerWoch-505_race_4"); Wind average = getManeuverBasedAverageWind(); - assertEquals(265, average.getFrom().getDegrees(), 9.0); + assertEquals(265, average.getFrom().getDegrees(), 10.0); } @Test diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/celltable/RefreshableSingleSelectionModel.java b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/celltable/RefreshableSingleSelectionModel.java index e8e856d6db4..c2f95573c89 100644 --- a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/celltable/RefreshableSingleSelectionModel.java +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/celltable/RefreshableSingleSelectionModel.java @@ -63,10 +63,10 @@ public class RefreshableSingleSelectionModel extends SingleSelectionModel */ @Override public void setSelected(T item, boolean selected) { - if (comp == null || dontcheckSelectionState || item == null || getSelectedObject() == null) { + if (getEntityIdentityComparator() == null || dontcheckSelectionState || item == null || getSelectedObject() == null) { super.setSelected(item, selected); } else { - if (comp.representSameEntity(getSelectedObject(), item)) { + if (getEntityIdentityComparator().representSameEntity(getSelectedObject(), item)) { super.setSelected(getSelectedObject(), false); // This old version of item will be deleted with the next clear() } super.setSelected(item, selected); @@ -112,7 +112,7 @@ public class RefreshableSingleSelectionModel extends SingleSelectionModel if (selected != null) { clear(); for (final T it : newObjects) { - boolean isEqual = comp == null ? selected.equals(it) : comp.representSameEntity(selected, it); + boolean isEqual = getEntityIdentityComparator() == null ? selected.equals(it) : getEntityIdentityComparator().representSameEntity(selected, it); if (isEqual) { setSelected(it, true); break; diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/filestorage/StringMessages_es.properties b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/filestorage/StringMessages_es.properties index cd8352da30b..1232371c1bb 100644 --- a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/filestorage/StringMessages_es.properties +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/filestorage/StringMessages_es.properties @@ -34,3 +34,7 @@ resetToDefault=Reinicializar los valores predeterminados resetToDefaultInProgress=Reinicializando... settingsRemoved=Parametrizaciones por defecto restablecidas settingsRemovedError=No se han podido restablecer las parametrizaciones por defecto +yes=Sí +no=No +pagerStateInfo={0,number,#,###}-{1,number,#,###} de {2,number,#,###} +pagerStateInfo[false]={0,number,#,###}-{1,number,#,###} de más de {2,number,#,###} diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/filestorage/StringMessages_fr.properties b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/filestorage/StringMessages_fr.properties index 31d36d1750c..e0dd8330a38 100644 --- a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/filestorage/StringMessages_fr.properties +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/filestorage/StringMessages_fr.properties @@ -34,3 +34,7 @@ resetToDefault=Réinitialiser sur les valeurs par défaut resetToDefaultInProgress=Réinitialisation en cours... settingsRemoved=Options par défaut restaurées settingsRemovedError=Impossible de restaurer les options par défaut +yes=Oui +no=Non +pagerStateInfo={0,number,#,###}-{1,number,#,###} sur {2,number,#,###} +pagerStateInfo[false]={0,number,#,###}-{1,number,#,###} sur plus de {2,number,#,###} diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/filestorage/StringMessages_ja.properties b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/filestorage/StringMessages_ja.properties index 529bd6aa94f..952c464fe6a 100644 --- a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/filestorage/StringMessages_ja.properties +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/filestorage/StringMessages_ja.properties @@ -34,3 +34,7 @@ resetToDefault=デフォルトに戻す resetToDefaultInProgress=リセット中です... settingsRemoved=デフォルト設定が復元されました settingsRemovedError=デフォルト設定を復元できませんでした +yes=はい +no=いいえ +pagerStateInfo={2,number,#,###} の {0,number,#,###} ~ {1,number,#,###} +pagerStateInfo[false]={2,number,#,###} 上の {0,number,#,###} ~ {1,number,#,###} diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/filestorage/StringMessages_pt.properties b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/filestorage/StringMessages_pt.properties index 0f74ec6e316..61e670b26d9 100644 --- a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/filestorage/StringMessages_pt.properties +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/filestorage/StringMessages_pt.properties @@ -34,3 +34,7 @@ resetToDefault=Reinicializar para padrão resetToDefaultInProgress=Na reinicialização... settingsRemoved=Configurações padrão restauradas settingsRemovedError=Não foi possível restaurar configurações padrão +yes=Sim +no=Não +pagerStateInfo={0,number,#,###}-{1,number,#,###} de {2,number,#,###} +pagerStateInfo[false]={0,number,#,###}-{1,number,#,###} de mais de {2,number,#,###} diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/filestorage/StringMessages_ru.properties b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/filestorage/StringMessages_ru.properties index da6b238232a..b854f534369 100644 --- a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/filestorage/StringMessages_ru.properties +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/filestorage/StringMessages_ru.properties @@ -34,3 +34,7 @@ resetToDefault=Сбросить на значения по умолчанию resetToDefaultInProgress=Выполняется сброс... settingsRemoved=Настройки по умолчанию восстановлены settingsRemovedError=Не удалось восстановить настройки по умолчанию +yes=Да +no=Нет +pagerStateInfo={0,number,#,###}-{1,number,#,###} из {2,number,#,###} +pagerStateInfo[false]={0,number,#,###}-{1,number,#,###} из более чем {2,number,#,###} diff --git a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/filestorage/StringMessages_zh.properties b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/filestorage/StringMessages_zh.properties index b2cc143f5da..a6bb6e6076f 100644 --- a/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/filestorage/StringMessages_zh.properties +++ b/java/com.sap.sse.gwt/src/com/sap/sse/gwt/client/controls/filestorage/StringMessages_zh.properties @@ -34,3 +34,7 @@ resetToDefault=重置为默认值 resetToDefaultInProgress=正在重置... settingsRemoved=默认设置已恢复 settingsRemovedError=无法恢复默认设置 +yes=是 +no=否 +pagerStateInfo={0,number,#,###}-{1,number,#,###}/{2,number,#,###} +pagerStateInfo[false]={0,number,#,###}-{1,number,#,###}(超过{2,number,#,###}) diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_es.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_es.properties index 4995ccbac9c..bf122e601bc 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_es.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_es.properties @@ -34,6 +34,7 @@ userDetails=Detalles de usuario deleteUser=Borrar usuario deleteUserQuestion=¿Desea borrar el usuario? doYouReallyWantToDeleteUser=¿Está seguro de que desea borrar el usuario {0}? +doYouReallyWantToDeleteNUsers=Do you really want to delete {0} users? account={0}-Cuenta save=Grabar remove=Eliminar @@ -107,5 +108,85 @@ settingsRemovedError=No se han podido restablecer las parametrizaciones por defe showMoreInfoLogin=Regístrese para acceder a más funciones dismiss=Más tarde moreInfo=Más info -pagerStateInfo={0,number,#,###}-{1,number,#,###} de {2,number,#,###} -pagerStateInfo[false]={0,number,#,###}-{1,number,#,###} de más de {2,number,#,###} \ No newline at end of file +editACL=Edit ACL +errorEditingACL=Error editing access control list (ACL). +editAnACL=Edit an access control list (ACL) +createUserGroup=Create user group +removeUserGroup=Remove user group +youHaveToSelectAUserGroup=You have to select a user group. +doYouReallyWantToRemoveUserGroup=Do you really want to remove user group {0}? +couldNotDeleteUserGroup=Could not delete user group. +filterUserGroups=Filter user groups... +id=ID +displayName=Display Name +userGroups=User Groups +errorTryingToLoadRoles=Error trying to load roles: {0} +filterRoles=Filter roles +actions=Actions +actionEdit=Edit +actionRemove=Remove +actionChangeOwnership=Change ownership +errorUpdatingOwnership=Error updating ownership of object {0} +doYouReallyWantToRemoveRole=Do you really want to remove role(s) "{0}"? +errorTryingToDeleteRole=Error trying to delete role "{0}": {1} +pleaseEnterARoleName=Please enter a role name +editRoles=Edit Roles +otherRoleWithNameAlreadyExists=Another role with name "{0}" already exists. +errorCreatingRole=Error creating role "{0}": {1} +errorEditingRoles=Error editing role "{0}": {1} +usersInUserGroup=Users in user group +allUsers=All users +couldNotAddUserToUserGroup=Could not add user {0} to user group {1}: {2} +couldNotRemoveUserFromUserGroup=Could not remove user {0} from user group {1}: {2} +enterUserGroupName=Enter user group name +defaultTenant=User group to use for object creation +pagerStateInfo={0,number,#,###}-{1,number,#,###} of {2,number,#,###} +pagerStateInfo[false]={0,number,#,###}-{1,number,#,###} of over {2,number,#,###} +yes=Yes +no=No +editUser=Edit User +validated=Validated +groups=Groups +group=Group +errorDeletingUser=Se ha producido un error al borrar el usuario {0}: {1} +doYouReallyWantToRemoveUser=Really remove user {0}? +errorTryingToUpdateUser=Error trying to update user {0}: {1} +ownership=Ownership +editObjectOwnership=Edit object ownership +errorObtainingUser=Error obtaining user: {0} +errorObtainingUserGroup=Error obtaining user group: {0} +pleaseWaitUntilUsernameIsResolved=Please wait until user name is resolved +pleaseWaitUntilUserGroupNameIsResolved=Please wait until user group name is resolved +userNotFound=User {0} not found +usergroupNotFound=User group {0} not found +actionChangeACL=Change ACL +editACLForObject=Edit ACL for ''{0}'' +acl=ACL +errorUpdatingAcl=Error updating ACL: {0}. +allowedActionName=Allowed action name +deniedActionName=Denied action name +errorMessageUserGroupNameNotFound=Did not find user group by name {0}. +successMessageAddedUserGroup=Added user group {0}. +successMessageRemovedUserGroup=Removed user group {0}. +allowedActions=Allowed Actions +deniedActions=Denied Actions +migrateGroupOwner=Migrate group owner for hierarchy +errorDeletingUserGroup=Error deleting user group {0}: {1} +enterAtLeastOneOwner=Please enter at least one owner +removeRole=Remove role +addRole=Add role +couldNotAddRoleToGroup=Role {0} could not be added to group {1}. +roleName=Role Name +enabledForAllUsers=Enabled for all users +couldNotDeleteRole=Could not delete role {0}. +couldNotLoadRoles=Could not load roles. +enterUsername=Enter user name +addUser=Add user +couldNotLoadUsers=Could not load users. +couldNotRemoveRoleFromUser=Could not remove role ''{1}'' from user ''{0}''. +couldNotRemovePermissionFromUser=Could not remove permission ''{1}'' from user ''{0}''. +filterPermission=Filter permission +permission=Permission +nullUserGroup= +editRolesAndPermissionsForUser=Edit roles and permissions for user {0} +permissionType:Permission Type diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_fr.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_fr.properties index e601e7d120b..2955becce4f 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_fr.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_fr.properties @@ -34,6 +34,7 @@ userDetails=Détails utilisateur deleteUser=Supprimer utilisateur deleteUserQuestion=Supprimer l''utilisateur ? doYouReallyWantToDeleteUser=Souhaitez-vous vraiment supprimer l''utilisateur {0} ? +doYouReallyWantToDeleteNUsers=Do you really want to delete {0} users? account=Compte {0} save=Enregistrer remove=Supprimer @@ -107,5 +108,85 @@ settingsRemovedError=Impossible de restaurer les options par défaut showMoreInfoLogin=Connectez-vous pour accéder à davantage de fonctionnalités dismiss=Plus tard moreInfo=Plus d''infos -pagerStateInfo={0,number,#,###}-{1,number,#,###} de {2,number,#,###} -pagerStateInfo[false]={0,number,#,###}-{1,number,#,###} de sur {2,number,#,###} \ No newline at end of file +editACL=Edit ACL +errorEditingACL=Error editing access control list (ACL). +editAnACL=Edit an access control list (ACL) +createUserGroup=Create user group +removeUserGroup=Remove user group +youHaveToSelectAUserGroup=You have to select a user group. +doYouReallyWantToRemoveUserGroup=Do you really want to remove user group {0}? +couldNotDeleteUserGroup=Could not delete user group. +filterUserGroups=Filter user groups... +id=ID +displayName=Display Name +userGroups=User Groups +errorTryingToLoadRoles=Error trying to load roles: {0} +filterRoles=Filter roles +actions=Actions +actionEdit=Edit +actionRemove=Remove +actionChangeOwnership=Change ownership +errorUpdatingOwnership=Error updating ownership of object {0} +doYouReallyWantToRemoveRole=Do you really want to remove role(s) "{0}"? +errorTryingToDeleteRole=Error trying to delete role "{0}": {1} +pleaseEnterARoleName=Please enter a role name +editRoles=Edit Roles +otherRoleWithNameAlreadyExists=Another role with name "{0}" already exists. +errorCreatingRole=Error creating role "{0}": {1} +errorEditingRoles=Error editing role "{0}": {1} +usersInUserGroup=Users in user group +allUsers=All users +couldNotAddUserToUserGroup=Could not add user {0} to user group {1}: {2} +couldNotRemoveUserFromUserGroup=Could not remove user {0} from user group {1}: {2} +enterUserGroupName=Enter user group name +defaultTenant=User group to use for object creation +pagerStateInfo={0,number,#,###}-{1,number,#,###} of {2,number,#,###} +pagerStateInfo[false]={0,number,#,###}-{1,number,#,###} of over {2,number,#,###} +yes=Yes +no=No +editUser=Edit User +validated=Validated +groups=Groups +group=Group +errorDeletingUser=Une erreur s''est produite lors de la suppression de l''utilisateur {0}: {1} +doYouReallyWantToRemoveUser=Really remove user {0}? +errorTryingToUpdateUser=Error trying to update user {0}: {1} +ownership=Ownership +editObjectOwnership=Edit object ownership +errorObtainingUser=Error obtaining user: {0} +errorObtainingUserGroup=Error obtaining user group: {0} +pleaseWaitUntilUsernameIsResolved=Please wait until user name is resolved +pleaseWaitUntilUserGroupNameIsResolved=Please wait until user group name is resolved +userNotFound=User {0} not found +usergroupNotFound=User group {0} not found +actionChangeACL=Change ACL +editACLForObject=Edit ACL for ''{0}'' +acl=ACL +errorUpdatingAcl=Error updating ACL: {0}. +allowedActionName=Allowed action name +deniedActionName=Denied action name +errorMessageUserGroupNameNotFound=Did not find user group by name {0}. +successMessageAddedUserGroup=Added user group {0}. +successMessageRemovedUserGroup=Removed user group {0}. +allowedActions=Allowed Actions +deniedActions=Denied Actions +migrateGroupOwner=Migrate group owner for hierarchy +errorDeletingUserGroup=Error deleting user group {0}: {1} +enterAtLeastOneOwner=Please enter at least one owner +removeRole=Remove role +addRole=Add role +couldNotAddRoleToGroup=Role {0} could not be added to group {1}. +roleName=Role Name +enabledForAllUsers=Enabled for all users +couldNotDeleteRole=Could not delete role {0}. +couldNotLoadRoles=Could not load roles. +enterUsername=Enter user name +addUser=Add user +couldNotLoadUsers=Could not load users. +couldNotRemoveRoleFromUser=Could not remove role ''{1}'' from user ''{0}''. +couldNotRemovePermissionFromUser=Could not remove permission ''{1}'' from user ''{0}''. +filterPermission=Filter permission +permission=Permission +nullUserGroup= +editRolesAndPermissionsForUser=Edit roles and permissions for user {0} +permissionType:Permission Type diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_ja.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_ja.properties index ee84f8f0656..c6feaad4fcb 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_ja.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_ja.properties @@ -34,6 +34,7 @@ userDetails=ユーザ詳細 deleteUser=ユーザ削除 deleteUserQuestion=ユーザを削除しますか doYouReallyWantToDeleteUser=ユーザ {0} を削除しますか +doYouReallyWantToDeleteNUsers=Do you really want to delete {0} users? account={0} アカウント save=保存 remove=削除 @@ -107,5 +108,84 @@ settingsRemovedError=デフォルト設定を復元できませんでした showMoreInfoLogin=サインインして追加機能へのアクセス権限を取得してください dismiss=後で moreInfo=追加情報 -pagerStateInfo={2,number,#,###} の {0,number,#,###}-{1,number,#,###} -pagerStateInfo[false]={2,number,#,###} 超の {0,number,#,###}-{1,number,#,###} \ No newline at end of file +editACL=Edit ACL +errorEditingACL=Error editing access control list (ACL). +editAnACL=Edit an access control list (ACL) +createUserGroup=Create user group +removeUserGroup=Remove user group +youHaveToSelectAUserGroup=You have to select a user group. +doYouReallyWantToRemoveUserGroup=Do you really want to remove user group {0}? +couldNotDeleteUserGroup=Could not delete user group. +filterUserGroups=Filter user groups... +id=ID +displayName=Display Name +userGroups=User Groups +errorTryingToLoadRoles=Error trying to load roles: {0} +filterRoles=Filter roles +actions=Actions +actionEdit=Edit +actionRemove=Remove +actionChangeOwnership=Change ownership +errorUpdatingOwnership=Error updating ownership of object {0} +doYouReallyWantToRemoveRole=Do you really want to remove role(s) "{0}"? +errorTryingToDeleteRole=Error trying to delete role "{0}": {1} +pleaseEnterARoleName=Please enter a role name +editRoles=Edit Roles +otherRoleWithNameAlreadyExists=Another role with name "{0}" already exists. +errorCreatingRole=Error creating role "{0}": {1} +errorEditingRoles=Error editing role "{0}": {1} +usersInUserGroup=Users in user group +allUsers=All users +couldNotAddUserToUserGroup=Could not add user {0} to user group {1}: {2} +couldNotRemoveUserFromUserGroup=Could not remove user {0} from user group {1}: {2} +enterUserGroupName=Enter user group name +defaultTenant=User group to use for object creation +pagerStateInfo={0,number,#,###}-{1,number,#,###} of {2,number,#,###} +pagerStateInfo[false]={0,number,#,###}-{1,number,#,###} of over {2,number,#,###} +yes=Yes +no=No +editUser=Edit User +validated=Validated +groups=Groups +group=Group +doYouReallyWantToRemoveUser=Really remove user {0}? +errorTryingToUpdateUser=Error trying to update user {0}: {1} +ownership=Ownership +editObjectOwnership=Edit object ownership +errorObtainingUser=Error obtaining user: {0} +errorObtainingUserGroup=Error obtaining user group: {0} +pleaseWaitUntilUsernameIsResolved=Please wait until user name is resolved +pleaseWaitUntilUserGroupNameIsResolved=Please wait until user group name is resolved +userNotFound=User {0} not found +usergroupNotFound=User group {0} not found +actionChangeACL=Change ACL +editACLForObject=Edit ACL for ''{0}'' +acl=ACL +errorUpdatingAcl=Error updating ACL: {0}. +allowedActionName=Allowed action name +deniedActionName=Denied action name +errorMessageUserGroupNameNotFound=Did not find user group by name {0}. +successMessageAddedUserGroup=Added user group {0}. +successMessageRemovedUserGroup=Removed user group {0}. +allowedActions=Allowed Actions +deniedActions=Denied Actions +migrateGroupOwner=Migrate group owner for hierarchy +errorDeletingUserGroup=Error deleting user group {0}: {1} +enterAtLeastOneOwner=Please enter at least one owner +removeRole=Remove role +addRole=Add role +couldNotAddRoleToGroup=Role {0} could not be added to group {1}. +roleName=Role Name +enabledForAllUsers=Enabled for all users +couldNotDeleteRole=Could not delete role {0}. +couldNotLoadRoles=Could not load roles. +enterUsername=Enter user name +addUser=Add user +couldNotLoadUsers=Could not load users. +couldNotRemoveRoleFromUser=Could not remove role ''{1}'' from user ''{0}''. +couldNotRemovePermissionFromUser=Could not remove permission ''{1}'' from user ''{0}''. +filterPermission=Filter permission +permission=Permission +nullUserGroup= +editRolesAndPermissionsForUser=Edit roles and permissions for user {0} +permissionType:Permission Type diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_pt.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_pt.properties index 18ff4684cd6..5594b54ee6b 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_pt.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_pt.properties @@ -34,6 +34,7 @@ userDetails=Detalhes do usuário deleteUser=Eliminar usuário deleteUserQuestion=Eliminar usuário? doYouReallyWantToDeleteUser=Eliminar o usuário {0}? +doYouReallyWantToDeleteNUsers=Do you really want to delete {0} users? account=Conta {0} save=Gravar remove=Eliminar @@ -107,5 +108,85 @@ settingsRemovedError=Não foi possível restaurar configurações padrão showMoreInfoLogin=Efetue o logon para obter acesso a mais funcionalidades dismiss=Mais tarde moreInfo=Mais informação -pagerStateInfo={0,number,#,###}-{1,number,#,###} de {2,number,#,###} -pagerStateInfo[false]={0,number,#,###}-{1,number,#,###} de mais de {2,number,#,###} \ No newline at end of file +editACL=Edit ACL +errorEditingACL=Error editing access control list (ACL). +editAnACL=Edit an access control list (ACL) +createUserGroup=Create user group +removeUserGroup=Remove user group +youHaveToSelectAUserGroup=You have to select a user group. +doYouReallyWantToRemoveUserGroup=Do you really want to remove user group {0}? +couldNotDeleteUserGroup=Could not delete user group. +filterUserGroups=Filter user groups... +id=ID +displayName=Display Name +userGroups=User Groups +errorTryingToLoadRoles=Error trying to load roles: {0} +filterRoles=Filter roles +actions=Actions +actionEdit=Edit +actionRemove=Remove +actionChangeOwnership=Change ownership +errorUpdatingOwnership=Error updating ownership of object {0} +doYouReallyWantToRemoveRole=Do you really want to remove role(s) "{0}"? +errorTryingToDeleteRole=Error trying to delete role "{0}": {1} +pleaseEnterARoleName=Please enter a role name +editRoles=Edit Roles +otherRoleWithNameAlreadyExists=Another role with name "{0}" already exists. +errorCreatingRole=Error creating role "{0}": {1} +errorEditingRoles=Error editing role "{0}": {1} +usersInUserGroup=Users in user group +allUsers=All users +couldNotAddUserToUserGroup=Could not add user {0} to user group {1}: {2} +couldNotRemoveUserFromUserGroup=Could not remove user {0} from user group {1}: {2} +enterUserGroupName=Enter user group name +defaultTenant=User group to use for object creation +pagerStateInfo={0,number,#,###}-{1,number,#,###} of {2,number,#,###} +pagerStateInfo[false]={0,number,#,###}-{1,number,#,###} of over {2,number,#,###} +yes=Yes +no=No +editUser=Edit User +validated=Validated +groups=Groups +group=Group +errorDeletingUser=Ocorreu um erro ao eliminar o usuário {0}: {1} +doYouReallyWantToRemoveUser=Really remove user {0}? +errorTryingToUpdateUser=Error trying to update user {0}: {1} +ownership=Ownership +editObjectOwnership=Edit object ownership +errorObtainingUser=Error obtaining user: {0} +errorObtainingUserGroup=Error obtaining user group: {0} +pleaseWaitUntilUsernameIsResolved=Please wait until user name is resolved +pleaseWaitUntilUserGroupNameIsResolved=Please wait until user group name is resolved +userNotFound=User {0} not found +usergroupNotFound=User group {0} not found +actionChangeACL=Change ACL +editACLForObject=Edit ACL for ''{0}'' +acl=ACL +errorUpdatingAcl=Error updating ACL: {0}. +allowedActionName=Allowed action name +deniedActionName=Denied action name +errorMessageUserGroupNameNotFound=Did not find user group by name {0}. +successMessageAddedUserGroup=Added user group {0}. +successMessageRemovedUserGroup=Removed user group {0}. +allowedActions=Allowed Actions +deniedActions=Denied Actions +migrateGroupOwner=Migrate group owner for hierarchy +errorDeletingUserGroup=Error deleting user group {0}: {1} +enterAtLeastOneOwner=Please enter at least one owner +removeRole=Remove role +addRole=Add role +couldNotAddRoleToGroup=Role {0} could not be added to group {1}. +roleName=Role Name +enabledForAllUsers=Enabled for all users +couldNotDeleteRole=Could not delete role {0}. +couldNotLoadRoles=Could not load roles. +enterUsername=Enter user name +addUser=Add user +couldNotLoadUsers=Could not load users. +couldNotRemoveRoleFromUser=Could not remove role ''{1}'' from user ''{0}''. +couldNotRemovePermissionFromUser=Could not remove permission ''{1}'' from user ''{0}''. +filterPermission=Filter permission +permission=Permission +nullUserGroup= +editRolesAndPermissionsForUser=Edit roles and permissions for user {0} +permissionType:Permission Type diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_ru.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_ru.properties index 1d22671e9d9..7cab3ce359f 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_ru.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_ru.properties @@ -34,6 +34,7 @@ userDetails=Данные пользователя deleteUser=Удалить пользователя deleteUserQuestion=Удалить пользователя? doYouReallyWantToDeleteUser=Действительно удалить пользователя {0}? +doYouReallyWantToDeleteNUsers=Do you really want to delete {0} users? account={0}-учетная запись save=Сохранить remove=Удалить @@ -107,5 +108,85 @@ settingsRemovedError=Не удалось восстановить настрой showMoreInfoLogin=Выполните вход, чтобы получить доступ к дополнительным функциям dismiss=Позже moreInfo=Дополнительная информация -pagerStateInfo={0,number,#,###}-{1,number,#,###} из {2,number,#,###} -pagerStateInfo[false]={0,number,#,###}-{1,number,#,###} из {2,number,#,###} \ No newline at end of file +editACL=Edit ACL +errorEditingACL=Error editing access control list (ACL). +editAnACL=Edit an access control list (ACL) +createUserGroup=Create user group +removeUserGroup=Remove user group +youHaveToSelectAUserGroup=You have to select a user group. +doYouReallyWantToRemoveUserGroup=Do you really want to remove user group {0}? +couldNotDeleteUserGroup=Could not delete user group. +filterUserGroups=Filter user groups... +id=ID +displayName=Display Name +userGroups=User Groups +errorTryingToLoadRoles=Error trying to load roles: {0} +filterRoles=Filter roles +actions=Actions +actionEdit=Edit +actionRemove=Remove +actionChangeOwnership=Change ownership +errorUpdatingOwnership=Error updating ownership of object {0} +doYouReallyWantToRemoveRole=Do you really want to remove role(s) "{0}"? +errorTryingToDeleteRole=Error trying to delete role "{0}": {1} +pleaseEnterARoleName=Please enter a role name +editRoles=Edit Roles +otherRoleWithNameAlreadyExists=Another role with name "{0}" already exists. +errorCreatingRole=Error creating role "{0}": {1} +errorEditingRoles=Error editing role "{0}": {1} +usersInUserGroup=Users in user group +allUsers=All users +couldNotAddUserToUserGroup=Could not add user {0} to user group {1}: {2} +couldNotRemoveUserFromUserGroup=Could not remove user {0} from user group {1}: {2} +enterUserGroupName=Enter user group name +defaultTenant=User group to use for object creation +pagerStateInfo={0,number,#,###}-{1,number,#,###} of {2,number,#,###} +pagerStateInfo[false]={0,number,#,###}-{1,number,#,###} of over {2,number,#,###} +yes=Yes +no=No +editUser=Edit User +validated=Validated +groups=Groups +group=Group +errorDeletingUser=При удалении пользователя {0} возникла ошибка: {1} +doYouReallyWantToRemoveUser=Really remove user {0}? +errorTryingToUpdateUser=Error trying to update user {0}: {1} +ownership=Ownership +editObjectOwnership=Edit object ownership +errorObtainingUser=Error obtaining user: {0} +errorObtainingUserGroup=Error obtaining user group: {0} +pleaseWaitUntilUsernameIsResolved=Please wait until user name is resolved +pleaseWaitUntilUserGroupNameIsResolved=Please wait until user group name is resolved +userNotFound=User {0} not found +usergroupNotFound=User group {0} not found +actionChangeACL=Change ACL +editACLForObject=Edit ACL for ''{0}'' +acl=ACL +errorUpdatingAcl=Error updating ACL: {0}. +allowedActionName=Allowed action name +deniedActionName=Denied action name +errorMessageUserGroupNameNotFound=Did not find user group by name {0}. +successMessageAddedUserGroup=Added user group {0}. +successMessageRemovedUserGroup=Removed user group {0}. +allowedActions=Allowed Actions +deniedActions=Denied Actions +migrateGroupOwner=Migrate group owner for hierarchy +errorDeletingUserGroup=Error deleting user group {0}: {1} +enterAtLeastOneOwner=Please enter at least one owner +removeRole=Remove role +addRole=Add role +couldNotAddRoleToGroup=Role {0} could not be added to group {1}. +roleName=Role Name +enabledForAllUsers=Enabled for all users +couldNotDeleteRole=Could not delete role {0}. +couldNotLoadRoles=Could not load roles. +enterUsername=Enter user name +addUser=Add user +couldNotLoadUsers=Could not load users. +couldNotRemoveRoleFromUser=Could not remove role ''{1}'' from user ''{0}''. +couldNotRemovePermissionFromUser=Could not remove permission ''{1}'' from user ''{0}''. +filterPermission=Filter permission +permission=Permission +nullUserGroup= +editRolesAndPermissionsForUser=Edit roles and permissions for user {0} +permissionType:Permission Type diff --git a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_zh.properties b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_zh.properties index 0141edd0b0a..080e3cae6a3 100644 --- a/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_zh.properties +++ b/java/com.sap.sse.security.ui/src/main/java/com/sap/sse/security/ui/client/i18n/StringMessages_zh.properties @@ -34,6 +34,7 @@ userDetails=用户详细信息 deleteUser=删除用户 deleteUserQuestion=是否删除用户? doYouReallyWantToDeleteUser=是否确定删除用户{0}? +doYouReallyWantToDeleteNUsers=Do you really want to delete {0} users? account={0} 账户 save=保存 remove=移除 @@ -107,5 +108,84 @@ settingsRemovedError=无法恢复默认设置 showMoreInfoLogin=请登录,以访问更多功能 dismiss=稍后 moreInfo=更多信息 -pagerStateInfo={0,number,#,###}-{1,number,#,###}/{2,number,#,###} -pagerStateInfo[false]={0,number,#,###}-{1,number,#,###}/{2,number,#,###} 以上 \ No newline at end of file +editACL=Edit ACL +errorEditingACL=Error editing access control list (ACL). +editAnACL=Edit an access control list (ACL) +createUserGroup=Create user group +removeUserGroup=Remove user group +youHaveToSelectAUserGroup=You have to select a user group. +doYouReallyWantToRemoveUserGroup=Do you really want to remove user group {0}? +couldNotDeleteUserGroup=Could not delete user group. +filterUserGroups=Filter user groups... +id=ID +displayName=Display Name +userGroups=User Groups +errorTryingToLoadRoles=Error trying to load roles: {0} +filterRoles=Filter roles +actions=Actions +actionEdit=Edit +actionRemove=Remove +actionChangeOwnership=Change ownership +errorUpdatingOwnership=Error updating ownership of object {0} +doYouReallyWantToRemoveRole=Do you really want to remove role(s) "{0}"? +errorTryingToDeleteRole=Error trying to delete role "{0}": {1} +pleaseEnterARoleName=Please enter a role name +editRoles=Edit Roles +otherRoleWithNameAlreadyExists=Another role with name "{0}" already exists. +errorCreatingRole=Error creating role "{0}": {1} +errorEditingRoles=Error editing role "{0}": {1} +usersInUserGroup=Users in user group +allUsers=All users +couldNotAddUserToUserGroup=Could not add user {0} to user group {1}: {2} +couldNotRemoveUserFromUserGroup=Could not remove user {0} from user group {1}: {2} +enterUserGroupName=Enter user group name +defaultTenant=User group to use for object creation +pagerStateInfo={0,number,#,###}-{1,number,#,###} of {2,number,#,###} +pagerStateInfo[false]={0,number,#,###}-{1,number,#,###} of over {2,number,#,###} +yes=Yes +no=No +editUser=Edit User +validated=Validated +groups=Groups +group=Group +doYouReallyWantToRemoveUser=Really remove user {0}? +errorTryingToUpdateUser=Error trying to update user {0}: {1} +ownership=Ownership +editObjectOwnership=Edit object ownership +errorObtainingUser=Error obtaining user: {0} +errorObtainingUserGroup=Error obtaining user group: {0} +pleaseWaitUntilUsernameIsResolved=Please wait until user name is resolved +pleaseWaitUntilUserGroupNameIsResolved=Please wait until user group name is resolved +userNotFound=User {0} not found +usergroupNotFound=User group {0} not found +actionChangeACL=Change ACL +editACLForObject=Edit ACL for ''{0}'' +acl=ACL +errorUpdatingAcl=Error updating ACL: {0}. +allowedActionName=Allowed action name +deniedActionName=Denied action name +errorMessageUserGroupNameNotFound=Did not find user group by name {0}. +successMessageAddedUserGroup=Added user group {0}. +successMessageRemovedUserGroup=Removed user group {0}. +allowedActions=Allowed Actions +deniedActions=Denied Actions +migrateGroupOwner=Migrate group owner for hierarchy +errorDeletingUserGroup=Error deleting user group {0}: {1} +enterAtLeastOneOwner=Please enter at least one owner +removeRole=Remove role +addRole=Add role +couldNotAddRoleToGroup=Role {0} could not be added to group {1}. +roleName=Role Name +enabledForAllUsers=Enabled for all users +couldNotDeleteRole=Could not delete role {0}. +couldNotLoadRoles=Could not load roles. +enterUsername=Enter user name +addUser=Add user +couldNotLoadUsers=Could not load users. +couldNotRemoveRoleFromUser=Could not remove role ''{1}'' from user ''{0}''. +couldNotRemovePermissionFromUser=Could not remove permission ''{1}'' from user ''{0}''. +filterPermission=Filter permission +permission=Permission +nullUserGroup= +editRolesAndPermissionsForUser=Edit roles and permissions for user {0} +permissionType:Permission Type diff --git a/translation_v2.json b/translation_v2.json index d4c505cba7f..bcb4436a3b7 100644 --- a/translation_v2.json +++ b/translation_v2.json @@ -177,6 +177,72 @@ "pseudoLocFolderPath":"." } ] + }, + { + "collectionName":"BuoyPingerAppAndroid", + "folders":[ + { + "startingFolderPath": "mobile/com.sap.sailing.android.buoy.positioning.app/res/values/**", + "sourceFilters":["strings.xml"], + "targetFolderPath":"../values-[langCode]", + "targetFileNamingConvention":"[filename].[extension]" + } + ] + }, + { + "collectionName":"BuoyPingerAppAndroid", + "folders":[ + { + "startingFolderPath": "mobile/com.sap.sailing.android.buoy.positioning.app/res/values-land/**", + "sourceFilters":["strings.xml"], + "targetFolderPath":"../values-[langCode]-land", + "targetFileNamingConvention":"[filename].[extension]" + } + ] + }, + { + "collectionName":"RaceManagerAppAndroid", + "folders":[ + { + "startingFolderPath": "mobile/com.sap.sailing.racecommittee.app/res/**", + "sourceFilters":["strings.xml"], + "targetFolderPath":"../values-[langCode]", + "targetFileNamingConvention":"[filename].[extension]" + } + ] + }, + { + "collectionName":"SailInsightAppAndroid", + "folders":[ + { + "startingFolderPath": "mobile/com.sap.sailing.android.tracking.app/res/**", + "sourceFilters":["strings.xml"], + "targetFolderPath":"../values-[langCode]", + "targetFileNamingConvention":"[filename].[extension]" + } + ] + }, + { + "collectionName":"AndroidAppsShared", + "folders":[ + { + "startingFolderPath": "mobile/com.sap.sailing.android.shared/res/**", + "sourceFilters":["strings.xml"], + "targetFolderPath":"../values-[langCode]", + "targetFileNamingConvention":"[filename].[extension]" + } + ] + }, + { + "collectionName":"SailInsightAppIOS", + "folders":[ + { + "startingFolderPath": "ios/SAPTracker/src/xcode/SAPTracker/**", + "sourceFilters":["*.strings"], + "targetFolderPath":"../[langCode].lproj", + "targetFileNamingConvention":"[filename].[extension]" + } + ] } ], "defaultConfiguration":{