Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: 9e86d544 by tchemit at 2018-11-13T23:51:34Z Traductions espagnoles - update i18n editor (See #1165) - - - - - c4dd8462 by tchemit at 2018-11-14T00:00:25Z Traductions espagnoles - add first IEO es translations :) editor (See #1165) - - - - - 4 changed files: - client-configuration/src/main/resources/observe-log4j2.xml - client-core/src/main/java/fr/ird/observe/client/ui/actions/main/menu/config/TranslateAction.java - observe-i18n/src/main/i18n/translations/observe_es_ES.properties - pom.xml Changes: ===================================== client-configuration/src/main/resources/observe-log4j2.xml ===================================== @@ -43,6 +43,10 @@ <AppenderRef ref="console"/> <AppenderRef ref="File"/> </Logger> + <Logger name="org.nuiton.i18n.editor" level="info" additivity="false"> + <AppenderRef ref="console"/> + <AppenderRef ref="File"/> + </Logger> <Logger name="org.nuiton.topia" level="info" additivity="false"> <AppenderRef ref="console"/> <AppenderRef ref="File"/> ===================================== client-core/src/main/java/fr/ird/observe/client/ui/actions/main/menu/config/TranslateAction.java ===================================== @@ -10,12 +10,12 @@ package fr.ird.observe.client.ui.actions.main.menu.config; * it under the terms of the GNU General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public * License along with this program. If not, see * <http://www.gnu.org/licenses/gpl-3.0.html>. @@ -23,7 +23,6 @@ package fr.ird.observe.client.ui.actions.main.menu.config; */ import fr.ird.observe.client.ObserveSwingApplicationContext; -import fr.ird.observe.client.ObserveSwingTechnicalException; import fr.ird.observe.client.configuration.ClientConfig; import fr.ird.observe.client.ui.ObserveMainUI; import fr.ird.observe.client.ui.ObserveUICallback; @@ -39,7 +38,6 @@ import java.awt.event.ActionEvent; import java.awt.event.WindowAdapter; import java.awt.event.WindowEvent; import java.io.File; -import java.io.IOException; import static io.ultreia.java4all.i18n.I18n.t; @@ -67,7 +65,7 @@ public class TranslateAction extends MenuActionSupport { ClientConfig config = ObserveSwingApplicationContext.get().getConfig(); File i18nDirectory = config.getI18nDirectory(); - Project model = new Project(I18n.getLanguageProvider()); + Project model = new Project(I18n.getLanguageProvider(), i18nDirectory.toPath()); ProjectUI projectUI = new ProjectUI(getMainUI(), model); projectUI.toggleFilter(); @@ -75,12 +73,7 @@ public class TranslateAction extends MenuActionSupport { @Override public void windowClosed(WindowEvent e) { if (model.getLastExport() != null) { - log.info(String.format("Found existing i18n export, will merge it to user i18n data (%s).", i18nDirectory)); - try { - model.mergeExport(i18nDirectory); - } catch (IOException e1) { - throw new ObserveSwingTechnicalException("Can't merge i18n export", e1); - } + log.info("Found existing i18n export, will reload i18n"); UIHelper.displayInfo(t("observe.title.reload.i18n"), t("observe.message.reload.i18n")); ObserveUICallback.application.run(); } ===================================== observe-i18n/src/main/i18n/translations/observe_es_ES.properties ===================================== @@ -367,12 +367,12 @@ observe.common.ActivityDto.action.delete.tip=Eliminar la actividad observe.common.ActivityDto.action.goToOpen=Acceder a la actividad abierta observe.common.ActivityDto.action.goToOpen.short=Actividad abierta observe.common.ActivityDto.action.goToOpen.tip=Acceder a la actividad abierta -observe.common.ActivityDto.action.goToSelected=Acceder a la actividad +observe.common.ActivityDto.action.goToSelected=Acceder a la actividad seleccionada observe.common.ActivityDto.action.goToSelected.tip=Acceder a la actividad seleccionada observe.common.ActivityDto.action.reopen.tip=Reabrir la actividad observe.common.ActivityDto.action.reopenSelected=Reabrir la actividad observe.common.ActivityDto.action.reopenSelected.tip=Reabrir la actividad seleccionada -observe.common.ActivityDto.list=Lista de las actividades +observe.common.ActivityDto.list=Lista de actividades observe.common.ActivityLogbookDto.action.goToOpen.short=Logbook - Open activity \#TODO observe.common.ActivityLogbookDto.action.goToOpen.tip=Go to open activity (Logbook) \#TODO observe.common.ActivityLonglineDto.action.addSet=Añadir la operación de pesca @@ -380,14 +380,14 @@ observe.common.ActivityLonglineDto.action.addSet.tip=Añadir la operación de pe observe.common.ActivityLonglineDto.action.moves=Cambiar de marea observe.common.ActivityLonglineDto.action.moves.tip=Cambiar la marea de las actividades seleccionas observe.common.ActivityLonglineDto.message.active.found=Actividad abierta -observe.common.ActivityLonglineDto.message.active.found.for.other.trip=Existe una actividad abierta en otra ruta. +observe.common.ActivityLonglineDto.message.active.found.for.other.trip=Existe una actividad abierta en otra marea. observe.common.ActivityLonglineDto.message.creating=Actividad en proceso de creación. observe.common.ActivityLonglineDto.message.no.active.found=Ninguna actividad abierta, puede crear una nueva o reabrir una. -observe.common.ActivityLonglineDto.message.no.active.found.for.other.trip=Ninguna actividad abierta en esta ruta. -observe.common.ActivityLonglineDto.message.nonForTrip=< Ninguna actividad por la marea actual > +observe.common.ActivityLonglineDto.message.no.active.found.for.other.trip=Ninguna actividad abierta en esta marea. +observe.common.ActivityLonglineDto.message.nonForTrip=< Ninguna actividad para la marea actual > observe.common.ActivityLonglineDto.message.not.open=La actividad no está abierta, imposible modificar. observe.common.ActivityLonglineDto.message.updating=Se está modificando la actividad actual. -observe.common.ActivityLonglineDto.timeStamp=Timestamp +observe.common.ActivityLonglineDto.timeStamp=FechaHora observe.common.ActivityLonglineDto.titles=Actividades observe.common.ActivityLonglineLogbookDto.action.addSet=Añadir la operación de pesca observe.common.ActivityLonglineLogbookDto.action.addSet.tip=Añadir la operación de pesca asociada a esta actividad @@ -401,7 +401,7 @@ observe.common.ActivityLonglineLogbookDto.currentDirection=Current direction (° observe.common.ActivityLonglineLogbookDto.currentSpeed=Current speed (kt) \#TODO observe.common.ActivityLonglineLogbookDto.dataQuality=Qualité de donnée \#TODO observe.common.ActivityLonglineLogbookDto.date=Día de observación -observe.common.ActivityLonglineLogbookDto.fpaZone=Zona FPA +observe.common.ActivityLonglineLogbookDto.fpaZone=ZEE observe.common.ActivityLonglineLogbookDto.latitude=Latitud observe.common.ActivityLonglineLogbookDto.list.message.none=< Ninguna actividad por la marea actual > observe.common.ActivityLonglineLogbookDto.longitude=Longitude @@ -414,7 +414,7 @@ observe.common.ActivityLonglineLogbookDto.message.not.open=La actividad no está observe.common.ActivityLonglineLogbookDto.message.updating=Se está modificando la actividad actual. observe.common.ActivityLonglineLogbookDto.quadrant=Quadrant observe.common.ActivityLonglineLogbookDto.relatedObservedActivity=Related observed activity \#TODO -observe.common.ActivityLonglineLogbookDto.seaSurfaceTemperature=Temperatura de la superficie +observe.common.ActivityLonglineLogbookDto.seaSurfaceTemperature=Temperatura de superficie observe.common.ActivityLonglineLogbookDto.time=Hora observe.common.ActivityLonglineLogbookDto.timeStamp=Timestamp observe.common.ActivityLonglineLogbookDto.title=Actividad @@ -432,7 +432,7 @@ observe.common.ActivityLonglineObsDto.action.moves.tip=Cambiar la marea de las a observe.common.ActivityLonglineObsDto.comment=Comentario de la actividad observe.common.ActivityLonglineObsDto.dataQuality=Qualité de donnée \#TODO observe.common.ActivityLonglineObsDto.date=Día de observación -observe.common.ActivityLonglineObsDto.fpaZone=Zona FPA +observe.common.ActivityLonglineObsDto.fpaZone=ZEE observe.common.ActivityLonglineObsDto.latitude=Latitud observe.common.ActivityLonglineObsDto.list.message.none=< Ninguna actividad por la marea actual > observe.common.ActivityLonglineObsDto.longitude=Longitude @@ -444,7 +444,7 @@ observe.common.ActivityLonglineObsDto.message.no.active.found.for.other.trip=Nin observe.common.ActivityLonglineObsDto.message.not.open=La actividad no está abierta, imposible modificar. observe.common.ActivityLonglineObsDto.message.updating=Se está modificando la actividad actual. observe.common.ActivityLonglineObsDto.quadrant=Quadrant -observe.common.ActivityLonglineObsDto.seaSurfaceTemperature=Temperatura de la superficie +observe.common.ActivityLonglineObsDto.seaSurfaceTemperature=Temperatura de superficie observe.common.ActivityLonglineObsDto.time=Hora observe.common.ActivityLonglineObsDto.timeStamp=Timestamp observe.common.ActivityLonglineObsDto.title=Actividad @@ -456,7 +456,7 @@ observe.common.ActivityLonglineObsEncounterDto.comment=Comentarios observe.common.ActivityLonglineObsSensorUsedDto.comment=Comentarios observe.common.ActivityObsDto.action.goToOpen.short=Observations - Open activity \#TODO observe.common.ActivityObsDto.action.goToOpen.tip=Go to open activity (Observations) \#TODO -observe.common.ActivitySeineDto.action.addFloatingObject=Añadir un DCP +observe.common.ActivitySeineDto.action.addFloatingObject=Añadir un FOB observe.common.ActivitySeineDto.action.addFloatingObject.tip=Añadir un objeto flotante a la actividad observe.common.ActivitySeineDto.action.addSet=Añadir un lance observe.common.ActivitySeineDto.action.addSet.tip=Añadir el lance de la actividad @@ -464,13 +464,13 @@ observe.common.ActivitySeineDto.action.moves=Cambiar de ruta observe.common.ActivitySeineDto.action.moves.tip=Cambiar la ruta de las actividades seleccionadas observe.common.ActivitySeineDto.availableObservedSystem=Sistemas observados disponibles observe.common.ActivitySeineDto.comment=Comentario de la actividad -observe.common.ActivitySeineDto.coordinates=Coordenada -observe.common.ActivitySeineDto.currentFpaZone=Zona FPA actual +observe.common.ActivitySeineDto.coordinates=Coordenadas +observe.common.ActivitySeineDto.currentFpaZone=ZEE actual observe.common.ActivitySeineDto.dataQuality=Qualité de donnée \#TODO observe.common.ActivitySeineDto.detectionMode=Modo de detección observe.common.ActivitySeineDto.error.no.activity.6=La actividad con código 6 no se ha encontrado en la base de datos. observe.common.ActivitySeineDto.ersId=Id ERS -observe.common.ActivitySeineDto.floatingObjectEmpty=Objeto flotante vacía +observe.common.ActivitySeineDto.floatingObjectEmpty=Objeto flotante sin registrar observe.common.ActivitySeineDto.generalTab=Actividad y Posición observe.common.ActivitySeineDto.latitude=Latitud observe.common.ActivitySeineDto.list.message.none=< Ninguna actividad por la ruta actual > @@ -481,17 +481,17 @@ observe.common.ActivitySeineDto.message.active.found.for.other.route=Existe una observe.common.ActivitySeineDto.message.creating=Actividad en proceso de creación. observe.common.ActivitySeineDto.message.no.active.found=Ninguna actividad abierta, puede crear una nueva o reabrir una. observe.common.ActivitySeineDto.message.no.active.found.for.other.route=Ninguna actividad abierta en esta ruta. -observe.common.ActivitySeineDto.message.noneForRoute=< Ninguna actividad por la ruta actual > +observe.common.ActivitySeineDto.message.noneForRoute=< Ninguna actividad para la ruta actual > observe.common.ActivitySeineDto.message.not.open=La actividad no está abierta, imposible modificar. observe.common.ActivitySeineDto.message.updating=Se está modificando la actividad actual. -observe.common.ActivitySeineDto.nextFpaZone=Zona FPA penetrada +observe.common.ActivitySeineDto.nextFpaZone=ZEE próxima observe.common.ActivitySeineDto.nonTargetCatchSpecies=TODO observe.common.ActivitySeineDto.observedSystem=Sistema observado observe.common.ActivitySeineDto.observedSystemDistance=Distancia al sistema observado (millas con 1 decimal) observe.common.ActivitySeineDto.observedSystemTab=Sistema observado -observe.common.ActivitySeineDto.previousFpaZone=La zona FPA de que se salió +observe.common.ActivitySeineDto.previousFpaZone=ZEE anterior observe.common.ActivitySeineDto.quadrant=Quadrant -observe.common.ActivitySeineDto.reasonForNoFishing=Razón de no pesca Senne +observe.common.ActivitySeineDto.reasonForNoFishing=Razón de NO lance observe.common.ActivitySeineDto.seaSurfaceTemperature=Temperatura en superficie observe.common.ActivitySeineDto.selectedObservedSystem=Sistemas observados seleccionados observe.common.ActivitySeineDto.surroundingActivity=Actividad circundante @@ -504,17 +504,17 @@ observe.common.ActivitySeineDto.vesselActivitySeine=Actividad buque observe.common.ActivitySeineDto.vesselActivitySeine.comment=Solo la actividad %1$s permite introducir un lance observe.common.ActivitySeineDto.vesselSpeed=Velocidad del barco (nd) observe.common.ActivitySeineDto.wind=Fuerza del viento -observe.common.BaitHaulingStatusDto.type=Estatuto del cebo en el arrastre -observe.common.BaitHaulingStatusDto.types=Estatutos del cebo en el arrastre -observe.common.BaitSettingStatusDto.type=Estatuto del cebo en la calada -observe.common.BaitSettingStatusDto.types=Estatutos del cebo en la calada +observe.common.BaitHaulingStatusDto.type=Estatus del cebo en el arrastre +observe.common.BaitHaulingStatusDto.types=Estatus del cebo en el arrastre +observe.common.BaitSettingStatusDto.type=Estatus del cebo en la calada +observe.common.BaitSettingStatusDto.types=Estatus del cebo en la calada observe.common.BaitTypeDto.type=Tipo de cebo observe.common.BaitTypeDto.types=Tipos de cebo observe.common.BaitsCompositionDto.action.create=Insertar este cebo observe.common.BaitsCompositionDto.action.create.tip=Insertar este cebo observe.common.BaitsCompositionDto.proportionSum=Suma de los proporciónes de cebo (%) -observe.common.BaitsCompositionDto.table.baitSettingStatus=Estatuto -observe.common.BaitsCompositionDto.table.baitSettingStatus.tip=Estatuto en la calada +observe.common.BaitsCompositionDto.table.baitSettingStatus=Estatus +observe.common.BaitsCompositionDto.table.baitSettingStatus.tip=Estatus en la calada observe.common.BaitsCompositionDto.table.baitType=Tipo de cebo observe.common.BaitsCompositionDto.table.baitType.tip=Tipo de cebo observe.common.BaitsCompositionDto.table.individualSize=Tamaño (cm) @@ -542,7 +542,7 @@ observe.common.BaitsCompositionLogbookDto.table.proportion=Proporción (%) observe.common.BaitsCompositionLogbookDto.table.proportion.tip=Proporción (%) observe.common.BaitsCompositionLogbookDto.title=Composición de los cebos observe.common.BaitsCompositionLogbookDto.type=Composición de los cebos -observe.common.BaitsCompositionLogbookDto.types=Composiciónes de los cebos +observe.common.BaitsCompositionLogbookDto.types=Composición de los cebos observe.common.BaitsCompositionObsDto.action.create=Insertar este cebo observe.common.BaitsCompositionObsDto.action.create.tip=Insertar este cebo observe.common.BaitsCompositionObsDto.baitSettingStatus=Estado en la calada @@ -562,29 +562,29 @@ observe.common.BaitsCompositionObsDto.table.proportion=Proporción (%) observe.common.BaitsCompositionObsDto.table.proportion.tip=Proporción (%) observe.common.BaitsCompositionObsDto.title=Composición de los cebos observe.common.BaitsCompositionObsDto.type=Composición de los cebos -observe.common.BaitsCompositionObsDto.types=Composiciónes de los cebos +observe.common.BaitsCompositionObsDto.types=Composición de los cebos observe.common.BasketObsDto.floatline1Length=Orinque 1 (m) observe.common.BasketObsDto.floatline2Length=Orinque 2 (m) observe.common.BasketObsDto.settingIdentifier=Calada observe.common.BasketObsDto.type=Cesta observe.common.BasketObsDto.types=Cestas -observe.common.BranchlineDto.depthRecorder=Registrador de profundidad -observe.common.BranchlineDto.generalTab=Generalidad +observe.common.BranchlineDto.depthRecorder=Sensor de profundidad +observe.common.BranchlineDto.generalTab=Generalidades observe.common.BranchlineDto.hookAndBaitTab=Anzuelo y cebo -observe.common.BranchlineDto.hookLost=Anzuelo erdido +observe.common.BranchlineDto.hookLost=Anzuelo perdido observe.common.BranchlineDto.hookOffset=Offset anzuelo (°) -observe.common.BranchlineDto.message.modified=El arponcillo que se está modificando actualmente ha sido modificado y es valido. -observe.common.BranchlineDto.message.modified.but.invalid=El arponcillo que se está modificando actualmente ha sido modificado, pero no es valido. -observe.common.BranchlineDto.timeSinceContact=Tiempo desde el estallido +observe.common.BranchlineDto.message.modified=El arponcillo que se está modificando actualmente ha sido modificado y es válido. +observe.common.BranchlineDto.message.modified.but.invalid=El arponcillo que se está modificando actualmente ha sido modificado, pero no es válido. +observe.common.BranchlineDto.timeSinceContact=Hora de contacto observe.common.BranchlineDto.timer=Reloj -observe.common.BranchlineDto.timerTimeOnBoard=Timestamp de subida a bordo -observe.common.BranchlineDto.traceCutOff=Bajo de línea cortada -observe.common.BranchlineDto.weightedSnap=Snap plomeado -observe.common.BranchlineDto.weightedSwivel=Destorcedor plomeado +observe.common.BranchlineDto.timerTimeOnBoard=FechaHora de subida a bordo +observe.common.BranchlineDto.traceCutOff=Base de la línea de fondo +observe.common.BranchlineDto.weightedSnap=Lastre de plomo +observe.common.BranchlineDto.weightedSwivel=Broche de plomo observe.common.BranchlineObsDto.baitHaulingStatus=Estatuto del cebo en el arrastre -observe.common.BranchlineObsDto.baitSettingStatus=Estatuto del cebo en la calada +observe.common.BranchlineObsDto.baitSettingStatus=Estatus del cebo en la calada observe.common.BranchlineObsDto.baitType=Tipo de cebo -observe.common.BranchlineObsDto.branchlineLength=Arponcillo (m) +observe.common.BranchlineObsDto.branchlineLength=Longitud del arponcillo (m) observe.common.BranchlineObsDto.depthRecorder=Registrador de profundidad observe.common.BranchlineObsDto.generalTab=Generalidad observe.common.BranchlineObsDto.hookAndBaitTab=Anzuelo y cebo @@ -595,33 +595,33 @@ observe.common.BranchlineObsDto.hookType=Tipo de anzuelo observe.common.BranchlineObsDto.message.modified=El arponcillo que se está modificando actualmente ha sido modificado y es valido. observe.common.BranchlineObsDto.message.modified.but.invalid=El arponcillo que se está modificando actualmente ha sido modificado, pero no es valido. observe.common.BranchlineObsDto.settingIdentifier=Calada -observe.common.BranchlineObsDto.snapWeight=Peso snap (kg) -observe.common.BranchlineObsDto.swivelWeight=Peso de el destorcedor (kg) +observe.common.BranchlineObsDto.snapWeight=Peso del lastre (kg) +observe.common.BranchlineObsDto.swivelWeight=Peso del broche (kg) observe.common.BranchlineObsDto.timeSinceContact=Tiempo desde el estallido observe.common.BranchlineObsDto.timer=Reloj observe.common.BranchlineObsDto.timerTimeOnBoard=Timestamp de subida a bordo observe.common.BranchlineObsDto.title=Detalle de arponcillo -observe.common.BranchlineObsDto.topType=Tipo parte superior +observe.common.BranchlineObsDto.topType=Tipo de línea superior observe.common.BranchlineObsDto.traceCutOff=Bajo de línea cortada -observe.common.BranchlineObsDto.tracelineLength=Parte baja (m) -observe.common.BranchlineObsDto.tracelineType=Tipo bajo de línea +observe.common.BranchlineObsDto.tracelineLength=Línea de fondo (m) +observe.common.BranchlineObsDto.tracelineType=Tipo de línea de fondo observe.common.BranchlineObsDto.type=Arponcillo observe.common.BranchlineObsDto.types=Arponcillos observe.common.BranchlineObsDto.weightedSnap=Snap plomeado observe.common.BranchlineObsDto.weightedSwivel=Destorcedor plomeado observe.common.BranchlinesCompositionDto.action.create=Insertar este arponcillo observe.common.BranchlinesCompositionDto.action.create.tip=Insertar este arponcillo -observe.common.BranchlinesCompositionDto.proportionSum=Suma de los proporciónes de arponcillos (%) +observe.common.BranchlinesCompositionDto.proportionSum=Suma de las proporciones de arponcillos (%) observe.common.BranchlinesCompositionDto.table.length=Longitud (m) observe.common.BranchlinesCompositionDto.table.length.tip=Longitud (m) observe.common.BranchlinesCompositionDto.table.proportion=Proporción (%) observe.common.BranchlinesCompositionDto.table.proportion.tip=Proporción (%) -observe.common.BranchlinesCompositionDto.table.topType=Tipo de la parte superior -observe.common.BranchlinesCompositionDto.table.topType.tip=Tipo de la parte superior -observe.common.BranchlinesCompositionDto.table.tracelineLength=Parte baja (m) -observe.common.BranchlinesCompositionDto.table.tracelineLength.tip=Parte baja (m) -observe.common.BranchlinesCompositionDto.table.tracelineType=Tipo bajo de línea -observe.common.BranchlinesCompositionDto.table.tracelineType.tip=Tipo bajo de línea +observe.common.BranchlinesCompositionDto.table.topType=Tipo de línea superior +observe.common.BranchlinesCompositionDto.table.topType.tip=Tipo de línea superior +observe.common.BranchlinesCompositionDto.table.tracelineLength=Longitud de la línea de fondo (m) +observe.common.BranchlinesCompositionDto.table.tracelineLength.tip=Longitud de la línea de fondo (m) +observe.common.BranchlinesCompositionDto.table.tracelineType=Tipo línea fondo +observe.common.BranchlinesCompositionDto.table.tracelineType.tip=Tipo línea de fondo observe.common.BranchlinesCompositionDto.tracelineLength=Parte baja (m) observe.common.BranchlinesCompositionLogbookDto.action.create=Insertar este arponcillo observe.common.BranchlinesCompositionLogbookDto.action.create.tip=Insertar este arponcillo @@ -2584,8 +2584,8 @@ observe.common.species/scientificLabel=Especie observe.common.speciesAndSizeMeasure=Especie - Tipo de medida del tamaño observe.common.step.description=Descripción de la etapa observe.common.storage.not.valid=Fuente de datos no configurada -observe.common.whenArriving=À l'arrivée \#TODO -observe.common.whenLeaving=Au départ \#TODO +observe.common.whenArriving=Al llegar +observe.common.whenLeaving=Al dejar observe.config.backup.atClose=Realizar una copia de seguridad de la base de datos local al cerrar la aplicación observe.config.backup.delay=Minutos entre cada copia de seguridad de la base de datos local observe.config.backup.use=Para activar la copia de seguridad automática ===================================== pom.xml ===================================== @@ -27,7 +27,7 @@ <parent> <groupId>io.ultreia.maven</groupId> <artifactId>pom</artifactId> - <version>2018.8.2</version> + <version>2018.8.3</version> </parent> <groupId>fr.ird.observe</groupId> View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/25fc0f69dfc714a010c86818a5e... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/compare/25fc0f69dfc714a010c86818a5e... You're receiving this email because of your account on gitlab.com.