diff --git a/ROADMAP.md b/ROADMAP.md index 7eec5268..9966cea5 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -87,7 +87,6 @@ Premiere ships 10 interface languages. Measured from our catalogs (3,498 strings | Korean | partial (whole interface; needs an installed Hangul font; native review welcome) | ~100% | | Japanese | partial (whole interface) | 99.7% | | German | menus only (native-reviewed) | 10.6% | -| Korean | none | 0% | | Vietnamese | none | 0% | Also shipped: Ukrainian (menus only, 10%). Detail: [docs/localization-parity.md](docs/localization-parity.md). diff --git a/crates/ui-egui/src/cjk.rs b/crates/ui-egui/src/cjk.rs index ab1345b2..bf089a2f 100644 --- a/crates/ui-egui/src/cjk.rs +++ b/crates/ui-egui/src/cjk.rs @@ -53,14 +53,14 @@ fn find_system_font(sample: &str, preferred: &[&str]) -> Option> { Some(Arc::new(FontData { font: std::borrow::Cow::Owned(face.data()?), index: face.info.index, tweak: Default::default() })) } -/// Whether [`install`] has a Chinese face to add: craft-fonts Hans/Hant faces, or an installed -/// system face (scanned once per process). The Simplified Chinese interface needs one. /// Whether [`install`] has a Hangul face to add (an installed system face; none is bundled). /// The Korean interface needs one. pub(crate) fn korean_available() -> bool { korean_font().is_some() } +/// Whether [`install`] has a Chinese face to add: craft-fonts Hans/Hant faces, or an installed +/// system face (scanned once per process). The Simplified Chinese interface needs one. pub(crate) fn available() -> bool { craft_fonts().next().is_some() || system_font().is_some() } diff --git a/crates/ui-egui/src/i18n/es.tsv b/crates/ui-egui/src/i18n/es.tsv index 32f496a9..fb7f245e 100644 --- a/crates/ui-egui/src/i18n/es.tsv +++ b/crates/ui-egui/src/i18n/es.tsv @@ -3438,6 +3438,7 @@ in entrada The language changed but could not be saved: {e} El idioma ha cambiado, pero no se ha podido guardar: {e} no Chinese font is installed on this system; the interface stays in English no hay ninguna fuente china instalada en este sistema; la interfaz sigue en inglés + no Korean font is installed on this system; the interface stays in English No hay ninguna fuente coreana instalada en este sistema; la interfaz sigue en inglés no Japanese font is installed on this system; the interface stays in English no hay ninguna fuente japonesa instalada en este sistema; la interfaz sigue en inglés Show Mostrar Sort Ordenar diff --git a/crates/ui-egui/src/i18n/fr.tsv b/crates/ui-egui/src/i18n/fr.tsv index 845d0148..2870df59 100644 --- a/crates/ui-egui/src/i18n/fr.tsv +++ b/crates/ui-egui/src/i18n/fr.tsv @@ -3420,6 +3420,7 @@ in entrée The language changed but could not be saved: {e} La langue a été changée mais n'a pas pu être enregistrée : {e} no Chinese font is installed on this system; the interface stays in English aucune police chinoise n'est installée sur ce système ; l'interface reste en anglais + no Korean font is installed on this system; the interface stays in English aucune police coréenne n'est installée sur ce système ; l'interface reste en anglais no Japanese font is installed on this system; the interface stays in English aucune police japonaise n'est installée sur ce système ; l'interface reste en anglais Show Afficher Sort Trier diff --git a/crates/ui-egui/src/i18n/id.tsv b/crates/ui-egui/src/i18n/id.tsv index dd220050..6ffd05e2 100644 --- a/crates/ui-egui/src/i18n/id.tsv +++ b/crates/ui-egui/src/i18n/id.tsv @@ -3437,6 +3437,7 @@ in masuk The language changed but could not be saved: {e} Bahasa telah diubah tetapi tidak dapat disimpan: {e} no Chinese font is installed on this system; the interface stays in English tidak ada font Tionghoa yang terpasang di sistem ini; antarmuka tetap dalam bahasa Inggris + no Korean font is installed on this system; the interface stays in English tidak ada font Korea yang terpasang di sistem ini; antarmuka tetap dalam bahasa Inggris no Japanese font is installed on this system; the interface stays in English tidak ada font Jepang yang terpasang di sistem ini; antarmuka tetap dalam bahasa Inggris Show Tampilkan Sort Urutkan diff --git a/crates/ui-egui/src/i18n/ja.tsv b/crates/ui-egui/src/i18n/ja.tsv index 789c686e..a6f6d134 100644 --- a/crates/ui-egui/src/i18n/ja.tsv +++ b/crates/ui-egui/src/i18n/ja.tsv @@ -3426,6 +3426,7 @@ in イン The language changed but could not be saved: {e} 表示言語は変更されましたが、保存できませんでした: {e} no Chinese font is installed on this system; the interface stays in English このシステムには中国語フォントがインストールされていないため、表示は英語のままです + no Korean font is installed on this system; the interface stays in English このシステムには韓国語フォントがインストールされていないため、表示は英語のままです no Japanese font is installed on this system; the interface stays in English このシステムには日本語フォントがインストールされていないため、表示は英語のままです Show 表示 Sort 並べ替え diff --git a/crates/ui-egui/src/i18n/ko.tsv b/crates/ui-egui/src/i18n/ko.tsv index d88aa57a..693557be 100644 --- a/crates/ui-egui/src/i18n/ko.tsv +++ b/crates/ui-egui/src/i18n/ko.tsv @@ -2044,6 +2044,7 @@ No candidates yet — Search a folder or Locate the file. 후보 없음 — 폴더를 검색하거나 파일을 찾으세요. No captions on this track. Press + to add one at the playhead. 이 트랙에 자막 없음. +를 눌러 재생 헤드에 추가합니다. no Chinese font is installed on this system; the interface stays in English 중국어 글꼴이 설치되어 있지 않아 인터페이스가 영어로 유지됩니다 + no Korean font is installed on this system; the interface stays in English 한국어 글꼴이 설치되어 있지 않아 인터페이스가 영어로 유지됩니다 No contributor data was built into this copy. 이 사본에 기여자 데이터가 포함되지 않았습니다. No effects 효과 없음 No events. 이벤트 없음 @@ -3581,3 +3582,16 @@ ✔ matches ✔ 일치 ✔ same file ✔ 같은 파일 ✖ different file ✖ 다른 파일 + Open Recent 최근 항목 열기 + Clear Recent Files 최근 파일 목록 지우기 + Recent 최근 항목 + 32 bit 32비트 + 32 bit float 32비트 부동 소수점 + FLAC stores whole-number samples only FLAC은 정수 샘플만 저장합니다 + MXF export writes integer PCM only MXF 내보내기는 정수 PCM만 기록합니다 + Opens in your web browser: {url} 웹 브라우저에서 엽니다: {url} + Saves this session's log and shows it in your file manager. 이 세션의 로그를 저장하고 파일 관리자에서 보여 줍니다. + Shows a report on this computer. 이 컴퓨터에 대한 보고서를 보여 줍니다. + Shows the version, community links and credits in a FilmCraft window. FilmCraft 창에 버전, 커뮤니티 링크, 제작진을 보여 줍니다. + Couldn't open your web browser 웹 브라우저를 열 수 없습니다 + Open this address in your browser yourself: 이 주소를 브라우저에서 직접 여세요: diff --git a/crates/ui-egui/src/i18n/pt-br.tsv b/crates/ui-egui/src/i18n/pt-br.tsv index e7e14743..63882a67 100644 --- a/crates/ui-egui/src/i18n/pt-br.tsv +++ b/crates/ui-egui/src/i18n/pt-br.tsv @@ -3434,6 +3434,7 @@ in entrada The language changed but could not be saved: {e} O idioma mudou, mas não pôde ser salvo: {e} no Chinese font is installed on this system; the interface stays in English nenhuma fonte chinesa está instalada neste sistema; a interface permanece em inglês + no Korean font is installed on this system; the interface stays in English nenhuma fonte coreana está instalada neste sistema; a interface permanece em inglês no Japanese font is installed on this system; the interface stays in English nenhuma fonte japonesa está instalada neste sistema; a interface permanece em inglês Show Mostrar Sort Ordenar diff --git a/crates/ui-egui/src/i18n/zh-cn.tsv b/crates/ui-egui/src/i18n/zh-cn.tsv index 608f5de4..186b6826 100644 --- a/crates/ui-egui/src/i18n/zh-cn.tsv +++ b/crates/ui-egui/src/i18n/zh-cn.tsv @@ -3420,6 +3420,7 @@ in 入 The language changed but could not be saved: {e} 语言已更改但无法保存:{e} no Chinese font is installed on this system; the interface stays in English 此系统未安装中文字体;界面保持英文 + no Korean font is installed on this system; the interface stays in English 此系统未安装韩文字体;界面保持英文 no Japanese font is installed on this system; the interface stays in English 此系统未安装日语字体;界面保持英文 Show 显示 Sort 排序 diff --git a/crates/ui-egui/src/lib.rs b/crates/ui-egui/src/lib.rs index f25d796c..cb4a2344 100644 --- a/crates/ui-egui/src/lib.rs +++ b/crates/ui-egui/src/lib.rs @@ -720,6 +720,9 @@ impl FilmcraftApp { } else if language == i18n::Language::ZhCn && !i18n::chinese_font_available() { self.ui.language = i18n::Language::En; self.ui.status = tl!("no Chinese font is installed on this system; the interface stays in English").into(); + } else if language == i18n::Language::Ko && !i18n::korean_font_available() { + self.ui.language = i18n::Language::En; + self.ui.status = tl!("no Korean font is installed on this system; the interface stays in English").into(); } else { self.ui.language = language; } @@ -2042,9 +2045,12 @@ impl eframe::App for FilmcraftApp { theme::install(ctx, &self.tokens); // theme::install replaces the fonts: add the system Japanese font back (or fall back to // English when a saved Japanese setting meets a system without one) - // (likewise Chinese without a Chinese face) + // (likewise Chinese without a Chinese face, Korean without a Hangul one) let japanese_missing = self.ui.language == i18n::Language::Ja && !i18n::install_japanese_font(ctx); - if japanese_missing || (self.ui.language == i18n::Language::ZhCn && !i18n::chinese_font_available()) { + if japanese_missing + || (self.ui.language == i18n::Language::ZhCn && !i18n::chinese_font_available()) + || (self.ui.language == i18n::Language::Ko && !i18n::korean_font_available()) + { self.ui.language = i18n::Language::En; } self.styled = true;