"collationUCAData": "implicithan"
}
+### Disable Pool Bundle
+
+By default, ICU uses a "pool bundle" to store strings shared between locales.
+This saves space and is recommended for most users. However, when developing
+a system where locale data files may be added "on the fly" and not included in
+the original ICU distribution, those additional data files may not be able to
+use a pool bundle due to name collisions with the existing pool bundle.
+
+To disable the pool bundle in the current ICU build, put the following setting
+in your *filters.json* file:
+
+ {
+ "usePoolBundle": false
+ }
+
### File Substitution
Using the configuration file, you can perform whole-file substitutions. For
"locales",
None,
"icu-locale-deprecates.xml",
- True,
+ config.use_pool_bundle,
[])
requests += generate_tree(config, glob, common_vars,
"curr",
"curr",
"icu-locale-deprecates.xml",
- True,
+ config.use_pool_bundle,
[])
requests += generate_tree(config, glob, common_vars,
"lang",
"lang",
"icu-locale-deprecates.xml",
- True,
+ config.use_pool_bundle,
[])
requests += generate_tree(config, glob, common_vars,
"region",
"region",
"icu-locale-deprecates.xml",
- True,
+ config.use_pool_bundle,
[])
requests += generate_tree(config, glob, common_vars,
"zone",
"zone",
"icu-locale-deprecates.xml",
- True,
+ config.use_pool_bundle,
[])
requests += generate_tree(config, glob, common_vars,
"unit",
"unit",
"icu-locale-deprecates.xml",
- True,
+ config.use_pool_bundle,
[])
requests += generate_tree(config, glob, common_vars,
"coll",
"coll",
"icu-coll-deprecates.xml",
+ # Never use pool bundle for coll, brkitr, or rbnf
False,
# Depends on timezoneTypes.res and keyTypeData.res.
# TODO: We should not need this dependency to build collation.
"brkitr",
"brkitr",
"icu-locale-deprecates.xml",
+ # Never use pool bundle for coll, brkitr, or rbnf
False,
[DepTarget("brkitr_brk"), DepTarget("dictionaries")])
"rbnf",
"rbnf",
"icu-rbnf-deprecates.xml",
+ # Never use pool bundle for coll, brkitr, or rbnf
False,
[])
if "strategy" in self.filters_json_data:
self.strategy = self.filters_json_data["strategy"]
+ # True or False (could be extended later to support enum/list)
+ self.use_pool_bundle = True
+ if "usePoolBundle" in self.filters_json_data:
+ self.use_pool_bundle = self.filters_json_data["usePoolBundle"]
+
def _parse_filter_file(self, f):
# Use the Hjson parser if it is available; otherwise, use vanilla JSON.
try: