// // <%= @filename %> // xcmultilingual // // Created by xcmultilingual. // // import Foundation struct <%= @name %> { <% class_for_bundle = "ClassForBundle" %> class <%= class_for_bundle %> {} <% @bundle_data.each do |bundle| -%> <% enum_prefix = bundle.name.nil? ? "" : bundle.name.safe.capitalize -%> <% bundle.tables.each do |table| -%> <% enum_name = enum_prefix + table.name.safe -%> enum <%= enum_name %>: String { <% table.keys.each do |key| -%> case <%= key.safe %> = "<%= key %>" <% end # keys -%> var value: String { return NSLocalizedString(rawValue, tableName: <%= enum_name %>.name, bundle: <%= @name %>.bundle(<%= bundle.name.nil? ? "nil" : "\"#{bundle.name}.bundle\"" %>), value: rawValue, comment: "") } static let name = "<%= table.name %>" static var keys: [String] { return ["<%= table.keys.join("\", \"") %>"] } static var localizations: [String] { return <%= enum_name %>.keys.map { <%= enum_name %>(rawValue: $0)!.value } } } <%- end # table -%> <%- end # bundle -%> } extension <%= @name %> { private static func bundle(bundleFile: String?) -> NSBundle { if let bundleFile = bundleFile { let path = NSBundle(forClass: <%= @name %>.ClassForBundle.self).resourcePath!.stringByAppendingPathComponent(bundleFile) return NSBundle(path: path)! } return NSBundle(forClass: ClassForBundle.self) } }