Skip to content

Instantly share code, notes, and snippets.

@Igor-Palaguta
Created October 26, 2015 09:23
Show Gist options
  • Save Igor-Palaguta/65c20ca626dd41119e0f to your computer and use it in GitHub Desktop.
Save Igor-Palaguta/65c20ca626dd41119e0f to your computer and use it in GitHub Desktop.
import Foundation
enum {{enumName}} {
{% for string in strings %}
case {{string.key|swift_Identifier}}{% if string.params %}({{string.params.types|join}}){% endif %}
{% endfor %}
}
extension {{enumName}} : CustomStringConvertible {
var description : String { return self.string }
var string : String {
switch self {
{% for string in strings %}
{% if string.params %}
case .{{string.key|swift_Identifier}}({{string.params.declarations|join}}):
return {{enumName}}.tr("{{string.key}}", {{string.params.names|join}})
{% else %}
case .{{string.key|swift_Identifier}}:
return {{enumName}}.tr("{{string.key}}")
{% endif %}
{% endfor %}
}
}
private static func tr(key: String, _ args: CVarArgType...) -> String {
let format = NSLocalizedString(key, comment: "")
return String(format: format, arguments: args)
}
}
func tr(key: {{enumName}}) -> String {
return key.string
}
@Igor-Palaguta
Copy link
Author

Preserve undescores in identifiers using swift_Identifier

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment