@@ -111,24 +111,30 @@ public struct Translation {
111111 return rawKey. capitalized. replacingOccurrences ( of: " _ " , with: " " )
112112 }
113113
114- func swiftCode( accessModifier: AccessModifier = . public) -> String {
114+ func swiftCode( accessModifier: AccessModifier = . public, bundleModifier : BundleModifier = . main ) -> String {
115115 if variables. isEmpty {
116- return generateVariableLessSwiftCode ( accessModifier: accessModifier)
116+ return generateVariableLessSwiftCode ( accessModifier: accessModifier, bundleModifier : bundleModifier )
117117 } else {
118- return generateVariableSwiftCode ( accessModifier: accessModifier)
118+ return generateVariableSwiftCode ( accessModifier: accessModifier, bundleModifier : bundleModifier )
119119 }
120120 }
121121
122- private func generateVariableLessSwiftCode( accessModifier: AccessModifier = . public) -> String {
122+ private func generateVariableLessSwiftCode(
123+ accessModifier: AccessModifier ,
124+ bundleModifier: BundleModifier
125+ ) -> String {
123126 /*
124127 static var Welcome: String {
125128 return NSLocalizedString()
126129 }
127130 */
128- return " \t \( accessModifier. rawValue) static var \( prettyKey) : String { \n \t \t return \( localizedStringFunction) ( \" \( rawKey) \" , comment: \" \" ) \n \t } \n "
131+ return " \t \( accessModifier. rawValue) static var \( prettyKey) : String { \n \t \t return \( localizedStringFunction) ( \" \( rawKey) \" , bundle: \( bundleModifier . rawValue ) , comment: \" \" ) \n \t } \n "
129132 }
130133
131- private func generateVariableSwiftCode( accessModifier: AccessModifier = . public) -> String {
134+ private func generateVariableSwiftCode(
135+ accessModifier: AccessModifier ,
136+ bundleModifier: BundleModifier
137+ ) -> String {
132138 /*
133139 static func ReadBooksKey(readNumber: Int) -> String {
134140 return ""
@@ -141,7 +147,7 @@ public struct Translation {
141147 . map { $0. parameterKey }
142148 . map { $0. snakeCased ( ) }
143149 . joined ( separator: " , " )
144- return " \t \( accessModifier. rawValue) static func \( prettyKey) ( \( parameters) ) -> String { \n \t \t return String(format: \( localizedStringFunction) ( \" \( rawKey) \" , comment: \" \" ), \( localizedArguments) ) \n \t } "
150+ return " \t \( accessModifier. rawValue) static func \( prettyKey) ( \( parameters) ) -> String { \n \t \t return String(format: \( localizedStringFunction) ( \" \( rawKey) \" , bundle: \( bundleModifier . rawValue ) , comment: \" \" ), \( localizedArguments) ) \n \t } "
145151 }
146152
147153}
@@ -182,12 +188,15 @@ public class FileCodeGenerator: SwiftCodeGenerator {
182188
183189 let fileHandle : FileHandle
184190 let accessModifier : AccessModifier
191+ let bundleModifier : BundleModifier
185192 public init (
186193 fileHandle: FileHandle ,
187- access: String
194+ access: String ,
195+ bundle: String
188196 ) {
189197 self . fileHandle = fileHandle
190- self . accessModifier = AccessModifier ( accessString: access)
198+ self . accessModifier = . init( accessString: access)
199+ self . bundleModifier = . init( bundleName: bundle)
191200 }
192201
193202 // TODO: Generalize!!! += (same code as in string)
@@ -196,7 +205,7 @@ public class FileCodeGenerator: SwiftCodeGenerator {
196205
197206 for t in translations {
198207 fileHandle += SwiftCodeGeneratorConstants . methodOrVariableHeader
199- fileHandle += t. swiftCode ( accessModifier: accessModifier)
208+ fileHandle += t. swiftCode ( accessModifier: accessModifier, bundleModifier : bundleModifier )
200209 }
201210
202211 fileHandle += SwiftCodeGeneratorConstants . rootObjectFooter
@@ -364,6 +373,15 @@ enum AccessModifier: String {
364373 }
365374}
366375
376+ enum BundleModifier : String {
377+ case main
378+ case module
379+
380+ init ( bundleName: String ) {
381+ self = BundleModifier ( rawValue: bundleName) ?? . main
382+ }
383+ }
384+
367385
368386extension String {
369387 var first : String {
0 commit comments