Perhaps the cleanest way to do this and handle everything in the same subclass / category using User Defined Runtime Attributes

In the above example, you must have at least one method:
-(void) setLocalizedKey:(NSString *) key;
or property:
@property(nonatomic, strong) NSString * localizedKey;
declared and implemented (or @synthesize ) in your UIButton subclass or category if you like associative links (or you don't need memory or you don't have access to the class itself).
In the above example, the key value will be HOW_IT_WORKS for this particular instance. This is how I usually handle localization, but should also serve your purpose.
source share