Skip to content

Commit 8aa4d31

Browse files
committed
feat: prioritize free services over commercial
1 parent a468d2a commit 8aa4d31

File tree

11 files changed

+76
-14
lines changed

11 files changed

+76
-14
lines changed

providers/aws.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff 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
}

providers/azure.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff 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
}

providers/bing.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff 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
}

providers/deepl.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff 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
}

providers/deeplx/cloudflare.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff 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
}

providers/deeplx/deeplx.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff 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
}

providers/deeplx/vercel.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff 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
}

providers/google.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff 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
}

providers/libretranslate.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff 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;

providers/types.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff 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
}

0 commit comments

Comments
 (0)