fb5 UI-TW: the machine-translation mark — _meta.machineTranslated: true, a new optional manifest field of a language pack (docs/PACKS.md): shared/i18nPacks.js langFields reads it (true or false), shared/packs.js normalizeManifest warns about a value that is not a boolean (read as false; the pack still loads) and packIndexEntry passes it into the index entry like complete (only when true), so the client's registry has it from the index (langMetaOf → registerLangs → langInfo) or from the pack's own _meta without one; 设置 shows a note under the language switch while the CURRENT language's pack has it (ui/lang.js machineTranslationNote, msgid 「当前语言的界面文字为机器翻译,可能不够准确,欢迎在 GitHub 上指正。」 — English in en.json, 目前語言的介面文字為機器翻譯… in zh-TW.json; ja / ko leave it to the integrator); tests: test/i18n-packs.test.js (the field from the manifest through the index to langInfo, the warning, the shipped zh-TW manifest, the note shown / hidden by language), test/ui/i18n.e2e.test.js (the shipped packs' own UI strings read from their files — zh-TW now 開始 — and the 设置 note, none in Chinese); docs/I18N.md says how the zh-TW pack is made (OpenCC twp, the official TW terms, a manual pass; a later msgid the same way) and that the ja / ko strings are machine translations open to corrections (edit public/i18n/<code>.json, node tools/i18n.mjs check <code> --strict)
This commit is contained in:
1 parent
6613c3d0fb
commit
c11ba03da4
11 files changed
+173
-38
No files matched your search
+6
-2
@@ -43,7 +43,7 @@ export const DEFAULT_LANG = SOURCE_LANG;
|
||||
/** The source language: built in, no pack, no catalog. */
|
||||
const SOURCE_META = Object.freeze({
|
||||
code: SOURCE_LANG, name: '中文', englishName: 'Chinese (Simplified)', authors: [], credits: '', version: '', app: '', // i18n-ignore: its own name
|
||||
base: null, fallback: [], complete: true, numberUnits: ['万', '亿'], builtin: true, // i18n-ignore: the Chinese number units
|
||||
base: null, fallback: [], complete: true, machineTranslated: false, numberUnits: ['万', '亿'], builtin: true, // i18n-ignore: the Chinese number units
|
||||
});
|
||||
|
||||
/** @type {Map<string, LangMeta>} code → metadata: the source, the packs of the index, languages given messages */
|
||||
@@ -109,7 +109,11 @@ export function getLangs() {
|
||||
return [registry.get(SOURCE_LANG), ...rest];
|
||||
}
|
||||
|
||||
/** The metadata of a known language, or null. @param {string} [lang] */
|
||||
/**
|
||||
* The metadata of a known language (its names, chain fields, `complete`, `machineTranslated` …: what registerLangs or its
|
||||
* pack's `_meta` gave), or null.
|
||||
* @param {string} [lang]
|
||||
*/
|
||||
export const langInfo = (lang = current) => registry.get(String(lang)) || null;
|
||||
|
||||
/**
|
||||
|
||||
Reference in new issue
Block a user