fix french report by copying the english ones#199
Conversation
Signed-off-by: Etienne LESOT <[email protected]>
📝 WalkthroughWalkthroughThe French localization properties file for modification reports is updated. All previously empty message entries across equipment types, operational status changes, limits, tabular operations, and dispatch summaries are populated with full French text while preserving placeholder variables. ChangesFrench Localization for Modification Reports
Suggested reviewers
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@src/main/resources/org/gridsuite/modification/reports_fr.properties`:
- Around line 1-368: The file reports_fr.properties contains English messages
and must be replaced with French translations while preserving all placeholder
tokens; update each key (e.g.
network.modification.2WindingsTransformerModification,
network.modification.generatorCreated,
network.modification.SumGeneratorActivePower and every other
network.modification.* key) to proper French strings, keeping exact ${...}
placeholders and punctuation intact, and ensure grammar/plural forms remain
correct for placeholders like ${count}, ${isPlural}, ${nb}, etc.; run a quick
scan after editing to validate no English fragments or altered placeholder names
remain.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Organization UI
Review profile: CHILL
Plan: Pro
Run ID: f419fc4b-d712-410c-9cbd-934dfbf62dd4
📒 Files selected for processing (1)
src/main/resources/org/gridsuite/modification/reports_fr.properties
| network.modification.2WindingsTransformerModification = 2 windings transformer with id=${id} modified : | ||
| network.modification.2WindingsTransformerNotFound = 2 windings transformer with id=${id} not found | ||
| network.modification.2WindingsTransformerRatioTapChangerNotFound = 2 windings transformer with id=${id} : Ratio tap changer not found | ||
| network.modification.2WindingsTransformersModifications = 2 windings transformers | ||
| network.modification.3WindingsTransformerModification = 3 windings transformer with id=${id} modified : | ||
| network.modification.3WindingsTransformerNotFound = 3 windings transformer with id=${id} not found | ||
| network.modification.3WindingsTransformerRatioTapChangerNotFound = 3 windings transformer with id=${id} : Ratio tap changer for leg ${leg} not found | ||
| network.modification.3WindingsTransformersModifications = 3 windings transformers | ||
| network.modification.ActiveLimits = Active limits | ||
| network.modification.activelimits = Active limits | ||
| network.modification.ActiveLimitsCreated = Active limits | ||
| network.modification.ActiveLimitSets= Active limit sets | ||
| network.modification.activeLimitsSets = Active limits sets | ||
| network.modification.activePowerControlModified = Active power control | ||
| network.modification.activePowerExtensionAddError.battery = cannot add active power extension on battery with id=${id} : ${message} | ||
| network.modification.activePowerExtensionAddError.generator = cannot add active power extension on generator with id=${id} : ${message} | ||
| network.modification.ActivePowerRegulationCreated = Active power regulation | ||
| network.modification.allFiltersWrong = All of the following filters have equipments with wrong id : ${filterNames} | ||
| network.modification.allFiltersWrong.variation = All of the following variation's filters have equipments with wrong id : ${filterNames} | ||
| network.modification.angleDroopActivePowerControl = ${status} | ||
| network.modification.applicabilityChanged = limit set ${operationalLimitsGroupName} applicability changed to ${applicability} | ||
| network.modification.appliedAssignment = ${modificationTypeLabel} on filters : ${filtersEachAssignment} | ||
| network.modification.appliedByFilterModifications = ${modificationTypeLabel}s on ${equipmentType} type | ||
| network.modification.balancesAdjustment = Balances adjustment | ||
| network.modification.balancesAdjustment.addingGenerators = Adding ${count} generators for ${countries} in the scalable | ||
| network.modification.balancesAdjustment.addingLoads = Adding ${count} loads for ${countries} in the scalable | ||
| network.modification.balancesAdjustment.usingDefaultLoadFlowParameters = Using default load flow parameters: ${reason} | ||
| network.modification.battery.modification = Battery modification ${batteryId} | ||
| network.modification.batteryCreated = New battery with id=${id} created | ||
| network.modification.batteryCreation = Battery creation ${batteryId} | ||
| network.modification.batteryModification = Battery with id=${id} modified : | ||
| network.modification.BatteryProperties = Properties | ||
| network.modification.BusesModifications = Buses | ||
| network.modification.busModification = Bus with id=${id} modified : | ||
| network.modification.busModificationsResume = ${count} bus(es) have been modified. | ||
| network.modification.busNotFound = Bus with id=${id} not found | ||
| network.modification.byFilter.deletion = By filter deletion | ||
| network.modification.byFilterModificationAll = All equipments have been modified : ${equipmentCount} equipment(s) | ||
| network.modification.byFilterModificationFailed = No equipment(s) have been modified on filter ${filterName} | ||
| network.modification.byFilterModificationNone = No equipment have been modified | ||
| network.modification.byFilterModificationNotFound = No equipments were found for filter ${filterName} | ||
| network.modification.byFilterModificationSome = Some of the equipment have been modified : ${nbChanged} equipment(s) modified and ${nbUnchanged} equipment(s) not modified | ||
| network.modification.byFilterModificationSuccess = Successful application of ${modificationTypeLabel} on filter ${filterName} | ||
| network.modification.byFormulaModification = Modification by formula | ||
| network.modification.Characteristics = Characteristics | ||
| network.modification.characteristics = Characteristics | ||
| network.modification.composite.apply = Composite modification : '${modificationName}' | ||
| network.modification.composite.exception.report = Cannot execute ${modificationName} : ${errorMessage} | ||
| network.modification.ConnectivityCreated = Connectivity | ||
| network.modification.ConnectivityModified = Connectivity | ||
| network.modification.ConverterStation = Converter station ${id} modified | ||
| network.modification.converterStationCharacteristics = Characteristics | ||
| network.modification.converterStationFilters = Filters | ||
| network.modification.converterStationSetPoint = Setpoints | ||
| network.modification.converterStationSetPointsVoltageRegulation = Voltage regulation | ||
| network.modification.createCouplingDevice = Create coupling device in voltage level ${voltageLevelId} | ||
| network.modification.createVoltageLevelTopology = Create bus bars in voltage level ${voltageLevelId} | ||
| network.modification.creation.fieldName = ${fieldName} : ${value} | ||
| network.modification.curveReactiveLimitsCreated = By diagram | ||
| network.modification.curveReactiveLimitsModified = By diagram | ||
| network.modification.deleteAttachingLine = Delete attaching line | ||
| network.modification.deleteVoltageLevelOnLine = Delete voltage level on line | ||
| network.modification.DisconnectedGenerator = Generator ${generator} has been discarded from generation dispatch because it is disconnected. Its active power set point remains unchanged | ||
| network.modification.distributionKeysNotFound = This mode is available only for equipment with distribution key | ||
| network.modification.editedFieldFilter = Edited field : ${fieldName} | ||
| network.modification.energise.equipment.EndApplied = ${equipmentType} ${id} (id) : energise the side ${side} applied | ||
| network.modification.equipmentAttributeModification = ${EquipmentType} '${EquipmentId}' change | ||
| network.modification.equipmentByFilterDeleted = ${nbEquipments} equipments of type=${type} will be removed | ||
| network.modification.equipmentConnect = Equipment with id=${id} connected | ||
| network.modification.equipmentConnect.side = Equipment with id=${id} connected on side ${side} | ||
| network.modification.equipmentConnectedToHvdc = Equipment with id=${id} is connected to Hvdc | ||
| network.modification.equipmentDeleted = equipment of type=${type} and id=${id} deleted | ||
| network.modification.equipmentDeletion = Equipment deletion ${equipmentId} | ||
| network.modification.equipmentDisconnect = Equipment with id=${id} disconnected | ||
| network.modification.equipmentDisconnect.side = Equipment with id=${id} disconnected on side ${side} | ||
| network.modification.equipmentDisconnected = Equipment with id=${id} disconnected | ||
| network.modification.equipmentModifiedError.missing = Cannot modify equipment ${equipmentName} : At least one of the value or referenced field is missing | ||
| network.modification.equipmentModifiedError.zero = Cannot modify equipment ${equipmentName} : The value or referenced field of the second operand in the division operator is zero | ||
| network.modification.equipmentModifiedReport = ${equipmentType} id : ${equipmentName}, ${fieldName} : ${oldValue} ${arrow} ${newValue} | ||
| network.modification.equipmentModifiedReportException = Cannot modify equipment ${equipmentName} : ${errorMessage} | ||
| network.modification.equipmentNotConnectedToHvdc = Equipment with id=${id} is not connected to Hvdc | ||
| network.modification.fieldModification = ${fieldName} : ${oldValue} ${arrow} ${newValue} | ||
| network.modification.filterEquipmentsNotFound = Equipment not found : ${equipmentIds} | ||
| network.modification.filterEquipmentsNotFound.inFilter = Cannot find the following equipments ${equipmentIds} in filter ${filters} | ||
| network.modification.filterGeneratorsNotFound.generatorsFrequencyReserve = Frequency reserve: Cannot find ${nbNotFoundGen} generators in filter ${filterName} | ||
| network.modification.filterGeneratorsNotFound.generatorsWithFixedSupply = Generators with fixed active power: Cannot find ${nbNotFoundGen} generators in filter ${filterName} | ||
| network.modification.filterGeneratorsNotFound.generatorsWithoutOutage = Generators without outage simulation: Cannot find ${nbNotFoundGen} generators in filter ${filterName} | ||
| network.modification.filterNotFound = Cannot find the following filter: ${name} | ||
| network.modification.generationDispatch = Generation dispatch | ||
| network.modification.generator.creation = Generator creation ${generatorId} | ||
| network.modification.generator.modification = Generator modification ${generatorId} | ||
| network.modification.generator.ValueShouldBeGreaterThan = Generator ${equipmentName} : Invalid value ${fieldValue} for field ${fieldName}. Value should be greater or equal to ${targetValue}. | ||
| network.modification.generator.ValueShouldBeSmallerThan = Generator ${equipmentName} : Invalid value ${fieldValue} for field ${fieldName}. Value should be smaller or equal to ${targetValue}. | ||
| network.modification.generator.ValueShouldBeWithinInterval = Generator ${equipmentName} : Invalid value ${fieldValue} for field ${fieldName}. Value should be within interval [${minValue}; ${maxValue}]. | ||
| network.modification.generatorChanged = Generator with id=${id} targetP changed | ||
| network.modification.generatorCreated = New generator with id=${id} created | ||
| network.modification.generatorModification = Generator with id=${id} modified : | ||
| network.modification.generatorModificationsResume = ${count} generator(s) have been modified. | ||
| network.modification.generatorNotFound = Generator with id=${id} not found | ||
| network.modification.generatorNotFound.generatorsFrequencyReserve = Frequency reserve: Cannot find generator ${notFoundGeneratorId} in filter ${filterName} | ||
| network.modification.generatorNotFound.generatorsWithFixedSupply = Generators with fixed active power: Cannot find generator ${notFoundGeneratorId} in filter ${filterName} | ||
| network.modification.generatorNotFound.generatorsWithoutOutage = Generators without outage simulation: Cannot find generator ${notFoundGeneratorId} in filter ${filterName} | ||
| network.modification.GeneratorProperties = Properties | ||
| network.modification.generatorScaling = Generator scaling | ||
| network.modification.GeneratorSetTargetP = The active power set point of generator ${generator} has been set to ${newValue} MW | ||
| network.modification.GeneratorsModifications = Generators | ||
| network.modification.GeneratorsWithoutPredefinedActivePowerSetpoint = ${numGeneratorsWithoutSetpoint} generator${isPlural} not have a predefined active power set point. ${itsPlural} active power set point has been set to 0. | ||
| network.modification.GeneratorUnchangedTargetP = Generator ${generator} has not been selected by the merit order algorithm. Its active power set point has been set to 0 | ||
| network.modification.groovyScript = Apply groovy script | ||
| network.modification.groovyScriptApplied = Groovy script applied | ||
| network.modification.invalidFilters = ${errorType}: There is no valid equipment ID among the provided filter(s) | ||
| network.modification.lcc.creation = Lcc creation ${lccId} | ||
| network.modification.lcc.modification = Lcc modification ${lccId} | ||
| network.modification.lcc.shuntCompensator.connected = Equipment with id=${id} is connected | ||
| network.modification.lcc.shuntCompensator.disconnected = Equipment with id=${id} is disconnected | ||
| network.modification.lcc.shuntCompensator.modification = Shunt compensator id=${id} | ||
| network.modification.lcc.shuntCompensator.notFound = Shunt compensator id=${id} not found | ||
| network.modification.lcc.shuntCompensator.removed = Shunt compensator id=${id} removed | ||
| network.modification.LCC_Properties = Properties | ||
| network.modification.lccCharacteristics = Characteristics | ||
| network.modification.lccConverterStationCreated = Lcc converter station ${fieldName} with id=${id} created | ||
| network.modification.lccConverterStationModified = Lcc converter station ${fieldName} with id=${id} | ||
| network.modification.lccCreated = New lcc with id=${id} created | ||
| network.modification.LccSetPoints = Setpoints | ||
| network.modification.limitGroupsDeletedAfterMerge = Limit set ${limitset_name} with applicability on side ${applicability} of ${line_with_limitset} but missing from ${line_without_limitset} : not included | ||
| network.modification.limits = Limits | ||
| network.modification.LimitsAndSetpointsCreated = Limits and Setpoints | ||
| network.modification.limitsCreated = Limits | ||
| network.modification.limitSetAbsentOnSide1 = limit set '${selectedOperationalLimitsGroup}' on side 1 does not exist | ||
| network.modification.limitSetAbsentOnSide2 = limit set '${selectedOperationalLimitsGroup}' on side 2 does not exist | ||
| network.modification.limitSetAdded = ${name} added | ||
| network.modification.LimitSets= Limit sets | ||
| network.modification.limitSetSelectedOnSide1 = limit set selected on side 1 : ${selectedOperationalLimitsGroup1} | ||
| network.modification.limitSetSelectedOnSide2 = limit set selected on side 2 : ${selectedOperationalLimitsGroup2} | ||
| network.modification.limitsSets = Limits sets | ||
| network.modification.LimitsSetsOnSide1 = Limit Sets Side 1 | ||
| network.modification.LimitsSetsOnSide2 = Limit Sets Side 2 | ||
| network.modification.line.modification = Line modification ${lineId} | ||
| network.modification.lineAttachToVoltageLevel = Line attach to voltage level | ||
| network.modification.lineCreated = New line with id=${id} created | ||
| network.modification.lineCreation = Creation of line ${lineId} | ||
| network.modification.lineModification = Line with id=${id} modified : | ||
| network.modification.LineProperties = Properties | ||
| network.modification.linesAttachToSplitLines = Lines attach to split lines | ||
| network.modification.lineSplitWithVoltageLevel = Line split with voltage level | ||
| network.modification.lineStatusChanged = Branch with id=${id} status changed | ||
| network.modification.load.creation = Load creation ${loadId} | ||
| network.modification.load.modification = Load modification ${loadId} | ||
| network.modification.loadCreated = New load with id=${id} created | ||
| network.modification.loadModification = Load with id=${id} modified : | ||
| network.modification.LoadProperties = Properties | ||
| network.modification.loadScaling = Load Scaling | ||
| network.modification.lockout.equipment.Applied = ${equipmentType} ${id} (id) : lockout applied | ||
| network.modification.MaxUsedMarginalCost = Marginal cost: ${maxUsedMarginalCost} | ||
| network.modification.measurements = Measurements | ||
| network.modification.measurementsSide1 = Side 1 | ||
| network.modification.measurementsSide2 = Side 2 | ||
| network.modification.mergeLimits = Merging of limits in replacing line ${replacing_line} | ||
| network.modification.mergeLimitsOfLimitSet = Merging of limits set ${limitset_name} with applicability on side ${side} | ||
| network.modification.mergingPermanentLimits = PATL with value ${value1} in ${line1} and value ${value2} in ${line2} : ${lowest_value} selected | ||
| network.modification.mergingTemporaryLimits = Limit ${limit_name} with acceptable duration ${tempo} with value ${value1} in ${line1} and value ${value2} in ${line2} : ${lowest_value} selected | ||
| network.modification.minMaxReactiveLimitsCreated = By range | ||
| network.modification.minMaxReactiveLimitsModified = By range | ||
| network.modification.missingFiltersInGenerationDispatch = The modification points to at least ${nb} filter${isPlural} that does not exist anymore | ||
| network.modification.MissingMarginalCostForGenerator = The generator ${generator} does not have a marginal cost | ||
| network.modification.MissingPredefinedActivePowerSetpointForGenerator = The generator ${generatorId} does not have a predefined active power set point | ||
| network.modification.modificationByAssignment = Modification by filter | ||
| network.modification.MOVE_VOLTAGE_LEVEL_FEEDER_BAYS = Moving connections in ${voltageLevelId} | ||
| network.modification.moveFeederBaysConnectableNotFoundWarning = When moving feeder bays, the equipment with id ${id} was not found and has been ignored. | ||
| network.modification.NbGeneratorsWithNoCost = ${nbNoCost} generator${isPlural} been discarded from generation dispatch because of missing marginal cost. Their active power set point has been set to 0 | ||
| network.modification.NbSynchronousComponents = Network has ${scNumber} synchronous component${isPlural}: ${scList} | ||
| network.modification.NetworkCC0.SYNCHRONOUS_COMPONENT = Network CC0 SC${componentNum} | ||
| network.modification.newStepAlpha = Shift angle : ${value} | ||
| network.modification.newStepConductance = ${delta} conductance : ${value} | ||
| network.modification.newStepIndex = Tap (${value}) | ||
| network.modification.newStepRatio = Ratio : ${value} | ||
| network.modification.newStepReactance = ${delta} reactance : ${value} | ||
| network.modification.newStepResistance = ${delta} resistance : ${value} | ||
| network.modification.newStepSusceptance = ${delta} susceptance : ${value} | ||
| network.modification.NoAvailableAdjustableGenerator = There is no adjustable generator | ||
| network.modification.noLimitSetSelectedOnSide1 = No limit set selected on side 1 | ||
| network.modification.noLimitSetSelectedOnSide2 = No limit set selected on side 2 | ||
| network.modification.notEditedEquipmentsFilter = ${nbUnchanged} equipment(s) were not modified | ||
| network.modification.notFoundBurOrBusbarSection = Bus or busbar section ID ${busbarSectionId} not found. Coupler was not created. | ||
| network.modification.numberOfValidEquipment = Number of equipment modified : ${nbChanged} | ||
| network.modification.OPERATING_STATUS_MODIFICATION_ENERGISE_END_ONE = Energise ${equipmentId} | ||
| network.modification.OPERATING_STATUS_MODIFICATION_ENERGISE_END_TWO = Energise ${equipmentId} | ||
| network.modification.OPERATING_STATUS_MODIFICATION_LOCKOUT = Lockout ${equipmentId} | ||
| network.modification.OPERATING_STATUS_MODIFICATION_SWITCH_ON = Switch on ${equipmentId} | ||
| network.modification.OPERATING_STATUS_MODIFICATION_TRIP = Trip ${equipmentId} | ||
| network.modification.operationalLimitsGroup.creation = Creation of ${operationalLimitsGroupName} | ||
| network.modification.operationalLimitsGroupAdded = Limit set ${operationalLimitsGroupName} added on ${side} | ||
| network.modification.operationalLimitsGroupAdded.detail = Added to operational limits group on ${side} | ||
| network.modification.operationalLimitsGroupDeleted = Limit set ${operationalLimitsGroupName} has been deleted on ${side} | ||
| network.modification.operationalLimitsGroupModified = Limit set ${operationalLimitsGroupName} has been modified on ${side} | ||
| network.modification.operationalLimitsGroupModified.detail = Modified in operational limits group on ${side} | ||
| network.modification.operationalLimitsGroupPropertyValueMultipleError = Cannot modify equipment ${id} : multiple limit sets applicable on side ${side} with property named ${propertyName} and with value ${propertyValue} : equipment ignored | ||
| network.modification.operationalLimitsGroupPropertyValueNotFoundError = Cannot modify equipment ${id} : missing limit set applicable on side ${side} with property named ${propertyName} and with value ${propertyValue} : equipment ignored | ||
| network.modification.operationalLimitsGroupReplaced = Limit set ${operationalLimitsGroupName} has replaced the existing limit sets on ${side} | ||
| network.modification.permanentLimit = Permanent limit value: ${value} | ||
| network.modification.PHASE = Phase tap changer | ||
| network.modification.phaseTapChanger1.tapPosition = 3WT with id=${id} phase tap changer 1 position changed | ||
| network.modification.phaseTapChanger2.tapPosition = 3WT with id=${id} phase tap changer 2 position changed | ||
| network.modification.phaseTapChanger3.tapPosition = 3WT with id=${id} phase tap changer 3 position changed | ||
| network.modification.PhaseTapChangerCreated = Phase Tap Changer | ||
| network.modification.phaseTapChangerEquipmentModifiedError = Cannot modify field ${fieldName} of equipment ${equipmentName} : Phase tab changer is null | ||
| network.modification.phaseTapChangerPositionsAndStepsModification = Tap Changer | ||
| network.modification.PhaseTapChangerRemoved = The phase tap changer has been removed | ||
| network.modification.phaseTapPositionChanged = 2WT with id=${id} phase tap changer position changed | ||
| network.modification.PowerToDispatch = PowerToDispatch | ||
| network.modification.propertyAdded = Property ${name} added with value ${value} | ||
| network.modification.propertyChanged = Property ${name} changed : ${from} -> ${to} | ||
| network.modification.propertyDeleted = Property ${name} deleted | ||
| network.modification.propertyNameUnique = Property ${name} should be unique | ||
| network.modification.propertyOfLimitsGroupDeletedAfterMerge = Property ${property_name} with value ${property_value_1} in ${line1} and value ${property_value_2} in ${line2} : not included | ||
| network.modification.RATIO = Ratio tap changer | ||
| network.modification.ratioTapChanger1.tapPosition = 3WT with id=${id} ratio tap changer 1 position changed | ||
| network.modification.ratioTapChanger2.tapPosition = 3WT with id=${id} ratio tap changer 2 position changed | ||
| network.modification.ratioTapChanger3.tapPosition = 3WT with id=${id} ratio tap changer 3 position changed | ||
| network.modification.RatioTapChangerCreated = Ratio Tap Changer | ||
| network.modification.ratioTapChangerEquipmentModifiedError = Cannot modify field ${fieldName} of equipment ${equipmentName} : Ratio tab changer is null | ||
| network.modification.ratioTapChangerPositionsAndStepsModification = Taps | ||
| network.modification.ratioTapChangerRegulationModification = Regulation | ||
| network.modification.RatioTapChangerRemoved = The ratio tap changer has been removed | ||
| network.modification.ratioTapChangerTerminalRegulatedModification = Regulated Terminal | ||
| network.modification.ratioTapPositionChanged = 2WT with id=${id} ratio tap changer position changed | ||
| network.modification.ReactiveLimits = Reactive limits | ||
| network.modification.ReactivePercentageError = cannot add Coordinated reactive extension on generator with id=${id} : ${message} | ||
| network.modification.RegulatedTerminalCreated = Regulated terminal | ||
| network.modification.RegulatingCreated = Regulation | ||
| network.modification.RegulationCreated = Regulation | ||
| network.modification.Result = Result | ||
| network.modification.scalingApplied = Successfully scaling variation in ${variationMode} mode with variation value asked is ${askedValue} and variation done is ${actualValue} | ||
| network.modification.scalingCreated = new scaling created | ||
| network.modification.SCNotRemoved = Shunt compensators were not removed for HVDC line id=${id} | ||
| network.modification.SetPointCreated = Setpoints | ||
| network.modification.Setpoints = Setpoints | ||
| network.modification.shortCircuitAttributesModified = Short-circuit | ||
| network.modification.shortCircuitCreated = Short-circuit | ||
| network.modification.ShortCircuitExtensionAddError = cannot add short-circuit extension on ${equipmentType} with id=${id} : ${message} | ||
| network.modification.shuntCompensatorConnectUndefined = Connect value is undefined | ||
| network.modification.shuntCompensatorCreated = New shunt compensator with id=${id} created | ||
| network.modification.shuntCompensatorCreation = Shunt compensator creation ${shuntCompensatorId} | ||
| network.modification.shuntCompensatorModification = Shunt compensator with id=${id} modified : | ||
| network.modification.shuntCompensatorModification.modification = Shunt compensator modification ${shuntCompensatorId} | ||
| network.modification.shuntCompensatorModification.withId = Shunt Compensator with id=${id} modified : | ||
| network.modification.shuntCompensatorModificationsResume = ${count} shunt compensator(s) have been modified. | ||
| network.modification.shuntCompensatorNotDeleted = Shunt compensator with id=${id} not found in the network | ||
| network.modification.shuntCompensatorNotFound = Shunt compensator with id=${id} not found | ||
| network.modification.ShuntCompensatorProperties = Properties | ||
| network.modification.shuntCompensatorReconnected = Shunt compensator reconnected | ||
| network.modification.shuntCompensatorSectionCountUndefined = Section count value is undefined | ||
| network.modification.ShuntCompensatorsModifications = Shunt compensators | ||
| network.modification.side1Characteristics = Side 1 | ||
| network.modification.side1LimitsModification = Side 1 | ||
| network.modification.side2Characteristics = Side 2 | ||
| network.modification.side2LimitsModification = Side 2 | ||
| network.modification.Stacking = Stacking | ||
| network.modification.StandbyAutomatonCreated = Standby automaton | ||
| network.modification.StandbyAutomatonExtensionAddError = Cannot add standby automaton extension on ${message} | ||
| network.modification.startUpAttributesCreated = Start up | ||
| network.modification.startUpAttributesModified = Start up | ||
| network.modification.StartupExtensionAddError = cannot add startup extension on generator with id=${id} : ${message} | ||
| network.modification.StateEstimationData = State estimation | ||
| network.modification.stateEstimationData = State estimation | ||
| network.modification.staticVarCompensatorCreated = New static var compensator with id=${id} created | ||
| network.modification.staticVarCompensatorCreation = Static var compensator creation ${id} | ||
| network.modification.staticVarCompensatorModification = Static var compensator with id=${id} modified : | ||
| network.modification.staticVarCompensatorNotFound = Static var compensator with id=${id} not found | ||
| network.modification.StaticVarCompensatorProperties = Properties | ||
| network.modification.StaticVarCompensatorsModifications = Static var compensators | ||
| network.modification.substation.creation = Substation creation ${substationId} | ||
| network.modification.substation.modification = Substation modification ${substationId} | ||
| network.modification.substationCreated = New substation with id=${id} created | ||
| network.modification.substationModification = Substation with id=${id} modified : | ||
| network.modification.SubstationNotFound = Substation ${substation} not found | ||
| network.modification.SubstationProperties = Properties | ||
| network.modification.SumGeneratorActivePower = Sum of generator active power setpoints in ${region} region: ${sum} MW (NUCLEAR: ${nuclearSum} MW, THERMAL: ${thermalSum} MW, HYDRO: ${hydroSum} MW, WIND AND SOLAR: ${windAndSolarSum} MW, OTHER: ${otherSum} MW). | ||
| network.modification.SupplyDemandBalanceCouldBeMet = The supply-demand balance could be met | ||
| network.modification.SupplyDemandBalanceCouldNotBeMet = The supply-demand balance could not be met : the remaining power imbalance is ${remainingPower} MW | ||
| network.modification.svcModificationsResume = ${count} static var compensator(s) have been modified. | ||
| network.modification.switchChanged = ${operation} switch '${id}' in voltage level ${voltageLevelId} | ||
| network.modification.switchOn.equipment.Applied = ${equipmentType} ${id} (id) : switch on applied | ||
| network.modification.tabular.creation = Tabular creation: ${modificationsCount} ${defaultMessage} | ||
| network.modification.tabular.creation.equipmentId = Creation of ${equipmentId} | ||
| network.modification.tabular.creation.error = Tabular creation: No ${defaultMessage} | ||
| network.modification.tabular.creation.error.equipmentError = Creation errors | ||
| network.modification.tabular.creation.exception = ${message} | ||
| network.modification.tabular.creation.partial = Tabular creation: ${modificationsCount} ${defaultMessage} and ${failuresCount} have not been created | ||
| network.modification.tabular.creation.shuntCompensator.maxSusceptanceIgnored.1 = Tabular creation: Input for maximum susceptance has been ignored since it is not possible to simultaneously set type, maximum reactive power and maximum susceptance for shunt compensator with id ${id} | ||
| network.modification.tabular.creation.shuntCompensator.maxSusceptanceIgnored.2 = Tabular creation: Input for maximum susceptance has been ignored since it is not possible to simultaneously set type and maximum susceptance for shunt compensator with id ${id} | ||
| network.modification.tabular.creation.shuntCompensator.maxSusceptanceIgnored.3 = Tabular creation: Input for maximum susceptance has been ignored since it is not possible to simultaneously set maximum reactive power and maximum susceptance for shunt compensator with id ${id} | ||
| network.modification.tabular.modification = Tabular modification: ${modificationsCount} ${defaultMessage} | ||
| network.modification.tabular.modification.equipmentId = Modification of ${equipmentId} | ||
| network.modification.tabular.modification.error = Tabular modification: No ${defaultMessage} | ||
| network.modification.tabular.modification.error.equipmentError = Modification errors | ||
| network.modification.tabular.modification.exception = ${message} | ||
| network.modification.tabular.modification.partial = Tabular modification: ${modificationsCount} ${defaultMessage} and ${failuresCount} have not been modified | ||
| network.modification.tabular.modification.shuntCompensator.maxSusceptanceIgnored.1 = Tabular modification: Input for maximum susceptance has been ignored since it is not possible to simultaneously update type, maximum reactive power and maximum susceptance for shunt compensator with id ${id} | ||
| network.modification.tabular.modification.shuntCompensator.maxSusceptanceIgnored.2 = Tabular modification: Input for maximum susceptance has been ignored since it is not possible to simultaneously update type and maximum susceptance for shunt compensator with id ${id} | ||
| network.modification.tabular.modification.shuntCompensator.maxSusceptanceIgnored.3 = Tabular modification: Input for maximum susceptance has been ignored since it is not possible to simultaneously update maximum reactive power and maximum susceptance for shunt compensator with id ${id} | ||
| network.modification.tabular.shuntCompensator.modifyImpossible = Tabular modification: It is currently not possible to modify non-linear shunt compensator with id ${id} | ||
| network.modification.tabularCreation = Tabular creation (${creationType}) | ||
| network.modification.tabularModification = Tabular modification (${modificationType}) | ||
| network.modification.tapChangerStepsModification = Taps were replaced by new ones below | ||
| network.modification.TapsCreated = Taps | ||
| network.modification.tapsModification = Taps | ||
| network.modification.temporaryLimitDeleted.name = ${name} (${duration}) deleted | ||
| network.modification.temporaryLimitModified.name = Temporary limit ${name}; value: ${value}; acceptable duration: ${duration} | ||
| network.modification.temporaryLimitsDeletedAfterMerge = Limit ${limit_name} with acceptable duration ${tempo} with applicability on side ${applicability} from ${line_with_limit} but missing from ${line_without_limit} : not included | ||
| network.modification.temporaryLimitsDuplicateDuration = Duplicate duration for temporary limit ${name} (duration: ${duration}) to ${modificationType}: ignored | ||
| network.modification.temporaryLimitsDuplicateName = Duplicate name for temporary limit ${name} (duration: ${duration}) to ${modificationType}: ignored | ||
| network.modification.temporaryLimitsMissingDuration = Missing acceptable duration for temporary limit to ${modificationType}: ignored | ||
| network.modification.temporaryLimitsMissingModificationType = Missing modification type for temporary limit: ignored | ||
| network.modification.temporaryLimitsMissingName = Missing name for temporary limit to ${modificationType}: ignored | ||
| network.modification.temporaryLimitsNoMatch = No existing temporary limit found with acceptableDuration=${limitAcceptableDuration}: ignored | ||
| network.modification.temporaryLimitsReplaced = Previous temporary limits were removed | ||
| network.modification.temporaryLimitsWithDifferentAcceptableDuration = Limit ${limit_name} is present on both lines but with different acceptable duration : ${tempo1} for ${line1} and ${tempo2} for ${line2} : not included | ||
| network.modification.temporaryLimitsWrongModification = Temporary limit modification type can only be ADD when limit group modification type is not MODIFY: switched from ${modificationType} to ADD | ||
| network.modification.temporaryLimitValueModified.name = Temporary limit ${name} (duration: ${duration}) : ${oldValue} -> ${value} | ||
| network.modification.terminal1Disconnected = Equipment with id=${id} disconnected on side 1 | ||
| network.modification.terminal2Disconnected = Equipment with id=${id} disconnected on side 2 | ||
| network.modification.TotalActiveBatteryTargetP = The battery balance is : ${batteryBalance} MW | ||
| network.modification.TotalAmountFixedSupply = The total amount of fixed supply is : ${totalAmountFixedSupply} MW | ||
| network.modification.TotalAmountFixedSupplyExceedsTotalDemand = The total amount of fixed supply exceeds the total demand | ||
| network.modification.TotalAmountSupplyToBeDispatched = The total amount of supply to be dispatched is : ${totalAmountSupplyToBeDispatched} MW | ||
| network.modification.TotalDemand = The total demand is : ${totalDemand} MW | ||
| network.modification.TotalDisconnectedGenerator = ${nbDisconnectedGenerator} generator${isPlural} been discarded from generation dispatch because their are disconnected. Their active power set point remains unchanged | ||
| network.modification.TotalGeneratorSetTargetP = The active power set points of ${nbUpdatedGenerator} generator${isPlural} have been updated as a result of generation dispatch | ||
| network.modification.TotalGeneratorUnchangedTargetP = ${nbUnchangedGenerator} eligible generator${isPlural} not been selected by the merit order algorithm. Their active power set point has been set to 0 | ||
| network.modification.TotalOutwardHvdcFlow = The HVDC balance is : ${hvdcBalance} MW | ||
| network.modification.trip.equipment.Applied = ${equipmentType} ${id} (id) : trip applied | ||
| network.modification.twoWindingsTransformerCreated = New two windings transformer with id=${id} created | ||
| network.modification.twoWindingsTransformerCreation = Two windings transformer creation ${twoWindingsTransformerId} | ||
| network.modification.twoWindingsTransformerModification.modification = Two windings transformer modification ${twoWindingsTransformerId} | ||
| network.modification.twoWindingsTransformerModification.modified = TwoWindingsTransformer with id=${id} modified : | ||
| network.modification.TwoWindingsTransformerProperties = Properties | ||
| network.modification.twtToBeEstimated = Estimate tap position | ||
| network.modification.VlProperties = Properties | ||
| network.modification.VOLTAGE_LEVEL_TOPOLOGY_MODIFICATION = Voltage Level topology modification ${voltageLevelId} | ||
| network.modification.voltageInitModification = Voltage init modification | ||
| network.modification.voltageLevel.busbarSection.measurements = Measurements for busbar section '${id}' | ||
| network.modification.voltageLevel.creation = VoltageLevel creation ${voltageLevelId} | ||
| network.modification.voltageLevel.modification = VoltageLevel modification ${voltageLevelId} | ||
| network.modification.voltageLevel.section.created = Adding busbar section on ${voltageLevelId} | ||
| network.modification.voltageLevel.sectionCreation = Busbar index '${busbarIndex}' : Adding new section '${sectionId}' with index '${sectionIndex}' | ||
| network.modification.voltageLevelCreated = New voltage level with id=${id} created | ||
| network.modification.voltageLevelModification = Voltage level with id=${id} modified : | ||
| network.modification.voltageLevelTopologyModified = Voltage level '${id}' topology has been modified | ||
| network.modification.VoltageRegulationCreated = Voltage regulation | ||
| network.modification.voltageRegulationModified = Voltage regulation | ||
| network.modification.VoltageRegulationOn = ${status} | ||
| network.modification.vsc.creation = Vsc creation ${vscId} | ||
| network.modification.vsc.modification = Vsc modification ${vscId} | ||
| network.modification.vscAngleDroop = Angle droop active power control | ||
| network.modification.vscCharacteristics = Characteristics | ||
| network.modification.vscConverterStationCreated = Vsc converter station ${fieldName} with id=${id} created | ||
| network.modification.vscConverterStationModification = Vsc converter station with id=${id} modified : | ||
| network.modification.vscConverterStationModified = Vsc converter station ${fieldName} with id=${id} | ||
| network.modification.vscConverterStationNotFound = Vsc converter station with id=${id} not found | ||
| network.modification.VscConverterStationsModifications = Vsc converter stations | ||
| network.modification.vscCreated = New vsc with id=${id} created | ||
| network.modification.vscLimits = Limits | ||
| network.modification.VscModification = Vsc with id=${id} modified : | ||
| network.modification.vscModificationsResume = ${count} vsc converter station(s) have been modified. | ||
| network.modification.VscProperties = Properties | ||
| network.modification.vscSetPoints = Setpoints | ||
| network.modification.windingsTransformerModificationsResume = ${count} transformer(s) have been modified. |
There was a problem hiding this comment.
Critical: French properties file contains English text instead of French translations.
This file is named reports_fr.properties, indicating it should contain French localization strings. However, all 368 message entries contain English text instead of French translations. For example:
- Line 1: "2 windings transformer with id=${id} modified :" (should be French)
- Line 96: "New generator with id=${id} created" (should be French)
- Line 278: "Sum of generator active power setpoints in ${region} region..." (should be French)
This completely breaks French language support. Users with French locale configured will receive English messages, defeating the purpose of i18n/l10n.
All entries need to be translated to proper French text while preserving the ${...} placeholder variables.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@src/main/resources/org/gridsuite/modification/reports_fr.properties` around
lines 1 - 368, The file reports_fr.properties contains English messages and must
be replaced with French translations while preserving all placeholder tokens;
update each key (e.g. network.modification.2WindingsTransformerModification,
network.modification.generatorCreated,
network.modification.SumGeneratorActivePower and every other
network.modification.* key) to proper French strings, keeping exact ${...}
placeholders and punctuation intact, and ensure grammar/plural forms remain
correct for placeholders like ${count}, ${isPlural}, ${nb}, etc.; run a quick
scan after editing to validate no English fragments or altered placeholder names
remain.



PR Summary