2012-03-04 7 views
0

プロジェクトのローカリゼーションの最終段階に入っています。翻訳されたテキストは、.txt形式と.docx形式の間で分割されました。韓国語のローカライゼーションテキストをxcodeにインポートする際の問題

localizable.stringsに入力された.txtは問題なく動作しますが、ワードドキュメントからコピーされたものは機能しません。

これは私がこれまで試したものです:

  • は、.txtのように.docx保存し、ワードエンコード
  • は、このテキストをコピーし 、(マックOS X)韓国語などの.TXT保存してみましょうXcodeとする(Mac OS X)のように韓国の再解釈、そして 変換は、UTF-16へ

は、UTF-16に変換するために多くのオプションを試してみましたが、ちょうどそれをクラックに見えることはできません。 アイデアをいただければ幸いです。ここで

は、ローカライズされたヘルプビューの実装です:

helpText = [NSArray arrayWithObjects: 
       [NSDictionary dictionaryWithObjectsAndKeys: 
       NSLocalizedString(@" The Actions Tab", nil), kHelpTextKeyString, 
       @"Arial", kHelpTextKeyFontName, 
       [NSNumber numberWithInt:20], kHelpTextKeyFontSize, 
       [[UIColor blackColor] CGColor], kHelpTextKeyColor, 
       CGRectCreateDictionaryRepresentation(CGRectMake(30.0, 55.0, 200.0, 28.0)), kHelpTextKeyRect, 
       nil], 
       [NSDictionary dictionaryWithObjectsAndKeys: 
       [NSArray arrayWithObjects: 
        NSLocalizedString(@" 

- (void)displaySelectedHelpImage:(UIImage *)orgImage withTextArray:(NSArray *)textArr { 
CGImageRef cgImage = [orgImage CGImage]; 
int pixelsWide    = CGImageGetWidth(cgImage); 
int pixelsHigh    = CGImageGetHeight(cgImage); 
int bitsPerComponent  = CGImageGetBitsPerComponent(cgImage);//8; // fixed 
int bitsPerPixel   = CGImageGetBitsPerPixel(cgImage);//bitsPerComponent * numberOfCompnent; 
int bytesPerRow    = CGImageGetBytesPerRow(cgImage);//(pixelsWide * bitsPerPixel) // 8; // bytes 
int byteCount    = (bytesPerRow * pixelsHigh); 
CGColorSpaceRef colorSpace = CGImageGetColorSpace(cgImage);//CGColorSpaceCreateDeviceRGB(); 

// Allocate data 
NSMutableData *data = [NSMutableData dataWithLength:byteCount]; 
// Create a bitmap context 
CGContextRef context = CGBitmapContextCreate([data mutableBytes], pixelsWide, pixelsHigh, bitsPerComponent, bytesPerRow, colorSpace, kCGImageAlphaPremultipliedLast); //kCGImageAlphaPremultipliedLast);//kCGImageAlphaNoneSkipLast); //kCGImageAlphaOnly); 
// Set the blend mode to copy to avoid any alteration of the source data or to invert to invert image 
CGContextSetBlendMode(context, kCGBlendModeCopy); 
// Set alpha 
CGContextSetAlpha(context, 1.0); 
// Color image 
//CGContextSetRGBFillColor(context, 1 ,1, 1, 1.0); 
//CGContextFillRect(context, CGRectMake(0.0, 0.0, pixelsWide, pixelsHigh)); 
// Draw the image to extract the alpha channel 
CGContextDrawImage(context, CGRectMake(0.0, 0.0, pixelsWide, pixelsHigh), cgImage); 

// add text to image 
// Changes the origin of the user coordinate system in a context 
//CGContextTranslateCTM (context, pixelsWide, pixelsHigh); 
// Rotate context upright 
//CGContextRotateCTM (context, -180. * M_PI/180); 
for (NSDictionary *dic in textArr) { 

    CGContextSelectFont (context, 
         //todo 
         [[dic objectForKey:kHelpTextKeyFontName] UTF8String], 
         [[dic objectForKey:kHelpTextKeyFontSize] intValue], 
         kCGEncodingMacRoman); 
    CGContextSetCharacterSpacing (context, 2); 
    CGContextSetTextDrawingMode (context, kCGTextFillStroke); 

    CGColorRef color = (CGColorRef)[dic objectForKey:kHelpTextKeyColor]; 
    CGRect rect; 
    CGRectMakeWithDictionaryRepresentation((CFDictionaryRef)[dic objectForKey:kHelpTextKeyRect], &rect); 

    CGContextSetFillColorWithColor(context, color); 
    CGContextSetStrokeColorWithColor(context, color); 

    if ([[dic objectForKey:kHelpTextKeyString] isKindOfClass:[NSArray class]]) { 
     for (NSString *str in [dic objectForKey:kHelpTextKeyString]) { 
      CGContextShowTextAtPoint(context, 
            rect.origin.x, 
            pixelsHigh - rect.origin.y, 
            [str cStringUsingEncoding:[NSString defaultCStringEncoding]], 
            [str length]); 
      rect.origin.y += [[dic objectForKey:kHelpTextKeyFontSize] intValue]; 
     } 

答えて

0

Word文書には何が含まれていますか? 「うまくいかない」ってどういう意味ですか?

文字列が含まれている場合は、単に既存のlocalizable.stringsファイルに追加することはできませんでしたか?このファイルにはエンコーディングの問題はないので、WordからXCodeのlocalizable.stringsファイルにコピー/貼り付けするだけで済みます。

+0

返信いただきありがとうございます。はい、それは私が試みてきたものです。私はそれ以来、単語とは関係のないことを発見しました。それは非西洋の文字を表示する問題を持つカスタムビューです。 – Zeb99

+0

他の人がこの問題に遭遇した場合にソートするときに私はここに解決策を投稿します。 – Zeb99

+0

私は韓国語のテキストをUTF-16に変換しましたが、それは問題を解決しませんでした。ローカライズされたヘルプ画面は、自分以外の誰かによって開発されました。それらが表示される方法は、非西洋人の文字で問題を引き起こしているようです: – Zeb99

1

この問題に直面している方は、coretextファンデーションクラスを使用して解決しました。

関連する問題