fix: Explicitly update modified (#32519)

* fix: Explicitly update modified

required after https://github.com/frappe/frappe/pull/18301

* chore: fix broken translations
diff --git a/erpnext/stock/doctype/bin/bin.py b/erpnext/stock/doctype/bin/bin.py
index 548df31..c28f45a 100644
--- a/erpnext/stock/doctype/bin/bin.py
+++ b/erpnext/stock/doctype/bin/bin.py
@@ -37,8 +37,10 @@
 
 		self.set_projected_qty()
 
-		self.db_set("reserved_qty_for_production", flt(self.reserved_qty_for_production))
-		self.db_set("projected_qty", self.projected_qty)
+		self.db_set(
+			"reserved_qty_for_production", flt(self.reserved_qty_for_production), update_modified=True
+		)
+		self.db_set("projected_qty", self.projected_qty, update_modified=True)
 
 	def update_reserved_qty_for_sub_contracting(self, subcontract_doctype="Subcontracting Order"):
 		# reserved qty
@@ -118,9 +120,9 @@
 		else:
 			reserved_qty_for_sub_contract = 0
 
-		self.db_set("reserved_qty_for_sub_contract", reserved_qty_for_sub_contract)
+		self.db_set("reserved_qty_for_sub_contract", reserved_qty_for_sub_contract, update_modified=True)
 		self.set_projected_qty()
-		self.db_set("projected_qty", self.projected_qty)
+		self.db_set("projected_qty", self.projected_qty, update_modified=True)
 
 
 def on_doctype_update():
@@ -193,4 +195,5 @@
 			"planned_qty": planned_qty,
 			"projected_qty": projected_qty,
 		},
+		update_modified=True,
 	)
diff --git a/erpnext/stock/stock_ledger.py b/erpnext/stock/stock_ledger.py
index 5030964..9ca40c3 100644
--- a/erpnext/stock/stock_ledger.py
+++ b/erpnext/stock/stock_ledger.py
@@ -1053,7 +1053,7 @@
 			updated_values = {"actual_qty": data.qty_after_transaction, "stock_value": data.stock_value}
 			if data.valuation_rate is not None:
 				updated_values["valuation_rate"] = data.valuation_rate
-			frappe.db.set_value("Bin", bin_name, updated_values)
+			frappe.db.set_value("Bin", bin_name, updated_values, update_modified=True)
 
 
 def get_previous_sle_of_current_voucher(args, exclude_current_voucher=False):
diff --git a/erpnext/translations/fr.csv b/erpnext/translations/fr.csv
index 7989bf7..3ba5ade 100644
--- a/erpnext/translations/fr.csv
+++ b/erpnext/translations/fr.csv
@@ -4946,7 +4946,7 @@
 Max Amt,Montant Max,
 "If rate is zero them item will be treated as ""Free Item""",Si le prix est à 0 alors l'article sera traité comme article gratuit
 Is Recursive,Est récursif
-"Discounts to be applied in sequential ranges like buy 1 get 1, buy 2 get 2, buy 3 get 3 and so on",La remise sera appliquée séquentiellement telque : acheter 1 => recupérer 1, acheter 2 => recupérer 2, acheter 3 => recupérer 3, etc...
+"Discounts to be applied in sequential ranges like buy 1 get 1, buy 2 get 2, buy 3 get 3 and so on","La remise sera appliquée séquentiellement telque : acheter 1 => recupérer 1, acheter 2 => recupérer 2, acheter 3 => recupérer 3, etc..."
 Period Settings,Paramètres de période,
 Margin,Marge,
 Margin Type,Type de Marge,