iOSのUIWebViewに表示されるHTMLファイル内からいくつかの文字列をローカライズできる方法を探しています。
ローカリゼーションを行うために使用したいNSLocalizesString()
ので、ローカライズされたhtmlファイルを表示する前に生成する簡単なソリューションを探しています。
ある種のプレースホルダーを使用するために、HTMLファイルとプラントを完全に制御できます。
iOSのUIWebViewに表示されるHTMLファイル内からいくつかの文字列をローカライズできる方法を探しています。
ローカリゼーションを行うために使用したいNSLocalizesString()
ので、ローカライズされたhtmlファイルを表示する前に生成する簡単なソリューションを探しています。
ある種のプレースホルダーを使用するために、HTMLファイルとプラントを完全に制御できます。
次に、カスタムタグを使用し、NSXMLParserを使用してHTMLを解析し、カスタムタグ内のすべてのものを解析します...たとえば<localize>Something</localize>
、タグを削除し、文字列をローカライズしてから、このHTMLをWebビューに渡します。
HTML形式が埋め込まれたローカライズされた文字列のセットを作成することでこれに対する解決策を実装しようとしました。アイデアは、それらを連結して単一の文字列を取得し、それをのloadHTMLString:baseURL:
メソッドに割り当てることでしUIWebView
た。
ただし、ローカライズされた文字列でHTMLと通常のテキストを混在させることは、将来のメンテナンスの悪夢のように思われたため、代わりにこれを試しました。
英語のテキストを含む簡単なテストHTMLファイルを作成し、Xcodeプロジェクトにコピーしました。次に、このファイルのスペイン語のローカリゼーションを追加しました。これをiPhoneシミュレーターでテストしたところ、正常に機能しました。HTMLファイルのコンテンツを読み取り、それをUIWebViewに割り当てるために使用したコード行は次のとおりです。
NSString *path = [[NSBundle mainBundle] pathForResource:@"help" ofType:@"html"];
[myUIWebView loadRequest:[NSURLRequest requestWithURL:[NSURL fileURLWithPath:path]]];
維持するHTMLファイルをいくつか用意するのは大変な作業のように思われるかもしれませんが、nibファイルをローカライズするときと同じことです。このタイプのコンテンツを通常のローカライズされた文字列から分離することを考えると、このアプローチが最も効果的だと思います。
お役に立てれば!