@@ -2,6 +2,7 @@ import * as vscode from "vscode";
22import OpenAI from "openai" ;
33import https from "https" ;
44import fs from "fs" ;
5+ import { translations } from "./translations"
56
67export class Configuration {
78 // extension configs
@@ -49,52 +50,34 @@ export class Configuration {
4950
5051 config : vscode . WorkspaceConfiguration ;
5152
52- private languageBg = new Map < string , string > ( [
53- [ "no suggestion" , "нямам предложение" ] ,
54- [ "thinking..." , "мисля..." ] ,
55- ] ) ;
56- private languageEn = new Map < string , string > ( [
57- [ "no suggestion" , "no suggestion" ] ,
58- [ "thinking..." , "thinking..." ] ,
59- ] ) ;
60- private languageDe = new Map < string , string > ( [
61- [ "no suggestion" , "kein Vorschlag" ] ,
62- [ "thinking..." , "Ich denke..." ] ,
63- ] ) ;
64- private languageRu = new Map < string , string > ( [
65- [ "no suggestion" , "нет предложения" ] ,
66- [ "thinking..." , "думаю..." ] ,
67- ] ) ;
68- private languageEs = new Map < string , string > ( [
69- [ "no suggestion" , "ninguna propuesta" ] ,
70- [ "thinking..." , "pensando..." ] ,
71- ] ) ;
72- private languageCn = new Map < string , string > ( [
73- [ "no suggestion" , "无建议" ] ,
74- [ "thinking..." , "思考..." ] ,
75- ] ) ;
76- private languageFr = new Map < string , string > ( [
77- [ "no suggestion" , "pas de suggestion" ] ,
78- [ "thinking..." , "pense..." ] ,
79- ] ) ;
80-
81- languages = new Map < string , Map < string , string > > ( [
82- [ "bg" , this . languageBg ] ,
83- [ "en" , this . languageEn ] ,
84- [ "de" , this . languageDe ] ,
85- [ "ru" , this . languageRu ] ,
86- [ "es" , this . languageEs ] ,
87- [ "cn" , this . languageCn ] ,
88- [ "fr" , this . languageFr ] ,
53+ private uiLanguages = new Map < string , Map < string , string > > ( [ ] )
54+ private langIndexes = new Map < number , string > ( [
55+ [ 0 , "en" ] ,
56+ [ 1 , "bg" ] ,
57+ [ 2 , "de" ] ,
58+ [ 3 , "ru" ] ,
59+ [ 4 , "es" ] ,
60+ [ 5 , "cn" ] ,
61+ [ 6 , "fr" ] ,
8962 ] ) ;
9063
9164 constructor ( ) {
9265 this . config = vscode . workspace . getConfiguration ( "llama-vscode" ) ;
66+ this . initUiLanguages ( )
9367 this . updateConfigs ( this . config ) ;
9468 this . setLlamaRequestConfig ( ) ;
9569 this . setOpenAiClient ( ) ;
9670 }
9771
72+ private initUiLanguages ( ) {
73+ let totalLanguages = 0 ;
74+ if ( translations . length > 0 ) totalLanguages = translations [ 0 ] . length
75+ for ( let langInd = 0 ; langInd < totalLanguages ; langInd ++ ) {
76+ let lang = new Map ( translations . map ( transl => [ transl [ 0 ] , transl [ langInd ] ] ) ) ;
77+ this . uiLanguages . set ( this . langIndexes . get ( langInd ) ?? "" , lang ) ;
78+ }
79+ }
80+
9881 private updateConfigs = ( config : vscode . WorkspaceConfiguration ) => {
9982 // TODO Handle the case of wrong types for the configuration values
10083 this . endpoint = this . trimTrailingSlash ( String ( config . get < string > ( "endpoint" ) ) ) ;
@@ -126,8 +109,8 @@ export class Configuration {
126109 } ;
127110
128111 getUiText = ( uiText : string ) : string | undefined => {
129- let langTexts = this . languages . get ( this . language ) ;
130- if ( langTexts == undefined ) langTexts = this . languages . get ( "en" ) ;
112+ let langTexts = this . uiLanguages . get ( this . language ) ;
113+ if ( langTexts == undefined ) langTexts = this . uiLanguages . get ( "en" ) ;
131114 return langTexts ?. get ( uiText ) ;
132115 } ;
133116
0 commit comments