Reorganized variants to better reflect usage order

This commit is contained in:
toasted-nutbread 2020-01-23 20:28:38 -05:00
parent 317bf35bc0
commit 538d83c5a6
5 changed files with 29 additions and 25 deletions

View File

@ -354,17 +354,12 @@
"translation": { "translation": {
"type": "object", "type": "object",
"required": [ "required": [
"convertKatakanaToHiragana",
"convertHalfWidthCharacters", "convertHalfWidthCharacters",
"convertNumericCharacters", "convertNumericCharacters",
"convertAlphabeticCharacters" "convertAlphabeticCharacters",
"convertKatakanaToHiragana"
], ],
"properties": { "properties": {
"convertKatakanaToHiragana": {
"type": "string",
"enum": ["false", "true", "variant"],
"default": "variant"
},
"convertHalfWidthCharacters": { "convertHalfWidthCharacters": {
"type": "string", "type": "string",
"enum": ["false", "true", "variant"], "enum": ["false", "true", "variant"],
@ -379,6 +374,11 @@
"type": "string", "type": "string",
"enum": ["false", "true", "variant"], "enum": ["false", "true", "variant"],
"default": "false" "default": "false"
},
"convertKatakanaToHiragana": {
"type": "string",
"enum": ["false", "true", "variant"],
"default": "variant"
} }
} }
}, },

View File

@ -320,10 +320,10 @@ function profileOptionsCreateDefaults() {
}, },
translation: { translation: {
convertKatakanaToHiragana: 'variant',
convertHalfWidthCharacters: 'false', convertHalfWidthCharacters: 'false',
convertNumericCharacters: 'false', convertNumericCharacters: 'false',
convertAlphabeticCharacters: 'false' convertAlphabeticCharacters: 'false',
convertKatakanaToHiragana: 'variant'
}, },
dictionaries: {}, dictionaries: {},

View File

