この文字列にNSLocalizedString
をどのように使用しますか:
[NSString stringWithFormat:@"Is “%@“ still correct for “%@“ tap “OK“ otherwise tap “Change“ to choose new contact details", individual.contactInfo, individual.name];
StringWithFormatを次の方法で使用する前に使用する場合:
[NSString stringWithFormat:@"%d %@", itemCount, NSLocalizedString(@"number of items", nil)];
[NSString stringWithFormat:NSLocalizedString(@"Is “%@“ still correct for “%@“ tap “OK“ otherwise tap “Change“ to choose new contact details", @"Query if parm 1 is still correct for parm 2"), individual.contactInfo, individual.name];
特定の文は可変部分でいくつかの言語で異なる順序で構築できるので、[NSString stringWithFormat:]
で位置引数を使用する必要があると思います。
NSString *format = NSLocalizedString(@"number_of_items", @"Number of items");
英語の場合、次の文字列がロードされます。
@"Is \"%1$@\" still correct for \"%2$@\" tap \"OK\" otherwise tap \"Change\" to choose new contact details"
そしておそらくフランス語のために何か他のもの(私はフランス語を知らないので翻訳を試みませんが、異なる順序で最初と2番目の引数を持つことができます):
"French \"%2$@\" french \"%1$@\" french"
そして、通常通りに文字列を安全にフォーマットできます:
NSString *translated = [NSString stringWithFormat:format individual.contactInfo, individual.name];
多くのプロジェクトで使用する非常に役立つ定義を1つ追加したいだけです。
この関数をheader prefix
ファイルに追加しました:
#define NSLocalizedFormatString(fmt, ...) [NSString stringWithFormat:NSLocalizedString(fmt, nil), __VA_ARGS__]
これにより、次のようなローカライズされた文字列を定義できます。
"ExampleScreenAuthorizationDescriptionLbl"= "I authorize the payment of %@ to %@.";
また、次の方法で使用できます。
self.labelAuthorizationText.text = NSLocalizedFormatString(@"ExampleScreenAuthorizationDescriptionLbl", self.formattedAmount, self.companyQualifier);
スウィフト
//Localizable.strings
"my-localized-string" = "foo%@ baz";
例:
myLabel.text = String(format: NSLocalizedString("my-localized-string",
comment: "foo %@ baz"), "bar") //foo bar baz