Please add <group> → <match> → <bad-lang>
This is a part of: #200
Purpose
The bad-lang
element in a match
block is used to declare locales, a set of font files is definitely unsuitable for.
Proposed syntax
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- SPDX-License-Identifier: MIT -->
<fontconfig>
<group>
<target>@canonical_family_name@</target>
<match>
<family>@technical_name@</family>
<bad-lang>@bad_lang_tag@</bad-lang>
</match>
</group>
</fontconfig>
Behaviour
bad-lang
completely removes font files, when assembling @canonical_family_name@
for the @bad_lang_tag@
locale. They are not kept as fallback. We know they are wrong.
Tagging files that already match @canonical_family_name@
, with @bad_lang_tag@
, can be done with a specific match
block inside merge
.
Substitution
bad-lang
also affects substitution. Files, tagged with bad-lang
, are ignored, when substituting in a @bad_lang_tag@
context.
Past alternatives
This is similar to the following proposal. However, this proposal does not provide the kind of flexibility, allowed by good-lang
+ bad-lang
rules in an group
context.
<match target="scan">
<test name="family">
<string>font name</string>
</test>
<edit name="lang" mode="assign">
<minus>
<name>lang</name>
<langset>
<string>@bad_lang_tag@</string>
...
</langset>
</minus>
</edit>
</match>
Minimal real-world example
<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<!-- SPDX-License-Identifier: MIT -->
<fontconfig>
<group>
<target>Droid Sans</target>
<match>
<family>Droid Sans Japanese</family>
<bad-lang>zh</bad-lang>
</match>
</group>
</fontconfig>