このプラグインを見つけて、PhoneGap 2.1 で動作させようとしました。以下のように更新しました。プラグイン参照を Cordova.plist に入れ、ローカライズ可能な文字列を作成しました。
このためNSLog(jsString);
、コードは適切なローカライズされた文字列をコンソールに出力します
[6766:c07] <null>("Hello");
しかし、JSファイルで動作させることはできません。エラーは発生しませんが、機能しません。を削除してもアラート ボックスは表示されませんresult
。
app.Localizer.get('HelloKey',
function(result) {
alert("We got a setting: " + result);
});
私の変更:
localizable.js
**************
function localizable() {
}
localizable.prototype.get = function(name, success)
{
Cordova.exec("localizable.get", name, success);
};
Cordova.addConstructor(function()
{
if(!window.plugins)
{
window.plugins = {};
}
window.plugins.localizable = new localizable();
});
-
localizable.h
*************
#import <Cordova/CDVPlugin.h>
#import <Foundation/Foundation.h>
@interface localizable : CDVPlugin {}
- (void) get:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options;
@end
-
localizable.m
*************
#import "localizable.h"
@implementation localizable
- (void)get:(NSMutableArray*)arguments withDict:(NSMutableDictionary*)options
{
NSUInteger argc = [arguments count];
NSString* jsString;
if(argc == 2)
{
NSString *key = [arguments objectAtIndex:0];
NSString *successCallback = [arguments objectAtIndex:1];
NSString *returnVar = NSLocalizedString(key, nil);
jsString = [NSString stringWithFormat:@"%@(\"%@\");",successCallback,returnVar];
NSLog(jsString);
[self writeJavascript:jsString]; //Write back to JS
}
}
@end