1
1
mod add_identity;
2
2
mod use_identity;
3
3
mod delete_identity;
4
+ mod switch_language;
4
5
mod prompts;
5
6
6
- use crate :: repositories:: traits:: Repository ;
7
+ use crate :: { repositories:: traits:: Repository , infrastructure :: i18n :: translate } ;
7
8
use crate :: domain;
8
9
use dialoguer:: { theme:: ColorfulTheme , Select } ;
9
10
use std:: sync:: Arc ;
10
11
11
12
pub fn run ( repo : Arc < dyn Repository > ) {
12
13
while let Ok ( index) = Select :: with_theme ( & ColorfulTheme :: default ( ) )
13
- . with_prompt ( "Make your choice" )
14
- . items ( & [ "Use Identity" , "Add Identity" , "Delete Identity" , "Exit" ] )
14
+ . with_prompt ( translate ( "prompts:menu.title" ) )
15
+ . items ( & [
16
+ translate ( "prompts:menu.useIdentity" ) ,
17
+ translate ( "prompts:menu.addIdentity" ) ,
18
+ translate ( "prompts:menu.deleteIdentity" ) ,
19
+ translate ( "prompts:menu.switchLanguage" ) ,
20
+ translate ( "prompts:menu.exit" ) ,
21
+ ] )
15
22
. default ( 0 )
16
23
. interact ( )
17
24
{
@@ -20,18 +27,24 @@ pub fn run(repo: Arc<dyn Repository>) {
20
27
if let Err ( err) = use_identity:: run ( repo. clone ( ) ) {
21
28
match err {
22
29
domain:: use_identity:: enums:: UseIdentityError :: NotFound => {
23
- println ! ( "Config Identities do not exist" ) ;
30
+ println ! ( "{}" , translate ( "general:errors.noConfigIdentitiesFound" ) ) ;
24
31
}
25
32
domain:: use_identity:: enums:: UseIdentityError :: Unknown => {
26
- println ! ( "An unknown error occurred" ) ;
33
+ println ! ( "{}" , translate ( "general:errors.unknownError" ) ) ;
27
34
}
28
35
}
29
36
continue ; // Restart the loop and prompt for index again
30
37
}
31
38
}
32
39
1 => add_identity:: run ( repo. clone ( ) ) ,
33
40
2 => delete_identity:: run ( repo. clone ( ) ) ,
34
- 3 => break ,
41
+ 3 => {
42
+ if let Err ( _) = switch_language:: run ( repo. clone ( ) ) {
43
+ println ! ( "{}" , translate( "general:errors.unknownError" ) ) ;
44
+ continue ; // Restart the loop and prompt for index again
45
+ }
46
+ }
47
+ 4 => break ,
35
48
_ => continue ,
36
49
} ;
37
50
}
0 commit comments