]> granicus.if.org Git - icu/commitdiff
ICU-20811 Add fields required for locale inheritance to additive mode.
authorShane Carr <shane@unicode.org>
Mon, 9 Sep 2019 21:53:27 +0000 (14:53 -0700)
committerShane F. Carr <shane@unicode.org>
Fri, 13 Sep 2019 22:38:38 +0000 (15:38 -0700)
docs/userguide/icu_data/buildtool.md
icu4c/source/python/icutools/databuilder/filtration.py

index da4c859fa7ec5cde8a0bfc58752cf8af853583d7..4262e414b0adcc80f94cf40a3be2963de698a8f1 100644 (file)
@@ -222,12 +222,17 @@ There are two concrete differences between additive and subtractive mode:
 |                         | Additive    | Subtractive |
 |-------------------------|-------------|-------------|
 | Default Feature Filter  | `"exclude"` | `"include"` |
-| Default Resource Filter | `"-/"`      | `"+/"`      |
+| Default Resource Filter | `"-/"`, `"+/%%ALIAS"`, `"+/%%Parent"` | `"+/"` |
 
 To enable additive mode, add the following setting to your filter file:
 
     strategy: "additive"
 
+**Caution:** If using `"-/"` or similar top-level exclusion rules, be aware of
+the fields `"+/%%Parent"` and `"+/%%ALIAS"`, which are required in locale tree
+resource bundles. Excluding these paths may cause unexpected locale fallback
+behavior.
+
 #### Filter Types
 
 You may list *filters* for each category in the *featureFilters* section of
index 9150eb28f20ee96d5d0ce3869e98366314acd106..0eff5b9c57c2972e60a7cf8163af5f9a6badd37b 100644 (file)
@@ -319,9 +319,15 @@ class ResourceFilterInfo(object):
             )
         ]
         if self.strategy == "additive":
-            self.rules_by_file = [["-/"] for _ in range(len(files))]
+            self.rules_by_file = [
+                [r"-/", r"+/%%ALIAS", r"+/%%Parent"]
+                for _ in range(len(files))
+            ]
         else:
-            self.rules_by_file = [["+/"] for _ in range(len(files))]
+            self.rules_by_file = [
+                [r"+/"]
+                for _ in range(len(files))
+            ]
 
     def add_rules(self, file_filter, rules):
         for file, rule_list in zip(self.input_files, self.rules_by_file):