Skip to content

Add position, size and transparency labels - #14

Merged
Jeehut merged 1 commit into
mainfrom
wip/positions-sizes-transparency
Oct 12, 2026
Merged

Jeehut merged 1 commit into
mainfrom
wip/positions-sizes-transparency

Conversation

@Jeehut

@Jeehut Jeehut commented Oct 12, 2026 •

Copy link
Copy Markdown
Member

Closes #7.

Adds the labels @hanneskaeufler asked for:

  • Core TranslateKit: TK.Label.top, .bottom, .left, .right, .topLeft, .topRight, .bottomLeft, .bottomRight, .small, .medium, .large – generic option names (a badge position, a widget size) that apps of any category use.
  • TranslateKitGraphicsAndDesign: TK.Label.transparency, next to the existing opacity.

All twelve ship in the 40 languages of the package and use Apple's own wording from iOS 27 wherever Apple has one:

  • Positions and corners come from the accessibility settings, where iOS offers exactly these choices ("Oben links", "Sol Üst", "左上"). Where Apple uses both a direction ("to the left") and a position ("on the left") for the same word, the position form was taken, so that a side and its corners read alike (ru "Слева" / "Сверху слева", pl "Po lewej" / "Na górze, po lewej").
  • Sizes come from the text-size and widget options. In languages with grammatical gender the adjective agrees with the language's word for "size" (fr "Petite / Moyenne / Grande" for taille, cs "Malá / Střední / Velká" for velikost).
  • Transparency is ambiguous in Apple's own catalogs: most entries are the AirPods listening mode (ja "外部音取り込み", tr "Şeffaf Mod"). The visual meaning comes from "Reduce Transparency" instead (ja "透明度", tr "Saydamlık", ko "투명도").
