@@ -8,8 +8,8 @@ struct ConvertStringCatalogToAndroidXML: ParsableCommand {
8
8
@Option ( help: " Specify the path to the xcstrings file " )
9
9
public var xcstringsPath : String
10
10
11
- @Option ( help: " Output language" )
12
- public var outputLanguage : String
11
+ @Option ( help: " Base language" )
12
+ public var baseLanguage : String
13
13
14
14
@Option ( help: " Output path for the generated Android XML file " )
15
15
public var outputPath : String
@@ -19,20 +19,27 @@ struct ConvertStringCatalogToAndroidXML: ParsableCommand {
19
19
print ( " Could not parse file at \( xcstringsPath) " )
20
20
throw ExitCode . failure
21
21
}
22
-
23
- let outputLanguage = StringLanguage ( rawValue: outputLanguage)
24
-
25
- let xmlDocument = catalog. converted ( to: outputLanguage)
26
-
27
- let url = URL ( fileURLWithPath: outputPath + " /values- \( outputLanguage. rawValue) / " )
28
-
29
- try ! FileManager . default. createDirectory ( at: url, withIntermediateDirectories: true )
30
-
31
- try ! xmlDocument. prettyPrinted
32
- . write (
33
- toFile: url. path ( ) + " /strings.xml " ,
34
- atomically: true ,
35
- encoding: . utf8
36
- )
22
+
23
+ let baseLanguage = StringLanguage ( rawValue: baseLanguage)
24
+
25
+ for outputLanguage in catalog. languages {
26
+ let xmlDocument = catalog. converted ( to: outputLanguage)
27
+
28
+ let url = ( outputLanguage == baseLanguage)
29
+ ? URL ( fileURLWithPath: outputPath + " /values/ " )
30
+ : URL ( fileURLWithPath: outputPath + " /values- \( outputLanguage. rawValue) / " )
31
+
32
+ try ! FileManager . default. createDirectory (
33
+ at: url,
34
+ withIntermediateDirectories: true
35
+ )
36
+
37
+ try ! xmlDocument. prettyPrinted
38
+ . write (
39
+ toFile: url. path ( ) + " /strings.xml " ,
40
+ atomically: true ,
41
+ encoding: . utf8
42
+ )
43
+ }
37
44
}
38
45
}
0 commit comments