mirror of
https://github.com/storytold/vectorcraft.git
synced 2026-11-11 08:23:20 +00:00
Part of #394: each run hyphenates in its own language; Default Language sets new type's
Squashed from #2818 onto main.
This commit is contained in:
@@ -833,7 +833,10 @@ pub(crate) fn new_type_style(s: &Session, p: &Value) -> CharStyle {
|
||||
None if !s.paint.fill.is_none() && s.paint.fill != vectorcraft_color::Paint::solid(vectorcraft_color::Color::WHITE) => s.paint.fill.clone(),
|
||||
None => vectorcraft_color::Paint::solid(vectorcraft_color::Color::BLACK),
|
||||
};
|
||||
// In the document's language (Document Setup), none for the default.
|
||||
style.language = s.doc().ok().and_then(|d| vectorcraft_doc::setup::char_language(&d.doc.setup.language).ok().flatten()).map(str::to_string);
|
||||
// In the language Document Setup chose, else Preferences › Hyphenation › Default Language; none
|
||||
// for the default. Type already in a document keeps its own.
|
||||
let chosen = |name: &str| vectorcraft_doc::setup::char_language(name).ok().flatten();
|
||||
let document = s.doc().ok().and_then(|d| chosen(&d.doc.setup.language));
|
||||
style.language = document.or_else(|| chosen(&s.prefs.hyphenation_language)).map(str::to_string);
|
||||
style
|
||||
}
|
||||
|
||||
@@ -260,14 +260,40 @@ pub const PREF_SPECS: &[PrefSpec] = &[
|
||||
"",
|
||||
"Default Language",
|
||||
choice(&[
|
||||
("English: USA", "English: USA"),
|
||||
("English: UK", "English: UK"),
|
||||
("French", "French"),
|
||||
("German", "German"),
|
||||
("Spanish", "Spanish"),
|
||||
("Italian", "Italian"),
|
||||
("Dutch", "Dutch"),
|
||||
("Portuguese", "Portuguese")
|
||||
("en-US", "English: USA"),
|
||||
("en-GB", "English: UK"),
|
||||
("de", "German"),
|
||||
("de-CH", "German: Swiss"),
|
||||
("fr", "French"),
|
||||
("it", "Italian"),
|
||||
("es", "Spanish"),
|
||||
("ca", "Catalan"),
|
||||
("pt", "Portuguese"),
|
||||
("nl", "Dutch"),
|
||||
("da", "Danish"),
|
||||
("sv", "Swedish"),
|
||||
("fi", "Finnish"),
|
||||
("nb", "Norwegian"),
|
||||
("pl", "Polish"),
|
||||
("cs", "Czech"),
|
||||
("ru", "Russian"),
|
||||
("sr-Cyrl", "Serbian: Cyrillic"),
|
||||
("sr-Latn", "Serbian: Latin"),
|
||||
("hr", "Croatian"),
|
||||
("tr", "Turkish"),
|
||||
("ja", "Japanese"),
|
||||
("zh", "Chinese"),
|
||||
("hi", "Hindi"),
|
||||
("mr", "Marathi"),
|
||||
("gu", "Gujarati"),
|
||||
("bn", "Bengali"),
|
||||
("pa", "Punjabi"),
|
||||
("ta", "Tamil"),
|
||||
("te", "Telugu"),
|
||||
("kn", "Kannada"),
|
||||
("ml", "Malayalam"),
|
||||
("or", "Odia"),
|
||||
("ur", "Urdu")
|
||||
])
|
||||
),
|
||||
p!("hyphenationExceptions", "Hyphenation", "", "Exceptions (comma separated)", text),
|
||||
|
||||
Reference in New Issue
Block a user