@ -72,10 +72,10 @@ async function formRead(options) {
options.scanning.modifier = $('#scan-modifier-key').val(); options.scanning.modifier = $('#scan-modifier-key').val();
options.scanning.popupNestingMaxDepth = parseInt($('#popup-nesting-max-depth').val(), 10); options.scanning.popupNestingMaxDepth = parseInt($('#popup-nesting-max-depth').val(), 10);
options.translation.convertKatakanaToHiragana = $('#translation-convert-katakana-to-hiragana').val();
options.translation.convertHalfWidthCharacters = $('#translation-convert-half-width-characters').val(); options.translation.convertHalfWidthCharacters = $('#translation-convert-half-width-characters').val();
options.translation.convertNumericCharacters = $('#translation-convert-numeric-characters').val(); options.translation.convertNumericCharacters = $('#translation-convert-numeric-characters').val();
options.translation.convertAlphabeticCharacters = $('#translation-convert-alphabetic-characters').val(); options.translation.convertAlphabeticCharacters = $('#translation-convert-alphabetic-characters').val();
options.translation.convertKatakanaToHiragana = $('#translation-convert-katakana-to-hiragana').val();
options.parsing.enableScanningParser = $('#parsing-scan-enable').prop('checked'); options.parsing.enableScanningParser = $('#parsing-scan-enable').prop('checked');
options.parsing.enableMecabParser = $('#parsing-mecab-enable').prop('checked'); options.parsing.enableMecabParser = $('#parsing-mecab-enable').prop('checked');
@ -145,10 +145,10 @@ async function formWrite(options) {
$('#scan-modifier-key').val(options.scanning.modifier); $('#scan-modifier-key').val(options.scanning.modifier);
$('#popup-nesting-max-depth').val(options.scanning.popupNestingMaxDepth); $('#popup-nesting-max-depth').val(options.scanning.popupNestingMaxDepth);
$('#translation-convert-katakana-to-hiragana').val(options.translation.convertKatakanaToHiragana);
$('#translation-convert-half-width-characters').val(options.translation.convertHalfWidthCharacters); $('#translation-convert-half-width-characters').val(options.translation.convertHalfWidthCharacters);
$('#translation-convert-numeric-characters').val(options.translation.convertNumericCharacters); $('#translation-convert-numeric-characters').val(options.translation.convertNumericCharacters);
$('#translation-convert-alphabetic-characters').val(options.translation.convertAlphabeticCharacters); $('#translation-convert-alphabetic-characters').val(options.translation.convertAlphabeticCharacters);
$('#translation-convert-katakana-to-hiragana').val(options.translation.convertKatakanaToHiragana);
$('#parsing-scan-enable').prop('checked', options.parsing.enableScanningParser); $('#parsing-scan-enable').prop('checked', options.parsing.enableScanningParser);
$('#parsing-mecab-enable').prop('checked', options.parsing.enableMecabParser); $('#parsing-mecab-enable').prop('checked', options.parsing.enableMecabParser);

View File

@ -323,27 +323,31 @@ class Translator {
getAllDeinflections(text, options) { getAllDeinflections(text, options) {
const translationOptions = options.translation; const translationOptions = options.translation;
const textOptionVariantArray = [ const textOptionVariantArray = [
Translator.getTextOptionEntryVariants(translationOptions.convertKatakanaToHiragana),
Translator.getTextOptionEntryVariants(translationOptions.convertHalfWidthCharacters), Translator.getTextOptionEntryVariants(translationOptions.convertHalfWidthCharacters),
Translator.getTextOptionEntryVariants(translationOptions.convertNumericCharacters), Translator.getTextOptionEntryVariants(translationOptions.convertNumericCharacters),
Translator.getTextOptionEntryVariants(translationOptions.convertAlphabeticCharacters) Translator.getTextOptionEntryVariants(translationOptions.convertAlphabeticCharacters),
Translator.getTextOptionEntryVariants(translationOptions.convertKatakanaToHiragana)
]; ];
const deinflections = []; const deinflections = [];
const used = new Set(); const used = new Set();
for (const [hiragana, halfWidth, numeric, alphabetic] of Translator.getArrayVariants(textOptionVariantArray)) { for (const [halfWidth, numeric, alphabetic, hiragana] of Translator.getArrayVariants(textOptionVariantArray)) {
let text2 = text; let text2 = text;
let sourceMapping = null; let sourceMapping = null;
if (halfWidth) { if (halfWidth) {
if (sourceMapping === null) { sourceMapping = Translator.createTextSourceMapping(text2); } if (sourceMapping === null) { sourceMapping = Translator.createTextSourceMapping(text2); }
text2 = jpConvertHalfWidthKanaToFullWidth(text2, sourceMapping); text2 = jpConvertHalfWidthKanaToFullWidth(text2, sourceMapping);
} }
if (numeric) { text2 = jpConvertNumericTofullWidth(text2); } if (numeric) {
text2 = jpConvertNumericTofullWidth(text2);
}
if (alphabetic) { if (alphabetic) {
if (sourceMapping === null) { sourceMapping = Translator.createTextSourceMapping(text2); } if (sourceMapping === null) { sourceMapping = Translator.createTextSourceMapping(text2); }
text2 = jpConvertAlphabeticToKana(text2, sourceMapping); text2 = jpConvertAlphabeticToKana(text2, sourceMapping);
} }
if (hiragana) { text2 = jpKatakanaToHiragana(text2); } if (hiragana) {
text2 = jpKatakanaToHiragana(text2);
}
for (let i = text2.length; i > 0; --i) { for (let i = text2.length; i > 0; --i) {
const text2Substring = text2.substring(0, i); const text2Substring = text2.substring(0, i);

View File

@ -400,15 +400,6 @@
<div> <div>
<h3>Translation Options</h3> <h3>Translation Options</h3>
<div class="form-group">
<label for="translation-convert-katakana-to-hiragana">Convert katakana to hiragana <span class="label-light">(ヨミチャン &rarr; よみちゃん)</span></label>
<select class="form-control" id="translation-convert-katakana-to-hiragana">
<option value="false">Disabled</option>
<option value="true">Enabled</option>
<option value="variant">Use both variants</option>
</select>
</div>
<div class="form-group"> <div class="form-group">
<label for="translation-convert-half-width-characters">Convert half width characters to full width <span class="label-light">(ヨミチャン &rarr; ヨミチャン)</span></label> <label for="translation-convert-half-width-characters">Convert half width characters to full width <span class="label-light">(ヨミチャン &rarr; ヨミチャン)</span></label>
<select class="form-control" id="translation-convert-half-width-characters"> <select class="form-control" id="translation-convert-half-width-characters">
@ -435,6 +426,15 @@
<option value="variant">Use both variants</option> <option value="variant">Use both variants</option>
</select> </select>
</div> </div>
<div class="form-group">
<label for="translation-convert-katakana-to-hiragana">Convert katakana to hiragana <span class="label-light">(ヨミチャン &rarr; よみちゃん)</span></label>
<select class="form-control" id="translation-convert-katakana-to-hiragana">
<option value="false">Disabled</option>
<option value="true">Enabled</option>
<option value="variant">Use both variants</option>
</select>
</div>
</div> </div>
<div id="popup-content-scanning"> <div id="popup-content-scanning">