forked from 1b-agent/opencadstudio-upstream
review(#1657): Lao is selectable and renders on the web
- Language gains lo-LA, labelled ລາວ in every catalog, so the new translation can be chosen. - Two Lao keys under stale names now use the catalog's names, and the touchpad option added since gets its Lao label. - The web build gets a Lao font (Noto Sans Lao, generated like Thai) and routes Lao and Thai drawing text to their fonts; Thai had a font but was never routed to it. Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
ca84ff9cdb
commit
1882773418
26 files changed
+43
-3
No files matched your search
@@ -13,6 +13,7 @@ language =
|
||||
.arabic = العربية
|
||||
.japanese = 日本語
|
||||
.korean = 한국어
|
||||
.lao = ລາວ
|
||||
.czech = Čeština
|
||||
.italian = Italiano
|
||||
.finnish = Suomi
|
||||
|
||||
@@ -13,6 +13,7 @@ language =
|
||||
.arabic = العربية
|
||||
.japanese = 日本語
|
||||
.korean = 한국어
|
||||
.lao = ລາວ
|
||||
.czech = Čeština
|
||||
.italian = Italiano
|
||||
.finnish = Suomi
|
||||
|
||||
@@ -13,6 +13,7 @@ language =
|
||||
.arabic = العربية
|
||||
.japanese = 日本語
|
||||
.korean = 한국어
|
||||
.lao = ລາວ
|
||||
.czech = Čeština
|
||||
.italian = Italiano
|
||||
.finnish = Suomi
|
||||
|
||||
@@ -13,6 +13,7 @@ language =
|
||||
.arabic = العربية
|
||||
.japanese = 日本語
|
||||
.korean = 한국어
|
||||
.lao = ລາວ
|
||||
.czech = Čeština
|
||||
.italian = Italiano
|
||||
.finnish = Suomi
|
||||
|
||||
@@ -13,6 +13,7 @@ language =
|
||||
.arabic = العربية
|
||||
.japanese = 日本語
|
||||
.korean = 한국어
|
||||
.lao = ລາວ
|
||||
.czech = Čeština
|
||||
.italian = Italiano
|
||||
.finnish = Suomi
|
||||
|
||||
@@ -13,6 +13,7 @@ language =
|
||||
.arabic = العربية
|
||||
.japanese = 日本語
|
||||
.korean = 한국어
|
||||
.lao = ລາວ
|
||||
.czech = Čeština
|
||||
.italian = Italiano
|
||||
.finnish = Suomi
|
||||
|
||||
@@ -13,6 +13,7 @@ language =
|
||||
.arabic = العربية
|
||||
.japanese = 日本語
|
||||
.korean = 한국어
|
||||
.lao = ລາວ
|
||||
.czech = Čeština
|
||||
.italian = Italiano
|
||||
.finnish = Suomi
|
||||
|
||||
@@ -13,6 +13,7 @@ language =
|
||||
.arabic = العربية
|
||||
.japanese = 日本語
|
||||
.korean = 한국어
|
||||
.lao = ລາວ
|
||||
.czech = Čeština
|
||||
.italian = Italiano
|
||||
.finnish = Suomi
|
||||
|
||||
@@ -13,6 +13,7 @@ language =
|
||||
.arabic = العربية
|
||||
.japanese = 日本語
|
||||
.korean = 한국어
|
||||
.lao = ລາວ
|
||||
.czech = Čeština
|
||||
.italian = Italiano
|
||||
.finnish = Suomi
|
||||
|
||||
@@ -13,6 +13,7 @@ language =
|
||||
.arabic = العربية
|
||||
.japanese = 日本語
|
||||
.korean = 한국어
|
||||
.lao = ລາວ
|
||||
.czech = Čeština
|
||||
.italian = Italiano
|
||||
.finnish = Suomi
|
||||
|
||||
@@ -13,6 +13,7 @@ language =
|
||||
.arabic = العربية
|
||||
.japanese = 日本語
|
||||
.korean = 한국어
|
||||
.lao = ລາວ
|
||||
.czech = Čeština
|
||||
.italian = Italiano
|
||||
.finnish = Suomi
|
||||
|
||||
@@ -13,6 +13,7 @@ language =
|
||||
.arabic = العربية
|
||||
.japanese = 日本語
|
||||
.korean = 한국어
|
||||
.lao = ລາວ
|
||||
.czech = Čeština
|
||||
.italian = Italiano
|
||||
.finnish = Suomi
|
||||
|
||||
@@ -13,6 +13,7 @@ language =
|
||||
.arabic = العربية
|
||||
.japanese = 日本語
|
||||
.korean = 한국어
|
||||
.lao = ລາວ
|
||||
.czech = Čeština
|
||||
.italian = Italiano
|
||||
.finnish = Suomi
|
||||
|
||||
@@ -13,6 +13,7 @@ language =
|
||||
.arabic = العربية
|
||||
.japanese = 日本語
|
||||
.korean = 한국어
|
||||
.lao = ລາວ
|
||||
.czech = Čeština
|
||||
.italian = Italiano
|
||||
.finnish = Suomi
|
||||
|
||||
@@ -351,7 +351,7 @@ common =
|
||||
.blue = ສີຟ້າ
|
||||
.bulge = ຄວາມໂກ່ງ
|
||||
.boolean-failed-the-solids-may-not-overlap = ບູນີນຫຼົ້ມເຫຼວ — ຮູບຊົງຕັນອາດຈະບໍ່ໄດ້ທັບຊ້ອນກັນ.
|
||||
.boolean-select-select-exactly-two-solids-created-this = Boolean: ເລືອກຮູບຊົງຕັນທີ່ສ້າງໃນເຊດຊັນນີ້ພຽງ 2 ອັນ.
|
||||
.boolean-select-exactly-two-solids-created-this = Boolean: ເລືອກຮູບຊົງຕັນທີ່ສ້າງໃນເຊດຊັນນີ້ພຽງ 2 ອັນ.
|
||||
.bottom = ລຸ່ມ
|
||||
.bottom-center-title-case = ລຸ່ມກາງ
|
||||
.bottom-left-title-case = ລຸ່ມຊ້າຍ
|
||||
@@ -1439,6 +1439,7 @@ common =
|
||||
.user-preferences = ການຕັ້ງຄ່າສ່ວນຕົວຂອງຜູ້ໃຊ້
|
||||
.zoom = ຊູມ
|
||||
.reverse-mouse-wheel-zoom-zoomwheel = ສະຫຼັບທິດທາງການໝຸນລໍ້ເມົາສ໌ຊູມ (ZOOMWHEEL)
|
||||
.touchpad-scroll-pans-ctrl-scroll-or-pinch-zooms = ທັດແພດ: ເລື່ອນເພື່ອຍ້າຍມຸມມອງ, Ctrl+ເລື່ອນ ຫຼື ບີບເພື່ອຊູມ
|
||||
.zoom-factor = ຕົວຄູນການຊູມ
|
||||
.how-far-one-wheel-notch-zooms-zoomfactor = ໄລຍະຊູມຕໍ່ການໝຸນລໍ້ເມົາສ໌ໜຶ່ງຄລິກ (ZOOMFACTOR).
|
||||
.text-and-dimensions = ຂໍ້ຄວາມ ແລະ ຂະໜາດ
|
||||
@@ -2519,7 +2520,7 @@ inquiry =
|
||||
.measuregeom-specify-second-ray-point = MEASUREGEOM ກຳນົດຈຸດທີສອງຂອງລັງສີ:
|
||||
.measuregeom-specify-vertex-point = MEASUREGEOM ກຳນົດຈຸດຍອດມຸມ:
|
||||
.measure-geometry = ວັດແທກຮູບຊົງເລຂາຄະນິດ
|
||||
.qselect-no-pat-entities = QSELECT: ບໍ່ມີອົງປະກອບທີ່ກົງກັນ.
|
||||
.qselect-no-matching-entities = QSELECT: ບໍ່ມີອົງປະກອບທີ່ກົງກັນ.
|
||||
.qselect-entity-ies-selected = QSELECT: ເລືອກແລ້ວ __ocs_fmt_0__ ອົງປະກອບ.
|
||||
.refclose-block-saved-all-references-updated = REFCLOSE: ບັນທຶກບລັອກ "__ocs_fmt_0__" ແລ້ວ. ອັບເດດທຸກການອ້າງອີງແລ້ວ.
|
||||
.refclose-changes-discarded = REFCLOSE: ຍົກເລີກການປ່ຽນແປງແລ້ວ.
|
||||
|
||||
@@ -13,6 +13,7 @@ language =
|
||||
.arabic = العربية
|
||||
.japanese = 日本語
|
||||
.korean = 한국어
|
||||
.lao = ລາວ
|
||||
.czech = Čeština
|
||||
.italian = Italiano
|
||||
.finnish = Suomi
|
||||
|
||||
@@ -13,6 +13,7 @@ language =
|
||||
.arabic = العربية
|
||||
.japanese = 日本語
|
||||
.korean = 한국어
|
||||
.lao = ລາວ
|
||||
.czech = Čeština
|
||||
.italian = Italiano
|
||||
.finnish = Suomi
|
||||
|
||||
@@ -13,6 +13,7 @@ language =
|
||||
.arabic = العربية
|
||||
.japanese = 日本語
|
||||
.korean = 한국어
|
||||
.lao = ລາວ
|
||||
.czech = Čeština
|
||||
.italian = Italiano
|
||||
.finnish = Suomi
|
||||
|
||||
@@ -13,6 +13,7 @@ language =
|
||||
.arabic = العربية
|
||||
.japanese = 日本語
|
||||
.korean = 한국어
|
||||
.lao = ລາວ
|
||||
.czech = Čeština
|
||||
.italian = Italiano
|
||||
.finnish = Suomi
|
||||
|
||||
@@ -13,6 +13,7 @@ language =
|
||||
.arabic = العربية
|
||||
.japanese = 日本語
|
||||
.korean = 한국어
|
||||
.lao = ລາວ
|
||||
.czech = Čeština
|
||||
.italian = Italiano
|
||||
.finnish = Suomi
|
||||
|
||||
@@ -13,6 +13,7 @@ language =
|
||||
.arabic = العربية
|
||||
.japanese = 日本語
|
||||
.korean = 한국어
|
||||
.lao = ລາວ
|
||||
.czech = Čeština
|
||||
.italian = Italiano
|
||||
.finnish = Suomi
|
||||
|
||||
@@ -13,6 +13,7 @@ language =
|
||||
.arabic = العربية
|
||||
.japanese = 日本語
|
||||
.korean = 한국어
|
||||
.lao = ລາວ
|
||||
.czech = Čeština
|
||||
.italian = Italiano
|
||||
.finnish = Suomi
|
||||
|
||||
+6
-1
@@ -53,6 +53,8 @@ pub enum Language {
|
||||
JaJp,
|
||||
#[serde(rename = "ko-KR")]
|
||||
KoKr,
|
||||
#[serde(rename = "lo-LA")]
|
||||
LoLa,
|
||||
#[serde(rename = "cs-CZ")]
|
||||
CsCz,
|
||||
#[serde(rename = "it-IT")]
|
||||
@@ -70,7 +72,7 @@ pub enum Language {
|
||||
}
|
||||
|
||||
impl Language {
|
||||
pub const ALL: [Language; 22] = [
|
||||
pub const ALL: [Language; 23] = [
|
||||
Language::System,
|
||||
Language::EnUs,
|
||||
Language::BgBg,
|
||||
@@ -85,6 +87,7 @@ impl Language {
|
||||
Language::ItIt,
|
||||
Language::JaJp,
|
||||
Language::KoKr,
|
||||
Language::LoLa,
|
||||
Language::PlPl,
|
||||
Language::RuRu,
|
||||
Language::ZhCn,
|
||||
@@ -112,6 +115,7 @@ impl Language {
|
||||
Language::ArSa => vec!["ar-SA".parse().expect("valid locale")],
|
||||
Language::JaJp => vec!["ja-JP".parse().expect("valid locale")],
|
||||
Language::KoKr => vec!["ko-KR".parse().expect("valid locale")],
|
||||
Language::LoLa => vec!["lo-LA".parse().expect("valid locale")],
|
||||
Language::CsCz => vec!["cs-CZ".parse().expect("valid locale")],
|
||||
Language::ItIt => vec!["it-IT".parse().expect("valid locale")],
|
||||
Language::FiFi => vec!["fi-FI".parse().expect("valid locale")],
|
||||
@@ -139,6 +143,7 @@ impl Language {
|
||||
Language::ArSa => crate::tr!("language", "arabic"),
|
||||
Language::JaJp => crate::tr!("language", "japanese"),
|
||||
Language::KoKr => crate::tr!("language", "korean"),
|
||||
Language::LoLa => crate::tr!("language", "lao"),
|
||||
Language::CsCz => crate::tr!("language", "czech"),
|
||||
Language::ItIt => crate::tr!("language", "italian"),
|
||||
Language::FiFi => crate::tr!("language", "finnish"),
|
||||
|
||||
@@ -31,6 +31,7 @@ pub enum Script {
|
||||
Arabic,
|
||||
Hebrew,
|
||||
Thai,
|
||||
Lao,
|
||||
Devanagari,
|
||||
Chinese,
|
||||
TraditionalChinese,
|
||||
@@ -49,6 +50,7 @@ impl Script {
|
||||
Script::Arabic => "fonts/arabic.ttf",
|
||||
Script::Hebrew => "fonts/hebrew.ttf",
|
||||
Script::Thai => "fonts/thai.ttf",
|
||||
Script::Lao => "fonts/lao.ttf",
|
||||
Script::Devanagari => "fonts/devanagari.ttf",
|
||||
Script::Chinese => "fonts/chinese.ttf",
|
||||
Script::TraditionalChinese => "fonts/traditional_chinese.ttf",
|
||||
@@ -69,6 +71,7 @@ impl Script {
|
||||
| Script::Arabic
|
||||
| Script::Hebrew
|
||||
| Script::Thai
|
||||
| Script::Lao
|
||||
| Script::Devanagari => "Noto Sans",
|
||||
}
|
||||
}
|
||||
@@ -85,6 +88,7 @@ impl Script {
|
||||
8 => Script::Japanese,
|
||||
9 => Script::Korean,
|
||||
10 => Script::TraditionalChinese,
|
||||
11 => Script::Lao,
|
||||
_ => Script::Latin,
|
||||
}
|
||||
}
|
||||
@@ -103,6 +107,7 @@ impl Script {
|
||||
Script::Japanese => 8,
|
||||
Script::Korean => 9,
|
||||
Script::TraditionalChinese => 10,
|
||||
Script::Lao => 11,
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -143,6 +148,7 @@ pub fn scripts_for_language_tag(language: &str) -> Vec<Script> {
|
||||
"ko" => Some(Script::Korean),
|
||||
"ru" | "uk" | "bg" | "sr" => Some(Script::Cyrillic),
|
||||
"th" => Some(Script::Thai),
|
||||
"lo" => Some(Script::Lao),
|
||||
"zh" => Some(Script::Chinese),
|
||||
_ => None,
|
||||
}
|
||||
@@ -176,6 +182,7 @@ pub fn requires_shaping(text: &str) -> bool {
|
||||
| 0x08A0..=0x08FF
|
||||
| 0x0900..=0x097F
|
||||
| 0x0E00..=0x0E7F
|
||||
| 0x0E80..=0x0EFF
|
||||
| 0xA8E0..=0xA8FF
|
||||
| 0xFB1D..=0xFB4F
|
||||
| 0xFB50..=0xFDFF
|
||||
@@ -224,6 +231,8 @@ pub fn script_of(ch: char) -> Option<Script> {
|
||||
Script::Arabic
|
||||
}
|
||||
0x0900..=0x097F | 0xA8E0..=0xA8FF => Script::Devanagari,
|
||||
0x0E00..=0x0E7F => Script::Thai,
|
||||
0x0E80..=0x0EFF => Script::Lao,
|
||||
// Hangul → always Korean; kana → always Japanese.
|
||||
0x1100..=0x11FF | 0x3130..=0x318F | 0xAC00..=0xD7A3 => Script::Korean,
|
||||
0x3040..=0x30FF | 0x31F0..=0x31FF => Script::Japanese,
|
||||
|
||||
@@ -44,6 +44,10 @@ dl /tmp/NotoThai.ttf "$RAW/NotoSansThai/hinted/ttf/NotoSansThai-Regular.ttf"
|
||||
merge /tmp/NotoThai.ttf /tmp/NotoThaiMerged.ttf
|
||||
sub /tmp/NotoThaiMerged.ttf "U+0000-024F,U+1E00-1EFF,U+2000-206F,U+0E00-0E7F" thai.ttf
|
||||
|
||||
dl /tmp/NotoLao.ttf "$RAW/NotoSansLao/hinted/ttf/NotoSansLao-Regular.ttf"
|
||||
merge /tmp/NotoLao.ttf /tmp/NotoLaoMerged.ttf
|
||||
sub /tmp/NotoLaoMerged.ttf "U+0000-024F,U+1E00-1EFF,U+2000-206F,U+0E80-0EFF" lao.ttf
|
||||
|
||||
dl /tmp/NotoDeva.ttf "$RAW/NotoSansDevanagari/hinted/ttf/NotoSansDevanagari-Regular.ttf"
|
||||
merge /tmp/NotoDeva.ttf /tmp/NotoDevaMerged.ttf
|
||||
sub /tmp/NotoDevaMerged.ttf "U+0000-024F,U+1E00-1EFF,U+2000-206F,U+0900-097F,U+A8E0-A8FF" devanagari.ttf
|
||||
|
||||
Binary file not shown.
Reference in new issue
Block a user