|
@@ -1,46 +0,0 @@
|
|
|
-/*---------------------------------------------------------------------------------------------
|
|
|
- * Copyright (c) Microsoft Corporation. All rights reserved.
|
|
|
- * Licensed under the MIT License. See License.txt in the project root for license information.
|
|
|
- *--------------------------------------------------------------------------------------------*/
|
|
|
-
|
|
|
-export interface Options {
|
|
|
- locale?: string;
|
|
|
- cacheLanguageResolution?: boolean;
|
|
|
-}
|
|
|
-export interface LocalizeInfo {
|
|
|
- key: string;
|
|
|
- comment: string[];
|
|
|
-}
|
|
|
-export interface LocalizeFunc {
|
|
|
- (info: LocalizeInfo, message: string, ...args: any[]): string;
|
|
|
- (key: string, message: string, ...args: any[]): string;
|
|
|
-}
|
|
|
-export interface LoadFunc {
|
|
|
- (file?: string): LocalizeFunc;
|
|
|
-}
|
|
|
-
|
|
|
-function format(message: string, args: any[]): string {
|
|
|
- let result: string;
|
|
|
-
|
|
|
- if (args.length === 0) {
|
|
|
- result = message;
|
|
|
- } else {
|
|
|
- result = message.replace(/\{(\d+)\}/g, (match, rest) => {
|
|
|
- let index = rest[0];
|
|
|
- return typeof args[index] !== 'undefined' ? args[index] : match;
|
|
|
- });
|
|
|
- }
|
|
|
- return result;
|
|
|
-}
|
|
|
-
|
|
|
-function localize(key: string | LocalizeInfo, message: string, ...args: any[]): string {
|
|
|
- return format(message, args);
|
|
|
-}
|
|
|
-
|
|
|
-export function loadMessageBundle(file?: string): LocalizeFunc {
|
|
|
- return localize;
|
|
|
-}
|
|
|
-
|
|
|
-export function config(opt?: Options | string): LoadFunc {
|
|
|
- return loadMessageBundle;
|
|
|
-}
|