Files
talk/src/types/fluent.d.ts
T
2018-08-27 14:33:31 +02:00

53 lines
1.4 KiB
TypeScript

// Allowing loading fluent files.
declare module "*.ftl";
declare module "fluent-react/compat" {
import { FluentBundle } from "fluent/compat";
import { ComponentType } from "react";
export interface LocalizationProviderProps {
bundles: FluentBundle[];
}
export const LocalizationProvider: ComponentType<LocalizationProviderProps>;
export interface LocalizedProps {
id: string;
attrs?: { [name: string]: boolean };
[args: string]: any;
}
export const Localized: ComponentType<LocalizedProps>;
}
declare module "fluent-langneg/compat" {
export function negotiateLanguages(
requestedLocales: ReadonlyArray<string>,
available: ReadonlyArray<string>,
options: {
strategy: "filtering" | "matching" | "lookup";
defaultLocale: string;
}
): string[];
}
declare module "fluent/compat" {
export interface FluentBundleOptions {
functions: { [key: string]: (...args: any[]) => string };
useIsolating: boolean;
transform: ((s: string) => string);
}
export class FluentBundle {
constructor(locales: string, options?: FluentBundleOptions);
public locales: string[];
public readonly messages: Iterator<[string, any]>;
public hasMessage(id: string): boolean;
public getMessage(id: string): any;
public addMessages(source: string): string[];
public format(
message: any,
args?: object,
errors?: string[]
): string | null;
}
}