diff options
| author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2022-05-19 20:16:40 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-05-19 20:16:40 -0400 | 
| commit | ae0ad227c0fd293609a21e5cc1d2a4b85fe7c520 (patch) | |
| tree | 46f4058993764708ec9b9e1176f4328e205c1eb4 /docs/interfaces | |
| parent | 6e239638bb7f89353f0dd2c67600966aeec726f2 (diff) | |
Add mode documentation about the types used by Translator (#2147)
Diffstat (limited to 'docs/interfaces')
| -rw-r--r-- | docs/interfaces/translator-types.ts | 177 | 
1 files changed, 177 insertions, 0 deletions
diff --git a/docs/interfaces/translator-types.ts b/docs/interfaces/translator-types.ts new file mode 100644 index 00000000..060bc4ca --- /dev/null +++ b/docs/interfaces/translator-types.ts @@ -0,0 +1,177 @@ +/* + * Copyright (C) 2022  Yomichan Authors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program.  If not, see <https://www.gnu.org/licenses/>. + */ + +namespace Translation { +    // Kanji + +    /** +     * An options object for use with `Translator.findKanji`. +     */ +    export interface FindKanjiOptions { +        /** +         * The mapping of dictionaries to search for kanji in. +         * The key is the dictionary name. +         */ +        enabledDictionaryMap: Map<string, FindKanjiDictionary>; +    } + +    /** +     * Details about a dictionary. +     */ +    export interface FindKanjiDictionary { +        /** +         * The index of the dictionary +         */ +        index: number; +        /** +         * The priority of the dictionary +         */ +        priority: number; +    } + +    // Terms + +    /** +     * An options object for use with `Translator.findTerms`. +     */ +    export interface FindTermsOptions { +        /** +         * The matching type for looking up terms. +         */ +        matchType: FindTermsMatchType; +        /** +         * The name of the primary dictionary to search. +         */ +        mainDictionary: string; +        /** +         * The name of the frequency dictionary used for sorting +         */ +        sortFrequencyDictionary: string | null; +        /** +         * The order used when using a sorting dictionary. +         */ +        sortFrequencyDictionaryOrder: FindTermsSortOrder; +        /** +         * Whether or not non-Japanese characters should be searched. +         */ +        removeNonJapaneseCharacters: boolean; +        /** +         * Whether or not half-width characters should be converted to full-width characters. +         */ +        convertHalfWidthCharacters: FindTermsVariantMode; +        /** +         * Whether or not ASCII numeric characters should be converted to full-width numeric characters. +         */ +        convertNumericCharacters: FindTermsVariantMode; +        /** +         * Whether or not alphabetic characters should be converted to kana. +         */ +        convertAlphabeticCharacters: FindTermsVariantMode; +        /** +         * Whether or not hiragana characters should be converted to katakana. +         */ +        convertHiraganaToKatakana: FindTermsVariantMode; +        /** +         * Whether or not katakana characters should be converted to hiragana. +         */ +        convertKatakanaToHiragana: FindTermsVariantMode; +        /** +         * How emphatic character sequences should be collapsed. +         */ +        collapseEmphaticSequences: FindTermsEmphaticSequencesMode; +        /** +         * An iterable sequence of text replacements to be applied during the term lookup process. +         */ +        textReplacements: Iterable<(FindTermsTextReplacement | null)> | null; +        /** +         * The mapping of dictionaries to search for terms in. +         * The key is the dictionary name. +         */ +        enabledDictionaryMap: Map<string, FindTermDictionary>; +        /** +         * A set of dictionary names which should have definitions removed. +         */ +        excludeDictionaryDefinitions: Set<string> | null; +    } + +    /** +     * The matching type for looking up terms. +     */ +    export enum FindTermsMatchType { +        Exact = 'exact', +        Prefix = 'prefix', +        Suffix = 'suffix', +    } + +    /** +     * A sorting order to use when finding terms. +     */ +     export enum FindTermsSortOrder { +        Ascending = 'ascending', +        Descending = 'descending', +    } + +    /** +     * Mode describing how to handle variations. +     */ +     export enum FindTermsVariantMode { +        False = 'false', +        True = 'true', +        Variant = 'variant', +    } + +    /** +     * Mode describing how to handle emphatic sequence variations. +     */ +     export enum FindTermsEmphaticSequencesMode { +        False = 'false', +        True = 'true', +        Full = 'full', +    } + +    /** +     * Information about how text should be replaced when looking up terms. +     */ +    export interface FindTermsTextReplacement { +        /** +         * The pattern to replace. +         */ +        pattern: RegExp; +        /** +         * The replacement string. This can contain special sequences, such as `$&`. +         */ +        replacement: string; +    } + +    /** +     * Details about a dictionary. +     */ +    export interface FindTermDictionary { +        /** +         * The index of the dictionary +         */ +        index: number; +        /** +         * The priority of the dictionary +         */ +        priority: number; +        /** +         * Whether or not secondary term searches are allowed for this dictionary. +         */ +        allowSecondarySearches: boolean; +    } +}  |