UNPKG

@reactodia/workspace

Version:

Reactodia Workspace -- library for visual interaction with graphs in a form of a diagram.

39 lines 2.07 kB
/// <reference path="../../../i18n/i18n.reactodia-translation.d.ts" preserve="true" /> import * as React from 'react'; import type * as Rdf from '../data/rdf/rdfModel'; import DefaultTranslationBundle from '../../i18n/translations/en.reactodia-translation.json'; type DefaultBundleData = Omit<typeof DefaultTranslationBundle, '$schema'>; export type TranslationBundle = TranslationPartial<DefaultBundleData>; export type TranslationKey = TranslationKeyOf<DefaultBundleData>; export interface Translation { text(key: TranslationKey, placeholders?: Record<string, string | number | boolean>): string; template(key: TranslationKey, parts: Record<string, React.ReactNode>): React.ReactNode; selectLabel(labels: ReadonlyArray<Rdf.Literal>, language: string): Rdf.Literal | undefined; selectValues(values: ReadonlyArray<Rdf.NamedNode | Rdf.Literal>, language: string): Array<Rdf.NamedNode | Rdf.Literal>; formatLabel(labels: ReadonlyArray<Rdf.Literal> | undefined, fallbackIri: string, language: string): string; formatIri(iri: string): string; } export type LabelLanguageSelector = (labels: ReadonlyArray<Rdf.Literal>, language: string) => Rdf.Literal | undefined; export interface TranslatedProperty<Iri> { readonly iri: Iri; readonly label: string; readonly values: ReadonlyArray<Rdf.NamedNode | Rdf.Literal>; } export declare const TranslationContext: React.Context<Translation | null>; export declare function useTranslation(): Translation; type TranslationPartial<T> = { [K in keyof T]?: Partial<T[K]>; }; type TranslationKeyOf<T> = DeepPath<T>; type DeepPath<T> = T extends object ? ({ [K in string & keyof T]: T[K] extends object ? `${K}.${DeepPath<T[K]>}` : K; }[string & keyof T]) : never; export declare class TranslatedText { private readonly key; private readonly placeholders; private constructor(); static text(key: TranslationKey, placeholders?: Record<string, string | number | boolean>): TranslatedText; resolve(translation: Translation): string; } export {}; //# sourceMappingURL=i18n.d.ts.map