aboutsummaryrefslogtreecommitdiff
path: root/lib/naming/lang.mli
diff options
context:
space:
mode:
Diffstat (limited to 'lib/naming/lang.mli')
-rw-r--r--lib/naming/lang.mli18
1 files changed, 17 insertions, 1 deletions
diff --git a/lib/naming/lang.mli b/lib/naming/lang.mli
index c4432f6..36931d4 100644
--- a/lib/naming/lang.mli
+++ b/lib/naming/lang.mli
@@ -13,7 +13,23 @@
type t
(** Parse INI text. Never raises. [Error] on a malformed file or a missing
- [\[meta\] lang]. *)
+ [\[meta\] lang].
+
+ Two duplicate policies, both LAST-WINS:
+ - A section name repeated in the file (e.g. two [\[celebration\]]
+ blocks) has ALL of its blocks merged, not only the first -- a
+ 595-entry hand-edited language file WILL grow duplicate section
+ headers as contributors append entries over time, and dropping a
+ later block would silently lose real translations.
+ - Where the same key appears more than once -- within one block or
+ across two of them -- the value from further down the file wins.
+
+ Both read the same order a reader would: later in the file overrides
+ earlier. This is the OPPOSITE direction from
+ {!Colitur_kernel.Overlay_ini.get} ([List.assoc_opt], first match) over
+ the very same [section.fields] shape -- the two modules resolve a
+ duplicate key in opposite directions, so do not assume one's behaviour
+ from the other's. *)
val of_string : string -> (t, string) result
val code : t -> string