0

ローカライズが必要な HTML 文字列があります。唯一の問題は、次のようなパラメーターがあることです。

    NSString *htmlString = [NSString stringWithFormat:NSLocalizedString(@"<html><head>"
                        "<style type=\"text/css\"> body {font-family: \"Verdana\"; font-size: 12;} </style></head>"
                        "<body><h2>%@ %@</h2><p>email: %@<p>phone: %@<p>services: %@<p><img src=\"%@\"/>"  
                        "</body></html>",nil),
                        client.aClientFirstName,
                        client.aClientLastName,
                        client.aClientEMail,
                        client.aClientPrimaryPhone,
                        appt.aServices,
                        fileURL];

問題は、「キー」に同じデータが含まれていないため、一致しないことです。これは、「en」を使用する場合は正常に機能しますが (一致が見つからない場合にデフォルトで使用されるため)、他のすべての言語は UIPopover に表示されると失敗します。問題は、「クライアント」情報が何であれ、ローカリゼーションごとに適切に表示されるように、これを回避するコーディング方法はありますか?

4

1 に答える 1

1

Localizable.strings ファイルでは、個別の固定キーを作成し、パラメーターのプレースホルダーを含む値として html テンプレートを配置する必要があります。次に例を示します。

"HTML_STRING" = "<html><head><style type=\"text/css\"> body {font-family: \"Verdana\"; font-size: 12;} </style></head><body><h2>%@ %@</h2><p>email: %@<p>phone: %@<p>services: %@<p><img src=\"%@\"/></body></html>";

次に、コードでキーを使用します。次に例を示します。

NSString *htmlString = [NSString stringWithFormat:NSLocalizedString(@"HTML_STRING",nil),
                    client.aClientFirstName,
                    client.aClientLastName,
                    client.aClientEMail,
                    client.aClientPrimaryPhone,
                    appt.aServices,
                    fileURL];

ここで、htmlString 変数は、パラメーターが含まれている文字列のローカライズされたバージョンを提供します。

于 2013-07-09T14:53:10.750 に答える