Translations: sides
Language top bottom left right
ar الأعلى الأسفل يسار يمين
bg Горе Долу Ляво Дясно
ca A dalt A baix Esquerra Dreta
cs Nahoře Dole Vlevo Vpravo
da Øverst Nederst Venstre Højre
de Oben Unten Links Rechts
el Πάνω Κάτω Αριστερά Δεξιά
en-AU Top Bottom Left Right
en-GB Top Bottom Left Right
es Arriba Abajo Izquierda Derecha
es-419 Arriba Abajo Izquierda Derecha
fi Ylhäällä Alhaalla Vasen Oikea
fr En haut En bas Gauche Droite
fr-CA En haut En bas Gauche Droite
he למעלה למטה שמאל ימין
hi ऊपर नीचे बायाँ दायाँ
hr Gore Dolje Lijevo Desno
hu Felső Alsó Bal Jobb
id Atas Bawah Kiri Kanan
it In alto In basso Sinistra Destra
ja 上 下 左 右
kk Жоғарғы Төменгі Сол жақ Оң жақ
ko 상단 하단 왼쪽 오른쪽
ms Atas Bawah Kiri Kanan
nb Øverst Nederst Venstre Høyre
nl Boven Onder Links Rechts
pl Na górze Na dole Po lewej Po prawej
pt-BR Superior Inferior Esquerda Direita
pt-PT Em cima Em baixo Esquerda Direita
ro Sus Jos Stânga Dreapta
ru Вверху Внизу Слева Справа
sk Hore Dole Vľavo Vpravo
sv Upptill Nedtill Vänster Höger
th ด้านบน ด้านล่าง ซ้าย ขวา
tr Üst Alt Sol Sağ
uk Вгорі Внизу Зліва Справа
vi Trên cùng Dưới cùng Trái Phải
zh-HK 頂部 底部 左 右
zh-Hans 顶部 底部 左 右
zh-Hant 頂端 底部 左側 右側
Translations: corners
Language topLeft topRight bottomLeft bottomRight
ar أعلى اليسار أعلى اليمين أسفل اليسار أسفل اليمين
bg Горе вляво Горе вдясно Долу вляво Долу вдясно
ca Superior esquerra Superior dreta Inferior esquerra Inferior dreta
cs Vlevo nahoře Vpravo nahoře Vlevo dole Vpravo dole
da Øverst til venstre Øverst til højre Nederst til venstre Nederst til højre
de Oben links Oben rechts Unten links Unten rechts
el Πάνω αριστερά Πάνω δεξιά Κάτω αριστερά Κάτω δεξιά
en-AU Top Left Top Right Bottom Left Bottom Right
en-GB Top Left Top Right Bottom Left Bottom Right
es Arriba izquierda Arriba derecha Abajo izquierda Abajo derecha
es-419 Arriba izquierda Arriba derecha Abajo izquierda Abajo derecha
fi Ylävasen Yläoikea Alavasen Alaoikea
fr En haut à gauche En haut à droite En bas à gauche En bas à droite
fr-CA En haut à gauche En haut à droite En bas à gauche En bas à droite
he שמאל למעלה ימין למעלה שמאל למטה ימין למטה
hi ऊपर बाएँ ऊपर दाएँ नीचे बाएँ नीचे दाएँ
hr Gore lijevo Gore desno Dolje lijevo Dolje desno
hu Balra fent Jobbra fent Balra lent Jobbra lent
id Kiri Atas Kanan Atas Kiri Bawah Kanan Bawah
it In alto a sinistra In alto a destra In basso a sinistra In basso a destra
ja 左上 右上 左下 右下
kk Жоғарғы сол жақ Жоғарғы оң жақ Төменгі сол жақ Төменгі оң жақ
ko 왼쪽 상단 오른쪽 상단 왼쪽 하단 오른쪽 하단
ms Kiri Atas Kanan Atas Kiri Bawah Kanan Bawah
nb Øverst til venstre Øverst til høyre Nederst til venstre Nederst til høyre
nl Linksboven Rechtsboven Linksonder Rechtsonder
pl Na górze, po lewej Na górze, po prawej Na dole, po lewej Na dole, po prawej
pt-BR Superior Esquerda Superior Direita Inferior Esquerda Inferior Direita
pt-PT Em cima, à esquerda Em cima, à direita Em baixo, à esquerda Em baixo, à direita
ro Stânga sus Dreapta sus Stânga jos Dreapta jos
ru Сверху слева Сверху справа Внизу слева Внизу справа
sk Vľavo hore Vpravo hore Vľavo dole Vpravo dole
sv Övre vänstra Övre högra Nedre vänstra Nedre högra
th ด้านบนซ้าย ด้านบนขวา ด้านล่างซ้าย ด้านล่างขวา
tr Sol Üst Sağ Üst Sol Alt Sağ Alt
uk Вгорі зліва Вгорі справа Внизу зліва Внизу справа
vi Trên cùng bên trái Trên cùng bên phải Dưới cùng bên trái Dưới cùng bên phải
zh-HK 左上方 右上方 左下 右下
zh-Hans 左上方 右上方 左下方 右下方
zh-Hant 左上 右上 左下 右下
Translations: sizes and transparency
Language small medium large transparency
ar صغير متوسط كبير الشفافية
bg Малък Среден Голям Прозрачност
ca Petita Mitjana Gran Transparència
cs Malá Střední Velká Průhlednost
da Lille Medium Stor Gennemsigtighed
de Klein Mittel Groß Transparenz
el Μικρό Μεσαίο Μεγάλο Διαφάνεια
en-AU Small Medium Large Transparency
en-GB Small Medium Large Transparency
es Pequeño Mediano Grande Transparencia
es-419 Pequeño Mediano Grande Transparencia
fi Pieni Normaali Suuri Läpinäkyvyys
fr Petite Moyenne Grande Transparence
fr-CA Petite Moyenne Grande Transparence
he קטן בינוני גדול שקיפות
hi छोटा मध्यम बड़ा पारदर्शिता
hr Mala Srednja Velika Prozirnost
hu Kicsi Közepes Nagy Átlátszóság
id Kecil Sedang Besar Transparansi
it Piccolo Medio Grande Trasparenza
ja 小 中 大 透明度
kk Кіші Орташа Үлкен Мөлдірлік
ko 작게 중간 크게 투명도
ms Kecil Sederhana Besar Kelutsinaran
nb Liten Middels Stor Gjennomsiktighet
nl Klein Gemiddeld Groot Doorzichtigheid
pl Mały Średni Duży Przezroczystość
pt-BR Pequeno Médio Grande Transparência
pt-PT Pequeno Médio Grande Transparência
ro Mică Medie Mare Transparență
ru Малый Средний Большой Прозрачность
sk Malá Stredná Veľká Priehľadnosť
sv Liten Medel Stor Genomskinlighet
th เล็ก ปานกลาง ใหญ่ ความโปร่งใส
tr Küçük Orta Büyük Saydamlık
uk Малий Середній Великий Прозорість
vi Nhỏ Trung bình Lớn Độ trong suốt
zh-HK 小 中 大 透明度
zh-Hans 小 中 大 透明度
zh-Hant 小 中 大 透明度

How this was verified

PositionSizeTransparencyTests checks the English values and reads the compiled bundles for every language that lacks one of the twelve keys. With the new entries reduced to English it failed for all twelve; with this branch it passes:

# new entries in English only
✘ coreLabelIsTranslatedIntoEveryLanguage(key:) with 11 test cases failed with 11 issues.
✘ Test run with 7 tests in 2 suites failed with 12 issues.

# this branch
✔ Test run with 7 tests in 2 suites passed.

The catalog diff only adds entries: a JSON comparison against main found no existing key changed. swift test --build-system swiftbuild on Xcode 26.6 / Swift 6.3.3, as in CI. Tests/TranslateKitTests/CompiledCatalog.swift is the same helper as in #12 and #13.

Top, bottom, left, right, the four corners and small, medium, large
are generic option names any app's settings may need, so they go into
the core module. Transparency belongs to GraphicsAndDesign next to
Opacity.

Every language follows Apple's own wording: the positions and corners
as in the iOS accessibility settings, the sizes as in the text-size and
widget options, and transparency as in 'Reduce Transparency' rather than
the AirPods listening mode Apple also calls Transparency.
@Jeehut
Jeehut force-pushed the wip/positions-sizes-transparency branch from 3febe1a to 259134b Compare October 12, 2026 09:34
@Jeehut
Jeehut merged commit 16b55f5 into main Oct 12, 2026
1 check passed
@Jeehut
Jeehut deleted the wip/positions-sizes-transparency branch October 12, 2026 09:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feat] Positions, Sizes and Transparency

1 participant