#1502: English fallback without a Hangul font (as for Chinese); doc comment back on available(); drop the old Korean ROADMAP row; Korean rows for strings added on main since

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Brandon Thomas 2026-10-13 02:04:44 -04:00
parent 64a2391ddc
commit c3f931d0c4
10 changed files with 30 additions and 5 deletions

View File

@ -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% | | Korean | partial (whole interface; needs an installed Hangul font; native review welcome) | ~100% |
| Japanese | partial (whole interface) | 99.7% | | Japanese | partial (whole interface) | 99.7% |
| German | menus only (native-reviewed) | 10.6% | | German | menus only (native-reviewed) | 10.6% |
| Korean | none | 0% |
| Vietnamese | none | 0% | | Vietnamese | none | 0% |
Also shipped: Ukrainian (menus only, 10%). Detail: [docs/localization-parity.md](docs/localization-parity.md). Also shipped: Ukrainian (menus only, 10%). Detail: [docs/localization-parity.md](docs/localization-parity.md).

View File

@ -53,14 +53,14 @@ fn find_system_font(sample: &str, preferred: &[&str]) -> Option<Arc<FontData>> {
Some(Arc::new(FontData { font: std::borrow::Cow::Owned(face.data()?), index: face.info.index, tweak: Default::default() })) 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). /// Whether [`install`] has a Hangul face to add (an installed system face; none is bundled).
/// The Korean interface needs one. /// The Korean interface needs one.
pub(crate) fn korean_available() -> bool { pub(crate) fn korean_available() -> bool {
korean_font().is_some() 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 { pub(crate) fn available() -> bool {
craft_fonts().next().is_some() || system_font().is_some() craft_fonts().next().is_some() || system_font().is_some()
} }

View File

@ -3438,6 +3438,7 @@
in entrada in entrada
The language changed but could not be saved: {e} El idioma ha cambiado, pero no se ha podido guardar: {e} 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 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 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 Show Mostrar
Sort Ordenar Sort Ordenar

Can't render this file because it contains an unexpected character in line 3 and column 95.

View File

@ -3420,6 +3420,7 @@
in entrée 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} 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 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 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 Show Afficher
Sort Trier Sort Trier

Can't render this file because it contains an unexpected character in line 5 and column 83.

View File

@ -3437,6 +3437,7 @@
in masuk in masuk
The language changed but could not be saved: {e} Bahasa telah diubah tetapi tidak dapat disimpan: {e} 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 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 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 Show Tampilkan
Sort Urutkan Sort Urutkan

Can't render this file because it contains an unexpected character in line 6 and column 14.

View File

@ -3426,6 +3426,7 @@
in イン in イン
The language changed but could not be saved: {e} 表示言語は変更されましたが、保存できませんでした: {e} The language changed but could not be saved: {e} 表示言語は変更されましたが、保存できませんでした: {e}
no Chinese font is installed on this system; the interface stays in English このシステムには中国語フォントがインストールされていないため、表示は英語のままです 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 このシステムには日本語フォントがインストールされていないため、表示は英語のままです no Japanese font is installed on this system; the interface stays in English このシステムには日本語フォントがインストールされていないため、表示は英語のままです
Show 表示 Show 表示
Sort 並べ替え Sort 並べ替え

Can't render this file because it contains an unexpected character in line 11 and column 59.

View File

@ -2044,6 +2044,7 @@
No candidates yet — Search a folder or Locate the file. 후보 없음 — 폴더를 검색하거나 파일을 찾으세요. No candidates yet — Search a folder or Locate the file. 후보 없음 — 폴더를 검색하거나 파일을 찾으세요.
No captions on this track. Press + to add one at the playhead. 이 트랙에 자막 없음. +를 눌러 재생 헤드에 추가합니다. 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 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 contributor data was built into this copy. 이 사본에 기여자 데이터가 포함되지 않았습니다.
No effects 효과 없음 No effects 효과 없음
No events. 이벤트 없음 No events. 이벤트 없음
@ -3581,3 +3582,16 @@
✔ matches ✔ 일치 ✔ matches ✔ 일치
✔ same file ✔ 같은 파일 ✔ same file ✔ 같은 파일
✖ different 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: 이 주소를 브라우저에서 직접 여세요:

Can't render this file because it has a wrong number of fields in line 11.

View File

@ -3434,6 +3434,7 @@
in entrada in entrada
The language changed but could not be saved: {e} O idioma mudou, mas não pôde ser salvo: {e} 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 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 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 Show Mostrar
Sort Ordenar Sort Ordenar

Can't render this file because it contains an unexpected character in line 6 and column 4.

View File

@ -3420,6 +3420,7 @@
in 入 in 入
The language changed but could not be saved: {e} 语言已更改但无法保存:{e} The language changed but could not be saved: {e} 语言已更改但无法保存:{e}
no Chinese font is installed on this system; the interface stays in English 此系统未安装中文字体;界面保持英文 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 此系统未安装日语字体;界面保持英文 no Japanese font is installed on this system; the interface stays in English 此系统未安装日语字体;界面保持英文
Show 显示 Show 显示
Sort 排序 Sort 排序

Can't render this file because it contains an unexpected character in line 3 and column 95.

View File

@ -720,6 +720,9 @@ impl FilmcraftApp {
} else if language == i18n::Language::ZhCn && !i18n::chinese_font_available() { } else if language == i18n::Language::ZhCn && !i18n::chinese_font_available() {
self.ui.language = i18n::Language::En; self.ui.language = i18n::Language::En;
self.ui.status = tl!("no Chinese font is installed on this system; the interface stays in English").into(); 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 { } else {
self.ui.language = language; self.ui.language = language;
} }
@ -2042,9 +2045,12 @@ impl eframe::App for FilmcraftApp {
theme::install(ctx, &self.tokens); theme::install(ctx, &self.tokens);
// theme::install replaces the fonts: add the system Japanese font back (or fall back to // 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) // 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); 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.ui.language = i18n::Language::En;
} }
self.styled = true; self.styled = true;