Add localized forms for Bashkir and Chuvash. (#2485)

This commit is contained in:
John McWilliams 2024-08-29 23:51:12 -04:00 committed by GitHub
parent 5f20ec72ae
commit 0219a501ec
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 107 additions and 7 deletions

View file

@ -2,3 +2,4 @@
- KAYAH LI SIGN CWI (`U+A92E`).
- ZERO WIDTH NON-BREAKING SPACE (`U+FEFF`).
* Add APL form (`APLF`) for `U+25E0` and `U+25E1`, for UIUA.
* Add Cyrillic localization forms for Bashkir and Chuvash.

View file

@ -82,3 +82,19 @@ glyph-block Letter-Cyrillic-Orthography : begin
link-gr LocalizedForm.BGR 'cyrl/tse' 'cyrl/tse.BGR'
link-gr LocalizedForm.BGR 'cyrl/yer' 'cyrl/yer.BGR'
link-gr LocalizedForm.BGR 'cyrl/yeri' 'cyrl/yeri.BGR'
link-gr LocalizedForm.BSH.Upright 'cyrl/Ghayn' 'cyrl/Ghayn.BSH'
link-gr LocalizedForm.BSH.Upright 'cyrl/ghayn' 'cyrl/ghayn.BSH'
link-gr LocalizedForm.BSH.Upright 'cyrl/Dhe' 'cyrl/Dhe.BSH'
link-gr LocalizedForm.BSH.Upright 'cyrl/dhe' 'cyrl/dhe.BSH'
link-gr LocalizedForm.BSH.Upright 'cyrl/The' 'cyrl/The.BSH'
link-gr LocalizedForm.BSH.Upright 'cyrl/the' 'cyrl/the.BSH'
link-gr LocalizedForm.BSH.Italic 'cyrl/Ghayn' 'cyrl/Ghayn.BSH'
link-gr LocalizedForm.BSH.Italic 'cyrl/Dhe' 'cyrl/Dhe.BSH'
link-gr LocalizedForm.BSH.Italic 'cyrl/dhe' 'cyrl/dhe.BSH'
link-gr LocalizedForm.BSH.Italic 'cyrl/The' 'cyrl/The.BSH'
link-gr LocalizedForm.BSH.Italic 'cyrl/the' 'cyrl/the.BSH'
link-gr LocalizedForm.CHU 'cyrl/The' 'cyrl/The.CHU'
link-gr LocalizedForm.CHU 'cyrl/the' 'cyrl/the.CHU'

View file

@ -101,7 +101,7 @@ glyph-block Letter-Greek-Lower-Epsilon : begin
glyph-block-export CyrZe
define [CyrZe] : with-params [
slabTop slabBot top bot left right blend hook _stroke
[xo OX] [op OverlayPos] [ada2 SmallArchDepthA] [adb2 SmallArchDepthB]
[xo OX] [yo O] [op OverlayPos] [ada2 SmallArchDepthA] [adb2 SmallArchDepthB]
] : namespace
export : define [Dim] : begin
local stroke : fallback _stroke : AdviceStroke2 2 3 (top - bot)
@ -109,8 +109,8 @@ glyph-block Letter-Greek-Lower-Epsilon : begin
local midy : mix bot top op
local topHeight : top - bot
local midyHeight : midy - bot
local adb : topHeight - [mix (midyHeight + stroke / 2) (topHeight - O - stroke) (ArchDepthA / (ArchDepthA + ArchDepthB))] + [HSwToV TanSlope] * stroke
local ada : [mix (stroke + O) (midyHeight - stroke / 2) (ArchDepthA / (ArchDepthA + ArchDepthB))] - [HSwToV TanSlope] * stroke
local adb : topHeight - [mix (midyHeight + stroke / 2) (topHeight - yo - stroke) (ArchDepthA / (ArchDepthA + ArchDepthB))] + [HSwToV TanSlope] * stroke
local ada : [mix (stroke + yo) (midyHeight - stroke / 2) (ArchDepthA / (ArchDepthA + ArchDepthB))] - [HSwToV TanSlope] * stroke
local fine : stroke * CThin
local stemFine : stroke * (ShoulderFine / Stroke)
return : object stroke midx midy ada adb fine stemFine
@ -242,6 +242,22 @@ glyph-block Letter-Greek-Lower-Epsilon : begin
include : let [ze : CyrZe slabTop slabBot XH Descender SB RightSB StdBlend SHook]
union [ze.Shape] [ze.AutoStartSerifL] [ze.AutoEndSerifL]
create-glyph "cyrl/Dhe.\(suffix)" : glyph-proc
include [refer-glyph "cyrl/Ze.\(suffix)"] AS_BASE ALSO_METRICS
include : ExtendBelowBaseAnchors (-LongJut + 0.5 * Stroke)
include : let [zeNoO : CyrZe slabTop slabBot CAP 0 SB RightSB StdBlend Hook (xo -- 0) (yo -- 0)]
difference
VBar.m Middle (-LongJut + 0.5 * Stroke) (Stroke + O) [AdviceStroke 3.5]
zeNoO.ShapeMask
create-glyph "cyrl/dhe.\(suffix)" : glyph-proc
include [refer-glyph "cyrl/ze.\(suffix)"] AS_BASE ALSO_METRICS
include : ExtendBelowBaseAnchors (-LongJut + 0.5 * Stroke)
include : let [zeNoO : CyrZe slabTop slabBot XH 0 SB RightSB StdBlend SHook (xo -- 0) (yo -- 0)]
difference
VBar.m Middle (-LongJut + 0.5 * Stroke) (Stroke + O) [AdviceStroke 3.5]
zeNoO.ShapeMask
create-glyph "cyrl/DzjeKomi.\(suffix)" : glyph-proc
include : MarkSet.capital
local ze : CyrZe slabTop OPEN-VERTICAL CAP 0 SB RightSB StdBlend Hook
@ -482,8 +498,22 @@ glyph-block Letter-Greek-Lower-Epsilon : begin
select-variant 'cyrl/DzjeKomi' 0x506 (follow -- 'cyrl/ZeTopSerifOnly')
select-variant 'cyrl/dzjeKomi' 0x507 (follow -- 'cyrl/zeTopSerifOnly')
derive-composites 'cyrl/Dhe' 0x498 'cyrl/Ze' 'cedillaExtShapeBelowOArc'
derive-composites 'cyrl/dhe' 0x499 'cyrl/ze' 'cedillaExtShapeBelowSOArc'
select-variant 'cyrl/Dhe' 0x498 (follow -- 'cyrl/Ze')
select-variant 'cyrl/dhe' 0x499 (follow -- 'cyrl/ze')
derive-multi-part-glyphs 'cyrl/Dhe.BSH' null { 'cyrl/Ze' 'invCommaBelow' } : lambda [srcs gr] : glyph-proc
local { base mark } srcs
include : refer-glyph mark
include : Translate Width AccentClearance
include [refer-glyph base] AS_BASE ALSO_METRICS
include : ExtendBelowBaseAnchors (-AccentHeight)
derive-multi-part-glyphs 'cyrl/dhe.BSH' null { 'cyrl/ze' 'invCommaBelow' } : lambda [srcs gr] : glyph-proc
local { base mark } srcs
include : refer-glyph mark
include : Translate Width AccentClearance
include [refer-glyph base] AS_BASE ALSO_METRICS
include : ExtendBelowBaseAnchors (-AccentHeight)
select-variant 'latn/epsilon/descBase' (shapeFrom -- 'latn/epsilon')
select-variant 'latn/epsilonRev/descBase' (shapeFrom -- 'cyrl/ze') (follow -- 'cyrl/ze/descBase')

View file

@ -354,8 +354,38 @@ glyph-block Letter-Latin-C : begin
derive-composites 'CCedilla' 0xC7 'C' 'cedillaExtShapeBelowOArc'
derive-composites 'cCedilla' 0xE7 'c' 'cedillaExtShapeBelowOArc'
derive-composites 'cyrl/The' 0x4AA 'cyrl/Es' 'cedillaExtShapeBelowOArc'
derive-composites 'cyrl/the' 0x4AB 'cyrl/es' 'cedillaExtShapeBelowOArc'
derive-glyphs 'cyrl/The' 0x4AA "cyrl/Es" : function [src gr] : glyph-proc
include [refer-glyph src] AS_BASE ALSO_METRICS
include : ExtendBelowBaseAnchors (-LongJut + 0.5 * Stroke)
include : difference
VBar.m Middle (-LongJut + 0.5 * Stroke) (Stroke + O) [AdviceStroke 3.5]
OShapeOutline.NoOvershoot CAP 0 SB RightSB Stroke ArchDepthA ArchDepthB
derive-multi-part-glyphs 'cyrl/The.BSH' null { 'cyrl/Es' 'invCommaBelow' } : lambda [srcs gr] : glyph-proc
local { base mark } srcs
include : refer-glyph mark
include : Translate Width AccentClearance
include [refer-glyph base] AS_BASE ALSO_METRICS
include : ExtendBelowBaseAnchors (-AccentHeight)
derive-composites 'cyrl/The.CHU' null 'cyrl/Es' 'cedillaExtShapeBelowOArc'
derive-glyphs 'cyrl/the' 0x4AB "cyrl/es" : function [src gr] : glyph-proc
include [refer-glyph src] AS_BASE ALSO_METRICS
include : ExtendBelowBaseAnchors (-LongJut + 0.5 * Stroke)
include : difference
VBar.m Middle (-LongJut + 0.5 * Stroke) (Stroke + O) [AdviceStroke 3.5]
OShapeOutline.NoOvershoot XH 0 SB RightSB Stroke SmallArchDepthA SmallArchDepthB
derive-multi-part-glyphs 'cyrl/the.BSH' null { 'cyrl/es' 'invCommaBelow' } : lambda [srcs gr] : glyph-proc
local { base mark } srcs
include : refer-glyph mark
include : Translate Width AccentClearance
include [refer-glyph base] AS_BASE ALSO_METRICS
include : ExtendBelowBaseAnchors (-AccentHeight)
derive-composites 'cyrl/the.CHU' null 'cyrl/es' 'cedillaExtShapeBelowOArc'
create-glyph 'mathbb/C' 0x2102 : glyph-proc
include : MarkSet.capital

View file

@ -96,6 +96,9 @@ glyph-block Letter-Latin-Upper-F : begin
select-variant 'FBar' 0xA798 (follow -- 'F')
select-variant 'currency/frenchFrancSign' 0x20A3
alias 'cyrl/Ghayn.BSH' null 'F'
alias 'cyrl/ghayn.BSH' null 'smcpF'
glyph-block-import Letter-Blackboard : BBS BBD
create-glyph 'mathbb/F' 0x1D53D : glyph-proc
include : MarkSet.capital

View file

@ -211,6 +211,7 @@ glyph-block Mark-Below : begin
TurnAboveMarkToBelow 'elipsisBelow' 0x20E8 'elipsisAbove'
TurnAboveMarkToBelow 'leftArrowBelow' 0x20EE 'rightArrowAbove'
TurnAboveMarkToBelow 'rightArrowBelow' 0x20EF 'leftArrowAbove'
TurnAboveMarkToBelow 'invCommaBelow' null 'revCommaAbove'
TurnAboveMarkToBelow 'upArrowHeadBelow' null 'downArrowHeadAbove'
TurnAboveMarkToBelow 'downArrowHeadBelow' null 'upArrowHeadAbove'
TurnAboveMarkToBelow 'descenderBarBelow' null 'ascenderBarAbove'

View file

@ -14,6 +14,8 @@ export : define [buildLOCL gsub para glyphStore] : begin
define cyrlMKD : gsub.copyLanguage 'cyrl_MKD ' 'cyrl_DFLT'
define cyrlBOS : gsub.copyLanguage 'cyrl_BOS ' 'cyrl_DFLT'
define cyrlBGR : gsub.copyLanguage 'cyrl_BGR ' 'cyrl_DFLT'
define cyrlBSH : gsub.copyLanguage 'cyrl_BSH ' 'cyrl_DFLT'
define cyrlCHU : gsub.copyLanguage 'cyrl_CHU ' 'cyrl_DFLT'
define latnTRK : gsub.copyLanguage 'latn_TRK ' 'latn_DFLT'
define latnAZE : gsub.copyLanguage 'latn_AZE ' 'latn_DFLT'
define latnGAG : gsub.copyLanguage 'latn_GAG ' 'latn_DFLT'
@ -36,6 +38,15 @@ export : define [buildLOCL gsub para glyphStore] : begin
define loclBGR : cyrlBGR.addFeature : gsub.createFeature 'locl'
loclBGR.addLookup : createGsubLookupFromGr gsub glyphStore LocalizedForm.BGR
# BSH
define loclBSH : cyrlBSH.addFeature : gsub.createFeature 'locl'
loclBSH.addLookup : createGsubLookupFromGr gsub glyphStore
if [not para.isItalic] LocalizedForm.BSH.Upright LocalizedForm.BSH.Italic
# CHU
define loclCHU : cyrlCHU.addFeature : gsub.createFeature 'locl'
loclCHU.addLookup : createGsubLookupFromGr gsub glyphStore LocalizedForm.CHU
# TRK
define loclTRK : gsub.createFeature 'locl'
latnTRK.addFeature loclTRK

View file

@ -30,6 +30,11 @@ export const LocalizedForm = {
Italic: LinkedGlyphProp("SerbianLocItalic"),
},
BGR: LinkedGlyphProp("BulgarianLoc"),
BSH: {
Upright: LinkedGlyphProp("BashkirLocUpright"),
Italic: LinkedGlyphProp("BashkirLocItalic"),
},
CHU: LinkedGlyphProp("ChuvashLoc"),
IPPH: LinkedGlyphProp("IPALoc"),
};
@ -184,6 +189,9 @@ export const AnyLocalizedForm = {
if (LocalizedForm.SRB.Upright.get(glyph)) grs.push(LocalizedForm.SRB.Upright);
if (LocalizedForm.SRB.Italic.get(glyph)) grs.push(LocalizedForm.SRB.Italic);
if (LocalizedForm.BGR.get(glyph)) grs.push(LocalizedForm.BGR);
if (LocalizedForm.BSH.Upright.get(glyph)) grs.push(LocalizedForm.BSH.Upright);
if (LocalizedForm.BSH.Italic.get(glyph)) grs.push(LocalizedForm.BSH.Italic);
if (LocalizedForm.CHU.get(glyph)) grs.push(LocalizedForm.CHU);
if (LocalizedForm.IPPH.get(glyph)) grs.push(LocalizedForm.IPPH);
if (grs.length) return grs;
return null;