4

AppDelegate にあるタブ バー項目をローカライズするには、次のコードを使用します。

self.tabBarController = (UITabBarController*)self.window.rootViewController;
tabBarController.delegate = self;
tabBarController.selectedIndex = 0;
[[tabBarController.tabBar.items objectAtIndex:0] setTitle:NSLocalizedString(@"Home", nil)];
[[tabBarController.tabBar.items objectAtIndex:1] setTitle:NSLocalizedString(@"Requests", nil)];
[[tabBarController.tabBar.items objectAtIndex:2] setTitle:NSLocalizedString(@"Account", nil)];
[[tabBarController.tabBar.items objectAtIndex:3] setTitle:NSLocalizedString(@"Alarms", nil)];
[[tabBarController.tabBar.items objectAtIndex:4] setTitle:NSLocalizedString(@"Settings", nil)];

別のアイテムを追加して、インデックス = 5 の新しい行を追加しようとしましたが、インデックス 5 が境界を超えているため、「NSRangeException」が発生します。Xcode は自動的に「その他」セクションを追加し、最後の 2 つの項目 (設定と新しい項目) をそこに移動しました。また、ユーザーがアイテムの順序を選択してタブ バーをカスタマイズできるようになったことも確認しました。では、すべてのアイテムを参照してローカライズするにはどうすればよいでしょうか。注: ストーリーボードを使用しています。

ありがとう。

4

3 に答える 3

2

私にとって最も簡単な解決策は、awakeFromNibメソッドを実装することでした。これは、タブを使用している場合でも実行されます。

// Objective-C
- (void)awakeFromNib{
    [super awakeFromNib];
    self.title = NSLocalizedString(@"YOUR-LOCALISATION-TAG", @"");
}


// Swift
override  func awakeFromNib() {
    super.awakeFromNib()
    self.title = NSLocalizedString("YOUR-LOCALISATION-TAG", comment: "")
}
于 2016-08-29T12:29:24.437 に答える
0

ローカライズするには、まずテキストを翻訳する必要がある言語に翻訳します。通常のローカライズと tabBarItem の分離はありません。

対応する言語にローカライズされた文字列に指定されたテキスト。

"Home"="translate text";
"Requests"="translate text";
"Account"="translate text";
"Alarms"="translate text";
"Settings"="translate text";

TabbarButton のセット タイトルはここで設定します。実装クラスで実装する必要があります

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
{
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
if (self)
{
   // set title here
}
return self;
}
于 2012-09-21T08:58:52.953 に答える
-2

ユーザーが各項目に触れるのに十分なスペースがないため、多くのタブバー項目を追加することは良い習慣ではないと思います。それに応じて些細な項目を 1 つの「MORE」バー項目に入れる方がよいでしょう。あなたには悪いが、ユーザーエクスペリエンスを向上させるには良い. その要件がある場合は、カスタマイズされた UIView をタブ バー (もちろん、実際のタブ バーではありません) として作成し、必要なものを入れることができます。

于 2014-04-28T09:56:07.637 に答える