{"push_id":2753045007,"size":6,"distinct_size":6,"ref":"refs/heads/language-tags","head":"bc42c189cc73646cc8dd715431c0a608f71a0f97","before":"614be47b2f91e8cfa850b3b9f2a5b2e8b0b49a90","commits":[{"sha":"0272c64666f51558d528b029b874cc64be0131cf","author":{"name":"David Corbett","email":"d70bd96b5c1b0e58c79386c4d40b08b7ef407eb2@husky.neu.edu"},"message":"Autogenerate the BCP 47 to OpenType mappings\n\nThe new script, gen-tag-table.py, generates `ot_languages` automatically\nfrom the [OpenType language system tag registry][ot] and the [IANA\nLanguage Subtag Registry][bcp47] with some manual modifications. If an\nOpenType tag maps to a BCP 47 macrolanguage, all the macrolanguage's\nindividual languages are mapped to the same OpenType tag, except for\nindividual languages with their own OpenType mappings. Deprecated\nBCP 47 tags are canonicalized.\n\n[ot]: https://docs.microsoft.com/en-us/typography/opentype/spec/languagetags\n[bcp47]: https://www.iana.org/assignments/language-subtag-registry/language-subtag-registry\n\nSome OpenType tags correspond to multiple ISO 639 codes. The mapping\nfrom ISO 639 codes lists OpenType tags in priority order, such that more\nspecific or more likely tags appear first.\n\nSome OpenType tags have no corresponding ISO 639 code in the registry so\ntheir mappings use BCP 47 subtags besides the language. For example, any\nBCP 47 tag with a fonipa variant subtag is mapped to 'IPPH', and 'IPPH'\nis mapped back to und-fonipa.\n\nOther OpenType tags have no corresponding ISO 639 code because it is not\nclear what they are for. HarfBuzz just ignores these tags.\n\nOne such ignored tag is 'ZHP ' (Chinese Phonetic). It probably means\nzh-Latn. However, it is used in Microsoft JhengHei and Microsoft YaHei\nwith the script tag 'hani', implying that it is not a romanization\nscheme after all. It would be simple enough to add this mapping to\ngen-tag-table.py once a definitive mapping is determined.\n\nThe manual modifications are mainly either obvious mappings that the\nOpenType registry omits or mappings for compatibility with previous\nversions of HarfBuzz. Some of the old mappings were discarded, though,\nfor homophonous language names. For example, OpenType maps 'KUI ' to\nkxu; previous versions of HarfBuzz also mapped it to kvd, because kvd\nand kxu both happen to be called \"Kui\".\n\ngen-tag-table.py also generates a function to convert multi-subtag tags\nlike el-polyton and zh-HK to OpenType tags, replacing `ot_languages_zh`\nand the hard-coded list of special cases in `hb_ot_tags_from_language`.\nIt also generates a function to convert OpenType tags to BCP 47,\nreplacing the hard-coded list of special cases in\n`hb_ot_tag_to_language`.","distinct":true,"url":"https://api.github.com/repos/dscorbett/harfbuzz/commits/0272c64666f51558d528b029b874cc64be0131cf"},{"sha":"4fe34f7f2548a05fff7a93549df98ee440619b03","author":{"name":"David Corbett","email":"d70bd96b5c1b0e58c79386c4d40b08b7ef407eb2@husky.neu.edu"},"message":"Match extlang subtags\n\nIf the second subtag of a BCP 47 tag is three letters long, it denotes\nan extended language. The tag converter ignores the language subtag and\nuses the extended language instead.\n\nThere are some grandfathered exceptions, which are handled earlier.","distinct":true,"url":"https://api.github.com/repos/dscorbett/harfbuzz/commits/4fe34f7f2548a05fff7a93549df98ee440619b03"},{"sha":"d7e67a9250ec0b75b3931464acf0203efeec5b59","author":{"name":"David Corbett","email":"d70bd96b5c1b0e58c79386c4d40b08b7ef407eb2@husky.neu.edu"},"message":"Test deprecated tag fallback in a font\n\nThe font supports the deprecated tag 'DHV ' instead of 'DIV '. dv is\nmapped to 'DIV ' and 'DHV ', in that order. The test specifies\n`--language=dv`, demonstrating that if a font does not support the first\nOpenType tag mapped to a BCP 47 tag, it will fall back to the next tag.","distinct":true,"url":"https://api.github.com/repos/dscorbett/harfbuzz/commits/d7e67a9250ec0b75b3931464acf0203efeec5b59"},{"sha":"178694cce7b4859cddbe3544069eefbee5ade18e","author":{"name":"David Corbett","email":"d70bd96b5c1b0e58c79386c4d40b08b7ef407eb2@husky.neu.edu"},"message":"Map Quechua languages to closest ones with tags\n\nOpenType only officially maps four ISO 639 codes to Quechua languages,\nbut prior versions of HarfBuzz also mapped qu to 'QUZ '. Because qu is a\nmacrolanguage, the mapping now applies to all individual Quechua\nlanguages. OpenType calls 'QUZ ' \"Quechua\", but it really corresponds to\nCusco Quechua, so the individual Quechua languages should not all\nnecessarily be mapped to it.","distinct":true,"url":"https://api.github.com/repos/dscorbett/harfbuzz/commits/178694cce7b4859cddbe3544069eefbee5ade18e"},{"sha":"2b04b8b905d64bfba9ca9d31bbe518ef30c7c50b","author":{"name":"David Corbett","email":"d70bd96b5c1b0e58c79386c4d40b08b7ef407eb2@husky.neu.edu"},"message":"Switch on the first char of a complex language tag\n\nThis results in a tenfold speed-up for the common case of tags that are\nnot complex, in the sense of `hb_ot_tags_from_complex_language`.","distinct":true,"url":"https://api.github.com/repos/dscorbett/harfbuzz/commits/2b04b8b905d64bfba9ca9d31bbe518ef30c7c50b"},{"sha":"bc42c189cc73646cc8dd715431c0a608f71a0f97","author":{"name":"David Corbett","email":"d70bd96b5c1b0e58c79386c4d40b08b7ef407eb2@husky.neu.edu"},"message":"Add hb_ot_tags_to_script_and_language","distinct":true,"url":"https://api.github.com/repos/dscorbett/harfbuzz/commits/bc42c189cc73646cc8dd715431c0a608f71a0f97"}]}
{"actor":{"display_login":"dscorbett"}}