UNPKG

@polyipseity/obsidian-plugin-library

Version:
1,235 lines 299 kB
import type { AsyncOrSyncType, Builtin, DeepReadonly, IsUnknown } from "ts-essentials"; import type { DistributeKeys, DistributeValues, Evaluate, IsExact } from "../src/types.js"; import type { I18nNamespaces, I18nResources } from "../src/i18n.js"; import { merge } from "ts-deepmerge"; export type NormalizeLocale<T> = T extends Builtin ? T : T extends {} ? { [K in keyof T as K extends `${infer K0}_${string}` ? K0 : K]: NormalizeLocale<T[K]>; } : IsUnknown<T> extends true ? unknown : T; export declare function syncLocale<Expected>(): <Actual>(locale: IsExact<NormalizeLocale<Expected>, NormalizeLocale<Actual>> extends false ? never : Actual) => Actual; export type AwaitResources<T extends I18nResources, Default extends keyof T> = { [K in keyof T[Default]]: Awaited<ReturnType<T[Default][K]>>; }; export type MergeResources<Ts extends readonly I18nResources[]> = { [K in DistributeKeys<Ts[number]>]: Evaluate<MergeNamespaces<readonly DistributeValues<Ts[number], K>[]>>; }; export type MergeNamespaces<Ts extends readonly I18nNamespaces[]> = { [K in DistributeKeys<Ts[number]>]: () => PromiseLike<ReturnType<typeof merge<AsyncOrSyncType<ReturnType<DistributeValues<Ts[number], K>>>[]>>>; }; export declare function mergeResources<const Ts extends readonly I18nResources[]>(...resources: Ts): DeepReadonly<MergeResources<Ts>>; export declare namespace LibraryLocales { const RETURN_NULL = false, DEFAULT_LANGUAGE = "en", DEFAULT_NAMESPACE = "translation", FALLBACK_LANGUAGES: { readonly default: readonly ["en"]; readonly zh: readonly ["zh-Hans", "en"]; readonly "zh-CN": readonly ["zh-Hans", "zh", "en"]; readonly "zh-TW": readonly ["zh-Hant", "zh", "en"]; }, FORMATTERS: { readonly capitalize: (lng: string | undefined) => (value: unknown) => string; readonly startCase: (lng: string | undefined) => (value: unknown) => string; readonly uncapitalize: (lng: string | undefined) => (value: unknown) => string; }; const RESOURCES: { readonly af: { readonly translation: () => Promise<{ commands: { "export-settings-clipboard": string; "export-settings-current-file": string; "import-settings-clipboard": string; "import-settings-current-file": string; }; components: { dialog: { cancel: string; confirm: string; "double-confirm-hint": string; }; dropdown: { placeholder: string; }; "edit-data": { data: string; export: string; "export-to-clipboard": string; import: string; "import-from-clipboard": string; reset: string; }; find: { "case-sensitive": string; close: string; "input-placeholder": string; next: string; previous: string; regex: string; results: string; "too-many-results": string; "whole-word": string; }; list: { append: string; "move-down": string; "move-up": string; name_few: string; name_one: string; name_other: string; name_two: string; prepend: string; "preset-placeholder": string; remove: string; }; "rules-list": { description: string; }; suggest: { instructions: { dismiss: string; "dismiss-purpose": string; navigate: string; "navigate-purpose": string; use: string; "use-purpose": string; }; }; }; dialogs: { "overwrite-existing-frontmatter": string; }; errors: { "error-exporting-settings": string; "error-importing-settings": string; "error-opening-documentation": string; "error-processing-frontmatter": string; "malformed-data": string; "missing-interpolation": string; "missing-translation": string; "no-formatter": string; "private-API-changed": string; "retry-outdated-frontmatter": string; }; generic: { API: string; app: string; background: string; cancel: string; clipboard: string; close: string; command: string; "command-palette": string; confirm: string; "current-file": string; data: string; disable: string; dismiss: string; edit: string; exist: string; exist_gerund: string; export: string; export_gerund: string; file: string; find: string; frontmatter: string; import: string; import_gerund: string; language: string; language_one: string; language_other: string; list: string; "list-description_one": string; "list-description_other": string; "list-description_zero": string; navigate: string; notice: string; open: string; open_gerund: string; ordinal_few: string; ordinal_one: string; ordinal_other: string; ordinal_two: string; overwrite: string; plugin: string; reset: string; retry: string; rule: string; rule_one: string; rule_other: string; setting: string; setting_one: string; setting_other: string; timeout: string; use: string; }; settings: { "all-settings": string; "all-settings-actions": { edit: string; recover: string; reload: string; reset: string; undo: string; }; description: string; "error-notice-timeout": string; "error-notice-timeout-description": string; language: string; "language-default": string; "language-description": string; "notice-timeout": string; "notice-timeout-description": string; reset: string; }; }>; }; readonly am: { readonly translation: () => Promise<{ commands: { "export-settings-clipboard": string; "export-settings-current-file": string; "import-settings-clipboard": string; "import-settings-current-file": string; }; components: { dialog: { cancel: string; confirm: string; "double-confirm-hint": string; }; dropdown: { placeholder: string; }; "edit-data": { data: string; export: string; "export-to-clipboard": string; import: string; "import-from-clipboard": string; reset: string; }; find: { "case-sensitive": string; close: string; "input-placeholder": string; next: string; previous: string; regex: string; results: string; "too-many-results": string; "whole-word": string; }; list: { append: string; "move-down": string; "move-up": string; name_few: string; name_one: string; name_other: string; name_two: string; prepend: string; "preset-placeholder": string; remove: string; }; "rules-list": { description: string; }; suggest: { instructions: { dismiss: string; "dismiss-purpose": string; navigate: string; "navigate-purpose": string; use: string; "use-purpose": string; }; }; }; dialogs: { "overwrite-existing-frontmatter": string; }; errors: { "error-exporting-settings": string; "error-importing-settings": string; "error-opening-documentation": string; "error-processing-frontmatter": string; "malformed-data": string; "missing-interpolation": string; "missing-translation": string; "no-formatter": string; "private-API-changed": string; "retry-outdated-frontmatter": string; }; generic: { API: string; app: string; background: string; cancel: string; clipboard: string; close: string; command: string; "command-palette": string; confirm: string; "current-file": string; data: string; disable: string; dismiss: string; edit: string; exist: string; exist_gerund: string; export: string; export_gerund: string; file: string; find: string; frontmatter: string; import: string; import_gerund: string; language: string; language_one: string; language_other: string; list: string; "list-description_one": string; "list-description_other": string; "list-description_zero": string; navigate: string; notice: string; open: string; open_gerund: string; ordinal_few: string; ordinal_one: string; ordinal_other: string; ordinal_two: string; overwrite: string; plugin: string; reset: string; retry: string; rule: string; rule_one: string; rule_other: string; setting: string; setting_one: string; setting_other: string; timeout: string; use: string; }; settings: { "all-settings": string; "all-settings-actions": { edit: string; recover: string; reload: string; reset: string; undo: string; }; description: string; "error-notice-timeout": string; "error-notice-timeout-description": string; language: string; "language-default": string; "language-description": string; "notice-timeout": string; "notice-timeout-description": string; reset: string; }; }>; }; readonly ar: { readonly translation: () => Promise<{ commands: { "export-settings-clipboard": string; "export-settings-current-file": string; "import-settings-clipboard": string; "import-settings-current-file": string; }; components: { dialog: { cancel: string; confirm: string; "double-confirm-hint": string; }; dropdown: { placeholder: string; }; "edit-data": { data: string; export: string; "export-to-clipboard": string; import: string; "import-from-clipboard": string; reset: string; }; find: { "case-sensitive": string; close: string; "input-placeholder": string; next: string; previous: string; regex: string; results: string; "too-many-results": string; "whole-word": string; }; list: { append: string; "move-down": string; "move-up": string; name_few: string; name_one: string; name_other: string; name_two: string; prepend: string; "preset-placeholder": string; remove: string; }; "rules-list": { description: string; }; suggest: { instructions: { dismiss: string; "dismiss-purpose": string; navigate: string; "navigate-purpose": string; use: string; "use-purpose": string; }; }; }; dialogs: { "overwrite-existing-frontmatter": string; }; errors: { "error-exporting-settings": string; "error-importing-settings": string; "error-opening-documentation": string; "error-processing-frontmatter": string; "malformed-data": string; "missing-interpolation": string; "missing-translation": string; "no-formatter": string; "private-API-changed": string; "retry-outdated-frontmatter": string; }; generic: { API: string; app: string; background: string; cancel: string; clipboard: string; close: string; command: string; "command-palette": string; confirm: string; "current-file": string; data: string; disable: string; dismiss: string; edit: string; exist: string; exist_gerund: string; export: string; export_gerund: string; file: string; find: string; frontmatter: string; import: string; import_gerund: string; language: string; language_one: string; language_other: string; list: string; "list-description_one": string; "list-description_other": string; "list-description_zero": string; navigate: string; notice: string; open: string; open_gerund: string; ordinal_few: string; ordinal_one: string; ordinal_other: string; ordinal_two: string; overwrite: string; plugin: string; reset: string; retry: string; rule: string; rule_one: string; rule_other: string; setting: string; setting_one: string; setting_other: string; timeout: string; use: string; }; settings: { "all-settings": string; "all-settings-actions": { edit: string; recover: string; reload: string; reset: string; undo: string; }; description: string; "error-notice-timeout": string; "error-notice-timeout-description": string; language: string; "language-default": string; "language-description": string; "notice-timeout": string; "notice-timeout-description": string; reset: string; }; }>; }; readonly be: { readonly translation: () => Promise<{ commands: { "export-settings-clipboard": string; "export-settings-current-file": string; "import-settings-clipboard": string; "import-settings-current-file": string; }; components: { dialog: { cancel: string; confirm: string; "double-confirm-hint": string; }; dropdown: { placeholder: string; }; "edit-data": { data: string; export: string; "export-to-clipboard": string; import: string; "import-from-clipboard": string; reset: string; }; find: { "case-sensitive": string; close: string; "input-placeholder": string; next: string; previous: string; regex: string; results: string; "too-many-results": string; "whole-word": string; }; list: { append: string; "move-down": string; "move-up": string; name_few: string; name_one: string; name_other: string; name_two: string; prepend: string; "preset-placeholder": string; remove: string; }; "rules-list": { description: string; }; suggest: { instructions: { dismiss: string; "dismiss-purpose": string; navigate: string; "navigate-purpose": string; use: string; "use-purpose": string; }; }; }; dialogs: { "overwrite-existing-frontmatter": string; }; errors: { "error-exporting-settings": string; "error-importing-settings": string; "error-opening-documentation": string; "error-processing-frontmatter": string; "malformed-data": string; "missing-interpolation": string; "missing-translation": string; "no-formatter": string; "private-API-changed": string; "retry-outdated-frontmatter": string; }; generic: { API: string; app: string; background: string; cancel: string; clipboard: string; close: string; command: string; "command-palette": string; confirm: string; "current-file": string; data: string; disable: string; dismiss: string; edit: string; exist: string; exist_gerund: string; export: string; export_gerund: string; file: string; find: string; frontmatter: string; import: string; import_gerund: string; language: string; language_one: string; language_other: string; list: string; "list-description_one": string; "list-description_other": string; "list-description_zero": string; navigate: string; notice: string; open: string; open_gerund: string; ordinal_few: string; ordinal_one: string; ordinal_other: string; ordinal_two: string; overwrite: string; plugin: string; reset: string; retry: string; rule: string; rule_one: string; rule_other: string; setting: string; setting_one: string; setting_other: string; timeout: string; use: string; }; settings: { "all-settings": string; "all-settings-actions": { edit: string; recover: string; reload: string; reset: string; undo: string; }; description: string; "error-notice-timeout": string; "error-notice-timeout-description": string; language: string; "language-default": string; "language-description": string; "notice-timeout": string; "notice-timeout-description": string; reset: string; }; }>; }; readonly bg: { readonly translation: () => Promise<{ commands: { "export-settings-clipboard": string; "export-settings-current-file": string; "import-settings-clipboard": string; "import-settings-current-file": string; }; components: { dialog: { cancel: string; confirm: string; "double-confirm-hint": string; }; dropdown: { placeholder: string; }; "edit-data": { data: string; export: string; "export-to-clipboard": string; import: string; "import-from-clipboard": string; reset: string; }; find: { "case-sensitive": string; close: string; "input-placeholder": string; next: string; previous: string; regex: string; results: string; "too-many-results": string; "whole-word": string; }; list: { append: string; "move-down": string; "move-up": string; name_few: string; name_one: string; name_other: string; name_two: string; prepend: string; "preset-placeholder": string; remove: string; }; "rules-list": { description: string; }; suggest: { instructions: { dismiss: string; "dismiss-purpose": string; navigate: string; "navigate-purpose": string; use: string; "use-purpose": string; }; }; }; dialogs: { "overwrite-existing-frontmatter": string; }; errors: { "error-exporting-settings": string; "error-importing-settings": string; "error-opening-documentation": string; "error-processing-frontmatter": string; "malformed-data": string; "missing-interpolation": string; "missing-translation": string; "no-formatter": string; "private-API-changed": string; "retry-outdated-frontmatter": string; }; generic: { API: string; app: string; background: string; cancel: string; clipboard: string; close: string; command: string; "command-palette": string; confirm: string; "current-file": string; data: string; disable: string; dismiss: string; edit: string; exist: string; exist_gerund: string; export: string; export_gerund: string; file: string; find: string; frontmatter: string; import: string; import_gerund: string; language: string; language_one: string; language_other: string; list: string; "list-description_one": string; "list-description_other": string; "list-description_zero": string; navigate: string; notice: string; open: string; open_gerund: string; ordinal_few: string; ordinal_one: string; ordinal_other: string; ordinal_two: string; overwrite: string; plugin: string; reset: string; retry: string; rule: string; rule_one: string; rule_other: string; setting: string; setting_one: string; setting_other: string; timeout: string; use: string; }; settings: { "all-settings": string; "all-settings-actions": { edit: string; recover: string; reload: string; reset: string; undo: string; }; description: string; "error-notice-timeout": string; "error-notice-timeout-description": string; language: string; "language-default": string; "language-description": string; "notice-timeout": string; "notice-timeout-description": string; reset: string; }; }>; }; readonly bn: { readonly translation: () => Promise<{ commands: { "export-settings-clipboard": string; "export-settings-current-file": string; "import-settings-clipboard": string; "import-settings-current-file": string; }; components: { dialog: { cancel: string; confirm: string; "double-confirm-hint": string; }; dropdown: { placeholder: string; }; "edit-data": { data: string; export: string; "export-to-clipboard": string; import: string; "import-from-clipboard": string; reset: string; }; find: { "case-sensitive": string; close: string; "input-placeholder": string; next: string; previous: string; regex: string; results: string; "too-many-results": string; "whole-word": string; }; list: { append: string; "move-down": string; "move-up": string; name_few: string; name_one: string; name_other: string; name_two: string; prepend: string; "preset-placeholder": string; remove: string; }; "rules-list": { description: string; }; suggest: { instructions: { dismiss: string; "dismiss-purpose": string; navigate: string; "navigate-purpose": string; use: string; "use-purpose": string; }; }; }; dialogs: { "overwrite-existing-frontmatter": string; }; errors: { "error-exporting-settings": string; "error-importing-settings": string; "error-opening-documentation": string; "error-processing-frontmatter": string; "malformed-data": string; "missing-interpolation": string; "missing-translation": string; "no-formatter": string; "private-API-changed": string; "retry-outdated-frontmatter": string; }; generic: { API: string; app: string; background: string; cancel: string; clipboard: string; close: string; command: string; "command-palette": string; confirm: string; "current-file": string; data: string; disable: string; dismiss: string; edit: string; exist: string; exist_gerund: string; export: string; export_gerund: string; file: string; find: string; frontmatter: string; import: string; import_gerund: string; language: string; language_one: string; language_other: string; list: string; "list-description_one": string; "list-description_other": string; "list-description_zero": string; navigate: string; notice: string; open: string; open_gerund: string; ordinal_few: string; ordinal_one: string; ordinal_other: string; ordinal_two: string; overwrite: string; plugin: string; reset: string; retry: string; rule: string; rule_one: string; rule_other: string; setting: string; setting_one: string; setting_other: string; timeout: string; use: string; }; settings: { "all-settings": string; "all-settings-actions": { edit: string; recover: string; reload: string; reset: string; undo: string; }; description: string; "error-notice-timeout": string; "error-notice-timeout-description": string; language: string; "language-default": string; "language-description": string; "notice-timeout": string; "notice-timeout-description": string; reset: string; }; }>; }; readonly ca: { readonly translation: () => Promise<{ commands: { "export-settings-clipboard": string; "export-settings-current-file": string; "import-settings-clipboard": string; "import-settings-current-file": string; }; components: { dialog: { cancel: string; confirm: string; "double-confirm-hint": string; }; dropdown: { placeholder: string; }; "edit-data": { data: string; export: string; "export-to-clipboard": string; import: string; "import-from-clipboard": string; reset: string; }; find: { "case-sensitive": string; close: string; "input-placeholder": string; next: string; previous: string; regex: string; results: string; "too-many-results": string; "whole-word": string; }; list: { append: string; "move-down": string; "move-up": string; name_few: string; name_one: string; name_other: string; name_two: string; prepend: string; "preset-placeholder": string; remove: string; }; "rules-list": { description: string; }; suggest: { instructions: { dismiss: string; "dismiss-purpose": string; navigate: string; "navigate-purpose": string; use: string; "use-purpose": string; }; }; }; dialogs: { "overwrite-existing-frontmatter": string; }; errors: { "error-exporting-settings": string; "error-importing-settings": string; "error-opening-documentation": string; "error-processing-frontmatter": string; "malformed-data": string; "missing-interpolation": string; "missing-translation": string; "no-formatter": string; "private-API-changed": string; "retry-outdated-frontmatter": string; }; generic: { API: string; app: string; background: string; cancel: string; clipboard: string; close: string; command: string; "command-palette": string; confirm: string; "current-file": string; data: string; disable: string; dismiss: string; edit: string; exist: string; exist_gerund: string; export: string; export_gerund: string; file: string; find: string; frontmatter: string; import: string; import_gerund: string; language: string; language_one: string; language_other: string; list: string; "list-description_one": string; "list-description_other": string; "list-description_zero": string; navigate: string; notice: string; open: string; open_gerund: string; ordinal_few: string; ordinal_one: string; ordinal_other: string; ordinal_two: string; overwrite: string; plugin: string; reset: string; retry: string; rule: string; rule_one: string; rule_other: string; setting: string; setting_one: string; setting_other: string; timeout: string; use: string; }; settings: { "all-settings": string; "all-settings-actions": { edit: string; recover: string; reload: string; reset: string; undo: string; }; description: string; "error-notice-timeout": string; "error-notice-timeout-description": string; language: string; "language-default": string; "language-description": string; "notice-timeout": string; "notice-timeout-description": string; reset: string; }; }>; }; readonly cs: { readonly translation: () => Promise<{ commands: { "export-settings-clipboard": string; "export-settings-current-file": string; "import-settings-clipboard": string; "import-settings-current-file": string; }; components: { dialog: { cancel: string; confirm: string; "double-confirm-hint": string; }; dropdown: { placeholder: string; }; "edit-data": { data: string; export: string; "export-to-clipboard": string; import: string; "import-from-clipboard": string; reset: string; }; find: { "case-sensitive": string; close: string; "input-placeholder": string; next: string; previous: string; regex: string; results: string; "too-many-results": string; "whole-word": string; }; list: { append: string; "move-down": string; "move-up": string; name_few: string; name_one: string; name_other: string; name_two: string; prepend: string; "preset-placeholder": string; remove: string; }; "rules-list": { description: string; }; suggest: { instructions: { dismiss: string; "dismiss-purpose": string; navigate: string; "navigate-purpose": string; use: string; "use-purpose": string; }; }; }; dialogs: { "overwrite-existing-frontmatter": string; }; errors: { "error-exporting-settings": string; "error-importing-settings": string; "error-opening-documentation": string; "error-processing-frontmatter": string; "malformed-data": string; "missing-interpolation": string; "missing-translation": string; "no-formatter": string; "private-API-changed": string; "retry-outdated-frontmatter": string; }; generic: { API: string; app: string; background: string; cancel: string; clipboard: string; close: string; command: string; "command-palette": string; confirm: string; "current-file": string; data: string; disable: string; dismiss: string; edit: string; exist: string; exist_gerund: string; export: string; export_gerund: string; file: string; find: string; frontmatter: string; import: string; import_gerund: string; language: string; language_one: string; language_other: string; list: string; "list-description_one": string; "list-description_other": string; "list-description_zero": string; navigate: string; notice: string; open: string; open_gerund: string; ordinal_few: string; ordinal_one: string; ordinal_other: string; ordinal_two: string; overwrite: string; plugin: string; reset: string; retry: string; rule: string; rule_one: string; rule_other: string; setting: string; setting_one: string; setting_other: string; timeout: string; use: string; }; settings: { "all-settings": string; "all-settings-actions": { edit: string; recover: string; reload: string; reset: string; undo: string; }; description: string; "error-notice-timeout": string; "error-notice-timeout-description": string; language: string; "language-default": string; "language-description": string; "notice-timeout": string; "notice-timeout-description": string; reset: string; }; }>; }; readonly da: { readonly translation: () => Promise<{ commands: { "export-settings-clipboard": string; "export-settings-current-file": stri