File tree Expand file tree Collapse file tree 11 files changed +76
-14
lines changed
Expand file tree Collapse file tree 11 files changed +76
-14
lines changed Original file line number Diff line number Diff line change @@ -178,4 +178,8 @@ export class AWSProvider extends TranslationProvider {
178178 isAvailable ( ) : boolean {
179179 return ! ! ( process . env . AWS_ACCESS_KEY_ID && process . env . AWS_SECRET_ACCESS_KEY ) ;
180180 }
181+
182+ isFree ( ) : boolean {
183+ return false ;
184+ }
181185}
Original file line number Diff line number Diff line change @@ -83,4 +83,8 @@ export class AzureProvider extends TranslationProvider {
8383 isAvailable ( ) : boolean {
8484 return ! ! process . env . AZURE_TRANSLATOR_KEY ;
8585 }
86+
87+ isFree ( ) : boolean {
88+ return false ;
89+ }
8690}
Original file line number Diff line number Diff line change @@ -34,4 +34,8 @@ export class BingTranslateProvider extends TranslationProvider {
3434 // Always available since we don't need API keys
3535 return true ;
3636 }
37+
38+ isFree ( ) : boolean {
39+ return true ;
40+ }
3741}
Original file line number Diff line number Diff line change @@ -77,4 +77,8 @@ export class DeepLProvider extends TranslationProvider {
7777 isAvailable ( ) : boolean {
7878 return ! ! process . env . DEEPL_API_KEY ;
7979 }
80+
81+ isFree ( ) : boolean {
82+ return false ;
83+ }
8084}
Original file line number Diff line number Diff line change @@ -42,4 +42,8 @@ export class DeepLXCloudflareProvider extends TranslationProvider {
4242 isAvailable ( ) : boolean {
4343 return ! ! process . env . DEEPLX_CLOUDFLARE_URL ;
4444 }
45+
46+ isFree ( ) : boolean {
47+ return true ;
48+ }
4549}
Original file line number Diff line number Diff line change @@ -27,4 +27,8 @@ export class DeepLXProvider extends TranslationProvider {
2727 isAvailable ( ) : boolean {
2828 return true ;
2929 }
30+
31+ isFree ( ) : boolean {
32+ return true ;
33+ }
3034}
Original file line number Diff line number Diff line change @@ -40,4 +40,8 @@ export class DeepLXVercelProvider extends TranslationProvider {
4040 isAvailable ( ) : boolean {
4141 return ! ! process . env . DEEPLX_VERCEL_URL ;
4242 }
43+
44+ isFree ( ) : boolean {
45+ return true ;
46+ }
4347}
Original file line number Diff line number Diff line change @@ -44,4 +44,8 @@ export class GoogleTranslateProvider extends TranslationProvider {
4444 // Always available since we don't need API keys
4545 return true ;
4646 }
47+
48+ isFree ( ) : boolean {
49+ return true ;
50+ }
4751}
Original file line number Diff line number Diff line change @@ -76,6 +76,12 @@ export class LibreTranslateProvider extends TranslationProvider {
7676 return ! ! process . env . LIBRETRANSLATE_URL ;
7777 }
7878
79+ // FIXME: Figure out a way to slot LibreTranslate in between free and paid providers
80+ // Translation quality is hit or miss depending on language
81+ isFree ( ) : boolean {
82+ return false ;
83+ }
84+
7985 private async fetchLanguages ( ) : Promise < void > {
8086 if ( this . languagesFetched ) {
8187 return ;
Original file line number Diff line number Diff line change @@ -21,4 +21,7 @@ export abstract class TranslationProvider {
2121
2222 // Check if provider is available (has required configuration)
2323 abstract isAvailable ( ) : boolean ;
24+
25+ // Check if provider is free (true) or paid (false)
26+ abstract isFree ( ) : boolean ;
2427}
You can’t perform that action at this time.
0 commit comments