Merge pull request #4426 from dotCooCoo/fix/leading-catalog-terms

i18n: each catalog names leading with one term
This commit is contained in:
BFlat
2026-10-29 11:02:49 +07:00
committed by GitHub
6 changed files with 38 additions and 13 deletions
+4 -4
View File
@@ -2990,7 +2990,7 @@ font-technology Variable Променливи
Sixth Space Шесто разстояние
Size Размер
Size Tile to Art Оразмеряване на плочката според обектите
Size/Leading Размер/Интервал
Size/Leading Размер/междуредие
Size: Размер:
Ridges per segment: Изпъкналости на сегмент:
Size: {size} Tracking: {tracking} Размер: {size} Разредка: {tracking}
@@ -3666,8 +3666,8 @@ imageTrace Outline Контур
— {n} characters from another font — {n} знака от друг шрифт
[Normal Character Style] [Нормален стил на знак]
[Normal Paragraph Style] [Нормален стил на абзац]
Top-to-Top Leading Разстояние между редовете отгоре до горе
Bottom-to-Bottom Leading Разстояние между редовете отдолу до долу
Top-to-Top Leading Междуредие отгоре до горе
Bottom-to-Bottom Leading Междуредие отдолу до долу
Burasagari Бурасагари
Force Принудително
About Относно
@@ -5376,7 +5376,7 @@ theme Appearance Външен вид
Word Spacing: Разстояние между думите:
Letter Spacing: Разстояние между буквите:
Glyph Scaling: Мащабиране на знаците:
Auto Leading: Автоматична междуредова разредка:
Auto Leading: Автоматично междуредие:
Single Word Justification: Подравняване на единична дума:
Full Justify Пълно двустранно
Minimum must not exceed Desired, nor Desired Maximum. Минималната стойност не може да надвишава желаната, нито желаната – максималната.
Can't render this file because it contains an unexpected character in line 2 and column 73.
+1 -1
View File
@@ -5371,7 +5371,7 @@ swatch Bright Violet Violet cerah
Word Spacing: Spasi Kata:
Letter Spacing: Spasi Huruf:
Glyph Scaling: Penskalaan Glif:
Auto Leading: Spasi Baris Otomatis:
Auto Leading: Leading otomatis:
Single Word Justification: Perataan Kata Tunggal:
Full Justify Rata Penuh
Minimum must not exceed Desired, nor Desired Maximum. Minimum tidak boleh melebihi Diinginkan, dan Diinginkan tidak boleh melebihi Maksimum.
Can't render this file because it contains an unexpected character in line 3857 and column 19.
+3 -3
View File
@@ -3365,8 +3365,8 @@ font-technology Variable Variáveis
New Name Novo nome
no variable to rename nenhuma variável para renomear
no data set to rename nenhum conjunto de dados para renomear
Top-to-Top Leading Entrelinha de topo a topo
Bottom-to-Bottom Leading Entrelinha de base a base
Top-to-Top Leading Entrelinhamento de topo a topo
Bottom-to-Bottom Leading Entrelinhamento de base a base
Burasagari Burasagari
Force Forçar
Miter Ponta
@@ -5355,7 +5355,7 @@ mark-style Japanese Japonesas
Word Spacing: Espaçamento entre Palavras:
Letter Spacing: Espaçamento entre Letras:
Glyph Scaling: Dimensionamento de Glifos:
Auto Leading: Entrelinha Automática:
Auto Leading: Entrelinhamento Automático:
Single Word Justification: Justificação de Palavra Única:
Full Justify Justificação Completa
Minimum must not exceed Desired, nor Desired Maximum. O mínimo não pode passar do desejado, nem o desejado do máximo.
Can't render this file because it contains an unexpected character in line 6 and column 47.
+25
View File
@@ -460,6 +460,31 @@ fn zh_hans_is_simplified_and_mainland() {
assert!(bad.is_empty(), "in zh-hans.tsv:\n{}", bad.join("\n"));
}
/// Each catalog names leading with one term: every word of the Character panel's Leading field
/// (the text before " (", ignoring case) appears in the Auto Leading, Size/Leading, Top-to-Top
/// Leading and Bottom-to-Bottom Leading rows outside their placeholders.
/// A catalog without the Leading row, or without one of the others, is skipped for that check.
#[test]
fn leading_term_agrees_within_each_catalog() {
let mut bad = Vec::new();
for l in LANGUAGES.iter().filter(|l| !l.source.is_empty()) {
let (entries, _) = parse_entries(l.source);
let row = |src: &str| entries.iter().find(|(ctx, s, _)| ctx.is_empty() && s == src).map(|(_, _, tr)| tr.to_lowercase());
let Some(leading) = row("Leading").map(|tr| tr.split(" (").next().unwrap_or_default().trim().to_string()) else {
continue;
};
for src in ["Auto Leading:", "Size/Leading", "Top-to-Top Leading", "Bottom-to-Bottom Leading"] {
if let Some(text) = row(src) {
let bare = placeholders(&text).iter().fold(text.clone(), |t, p| t.replace(&format!("{{{p}}}"), " "));
for word in leading.split_whitespace().filter(|w| !bare.contains(*w)) {
bad.push(format!("{}: {src:?} → {text:?} lacks {word:?} from the Leading field {leading:?}", l.code));
}
}
}
}
assert!(bad.is_empty(), "rows that name leading differently from the Leading field:\n{}", bad.join("\n"));
}
/// No translated word mixes Latin, Cyrillic and Greek letters, such as a Latin "A" typed in place
/// of a Cyrillic "А". A word written in one script, such as "PDF" or "X" in a Russian row, is
/// allowed.
+4 -4
View File
@@ -1524,7 +1524,7 @@ font-technology Variable Değişken
Layers Panel Options Katmanlar Paneli Seçenekleri
Layout: Düzen:
Leader: Lider:
Leading Lider
Leading Satır Aralığı
Left Sol
Left Grid: Sol Izgara:
Left in Front Sol Önde
@@ -2897,7 +2897,7 @@ font-technology Variable Değişken
Sixth Space Altıncı Uzay
Size Boyut
Size Tile to Art Sanata Boyut Döşeme
Size/Leading Boyut/Öncülük
Size/Leading Boyut/Satır Aralığı
Size: Boyut:
Ridges per segment: Segment başına sırtlar:
Size: {size} Tracking: {tracking} Boyut: {size} Takip: {tracking}
@@ -3557,8 +3557,8 @@ imageTrace Outline Kontur
— {n} characters from another font — Başka bir yazı tipinden {n} karakterler
[Normal Character Style] [Normal Karakter Stili]
[Normal Paragraph Style] [Normal Paragraf Stili]
Top-to-Top Leading Tepeden Tepeye Liderlik
Bottom-to-Bottom Leading Aşağıdan Aşağıya Öncülük
Top-to-Top Leading Tepeden Tepeye Satır Aralığı
Bottom-to-Bottom Leading Aşağıdan Aşağıya Satır Aralığı
Burasagari Burasagari
Force kuvvet
About Hakkında
Can't render this file because it contains an unexpected character in line 5 and column 25.
+1 -1
View File
@@ -5033,7 +5033,7 @@ theme Appearance Giao diện
Word Spacing: Khoảng cách từ:
Letter Spacing: Khoảng cách chữ:
Glyph Scaling: Tỷ lệ glyph:
Auto Leading: Khoảng cách dòng tự động:
Auto Leading: Giãn dòng tự động:
Single Word Justification: Căn đều một từ:
Full Justify Căn đều hoàn toàn
Minimum must not exceed Desired, nor Desired Maximum. Giá trị tối thiểu không được vượt quá giá trị mong muốn, và giá trị mong muốn không được vượt quá tối đa.
Can't render this file because it contains an unexpected character in line 4073 and column 10.