Skip to content

Instantly share code, notes, and snippets.

@Darkyenus
Created March 13, 2017 09:09
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Darkyenus/5df878ac3d6cc74655f942479a416088 to your computer and use it in GitHub Desktop.
Save Darkyenus/5df878ac3d6cc74655f942479a416088 to your computer and use it in GitHub Desktop.
String Localization Workaround in MOE
import apple.NSObject;
import org.moe.natj.general.NatJ;
import org.moe.natj.general.Pointer;
import org.moe.natj.general.ann.Runtime;
import org.moe.natj.objc.ObjCRuntime;
import org.moe.natj.objc.ann.ObjCClassBinding;
import org.moe.natj.objc.ann.ObjCClassName;
import org.moe.natj.objc.ann.Selector;
@Runtime(ObjCRuntime.class)
@ObjCClassName("LocalizationUtil")
@ObjCClassBinding
public class LocalizationUtil extends NSObject {
static {
NatJ.register();
}
@Selector("alloc")
public static native LocalizationUtil alloc();
// Initializes an object with the default
@Selector("init")
public native LocalizationUtil init();
protected LocalizationUtil(Pointer peer) {
super(peer);
}
@Selector("localize:")
public static native String localize(String key);
@Selector("localize1:with:")
public static native String localize1(String key, int param);
}
//
// LocalizationUtil.m
//
// Created by Jan Polák on 13/03/17.
// Public domain.
//
#import <Foundation/Foundation.h>
@class LocalizationUtil;
@interface LocalizationUtil : NSObject
+ (NSString *) localize:(NSString *) key;
+ (NSString *) localize1:(NSString *) key with:(int) param;
@end
@implementation LocalizationUtil
+ (NSString *) localize:(NSString *) key {
return NSLocalizedString(key, nil);
}
+ (NSString *) localize1:(NSString *) key with:(int) param {
return [NSString localizedStringWithFormat:NSLocalizedString(key, nil), param];
}
@end
@Darkyenus
Copy link
Author

Do not forget to add the LocalizationUtil.m to the Xcode project!

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