added lang autodetect disable option

This commit is contained in:
Nicolas Constant 2023-08-12 17:16:57 -04:00
parent 8703df27d5
commit d7f988ecb9
No known key found for this signature in database
GPG Key ID: 1E9F677FB01A5688
4 changed files with 30 additions and 16 deletions

View File

@ -62,12 +62,20 @@
<a href (click)="onRemoveLang(l)" class="form-button language__entry__action sound__play">remove</a> <a href (click)="onRemoveLang(l)" class="form-button language__entry__action sound__play">remove</a>
</div> </div>
<input type="text" (input)="onSearchLang($event.target.value)" [(ngModel)]="searchLang" <input type="text" (input)="onSearchLang($event.target.value)" [(ngModel)]="searchLang"
placeholder="Find Language" autocomplete="off" class="form-control form-control-sm language__search"/> placeholder="Find Language" autocomplete="off"
class="form-control form-control-sm language__search" />
<div *ngFor="let l of searchedLangs" class="language__entry"> <div *ngFor="let l of searchedLangs" class="language__entry">
<span class="language__entry__name">{{ l.name }} ({{l.iso639}})</span> <span class="language__entry__name">{{ l.name }} ({{l.iso639}})</span>
<a href (click)="onAddLang(l)" class="form-button language__entry__action sound__play">add</a> <a href (click)="onAddLang(l)" class="form-button language__entry__action sound__play">add</a>
</div> </div>
</div> </div>
<input class="sub-section__checkbox" [(ngModel)]="disableLangAutodetectEnabled"
(change)="onDisableLangAutodetectChanged()" type="checkbox" name="disableLangAutodetec"
value="disableLangAutodetec" id="disableLangAutodetec">
<label class="noselect sub-section__label" for="disableLangAutodetec">disable language autodetection</label>
</div> </div>
<h4 class="panel__subtitle">Twitter Bridge</h4> <h4 class="panel__subtitle">Twitter Bridge</h4>
<div class="sub-section"> <div class="sub-section">

View File

@ -29,6 +29,7 @@ export class SettingsComponent implements OnInit, OnDestroy {
disableRemoteStatusFetchingEnabled: boolean; disableRemoteStatusFetchingEnabled: boolean;
disableAvatarNotificationsEnabled: boolean; disableAvatarNotificationsEnabled: boolean;
disableSoundsEnabled: boolean; disableSoundsEnabled: boolean;
disableLangAutodetectEnabled: boolean;
version: string; version: string;
hasPleromaAccount: boolean; hasPleromaAccount: boolean;
@ -146,6 +147,7 @@ export class SettingsComponent implements OnInit, OnDestroy {
this.twitterBridgeInstance = settings.twitterBridgeInstance; this.twitterBridgeInstance = settings.twitterBridgeInstance;
this.configuredLangs = this.languageService.getConfiguredLanguages(); this.configuredLangs = this.languageService.getConfiguredLanguages();
this.disableLangAutodetectEnabled = settings.disableLangAutodetec;
} }
ngOnDestroy(): void { ngOnDestroy(): void {
@ -273,6 +275,13 @@ export class SettingsComponent implements OnInit, OnDestroy {
return false; return false;
} }
onDisableLangAutodetectChanged() {
this.notifyRestartNeeded();
let settings = this.settingsService.getSettings();
settings.disableLangAutodetec = this.disableLangAutodetectEnabled;
this.settingsService.saveSettings(settings);
}
onDisableAutofocusChanged() { onDisableAutofocusChanged() {
this.notifyRestartNeeded(); this.notifyRestartNeeded();
let settings = this.settingsService.getSettings(); let settings = this.settingsService.getSettings();

View File

@ -24,26 +24,24 @@ export class LanguageService {
this.detectedLanguage(l); this.detectedLanguage(l);
}); });
} }
private detectedLanguage(lang: DetectedLang[]) { private detectedLanguage(lang: DetectedLang[]) {
if(!lang) return; if (!lang) return;
console.warn(lang); if (lang.length >= 1) {
if(lang.length >= 1){
const languages = this.getConfiguredLanguages(); const languages = this.getConfiguredLanguages();
let firstLang = lang[0].lang; let firstLang = lang[0].lang;
let firstLocalLang = languages.find(x => x.iso639 == firstLang); let firstLocalLang = languages.find(x => x.iso639 == firstLang);
if(firstLocalLang){ if (firstLocalLang) {
this.setSelectedLanguage(firstLocalLang); this.setSelectedLanguage(firstLocalLang);
return; return;
} }
if(lang.length > 1){ if (lang.length > 1) {
firstLang = lang[1].lang; firstLang = lang[1].lang;
firstLocalLang = languages.find(x => x.iso639 == firstLang); firstLocalLang = languages.find(x => x.iso639 == firstLang);
if(firstLocalLang){ if (firstLocalLang) {
this.setSelectedLanguage(firstLocalLang); this.setSelectedLanguage(firstLocalLang);
return; return;
} }
@ -52,14 +50,11 @@ export class LanguageService {
} }
autoDetectLang(text: string): void { autoDetectLang(text: string): void {
if(!text || text.length < 6) return; if (!text || text.length < 5) return;
console.warn('autodetect'); if (!this.settingsService.getSettings().disableLangAutodetec) {
console.warn(text); this.electronService.detectLang(text);
}
//TODO: add settings to disable
this.electronService.detectLang(text);
} }
getSelectedLanguage(): ILanguage { getSelectedLanguage(): ILanguage {

View File

@ -84,6 +84,7 @@ export class GlobalSettings {
configuredLanguages: ILanguage[] = []; configuredLanguages: ILanguage[] = [];
selectedLanguage: ILanguage; selectedLanguage: ILanguage;
disableLangAutodetec: boolean;
} }
export interface ILanguage { export interface ILanguage {
@ -181,6 +182,7 @@ export class SettingsState {
newSettings.twitterBridgeInstance = oldSettings.twitterBridgeInstance; newSettings.twitterBridgeInstance = oldSettings.twitterBridgeInstance;
newSettings.configuredLanguages = oldSettings.configuredLanguages; newSettings.configuredLanguages = oldSettings.configuredLanguages;
newSettings.selectedLanguage = oldSettings.selectedLanguage; newSettings.selectedLanguage = oldSettings.selectedLanguage;
newSettings.disableLangAutodetec = oldSettings.disableLangAutodetec;
return newSettings; return newSettings;
} }