Sha256: 88ee4989e4574c8b72e0d57e24f4a3471180fe9a4234c065e35e17b3c3ee6338

Contents?: true

Size: 1.47 KB

Versions: 1

Compression:

Stored size: 1.47 KB

Contents

//
//  <%= @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)
    }
}

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
xcmultilingual-0.3.1 lib/xcmultilingual/templates/swift.erb