問題タブ [resourcebundle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - Java/StrutsからのResourceBundleと置換式
リソースバンドルプロパティファイルがある場合:
A.properties:
そして、リソースバンドルをロードするJavaコードがあります。
{0}テキストを何らかの値に置き換えるにはどうすればよいですか
出力が次のように出力されるようにします。
これを行うためのResourceBundleの一部であるメソッドはありません。また、私はStrutsにいますが、MessagePropertiesを使用して置換を行う方法はありますか。
java - ResourceBundle を使用して、Java アプリでハードコーディングされた構成パスを回避するにはどうすればよいですか?
Java アプリの構成データのハードコーディングされたパスへの依存を排除したいと考えています。ResourceBundle を使用すると、クラスローダーを使用してリソースを見つけるのに役立つことを理解しています。
ResourceBundle を適切に使用して、リソースへのハードコードされたパス (たとえば、クラスに必要な .properties 構成データ ファイル) を置き換える方法を教えてもらえますか? 可能であれば、単純明快な例、ありがとうございました。
java - Javaでは、Webアプリケーションでリソースバンドルを動的にリロードする方法は?
fmt:setBundle を使用して、データベースからリソース バンドルを読み込みます (これを行うために ResourceBundle クラスを拡張しました)。データベースの値を変更する場合、Web サーバーをリロードして新しい値を Web アプリに表示する必要があります。
Web サーバーを再起動せずに新しい値を使用する簡単な方法はありますか?
(常にデータベースから値を検索する必要はありませんが、特別な「管理者」URL を呼び出すなどして、キャッシュを無効にしたいと考えています)
編集: JDK 1.4 を使用しているため、そのバージョンでのソリューションをお勧めします。:)
java - プロパティ ファイルに値を指定して、ResourceBundle#getStringArray を使用して取得できるようにするにはどうすればよいですか?
プロパティファイルからResourceBundle#getStringArray
取得するために使用しようとしています。String[]
ドキュメントのこのメソッドの説明は次のとおりです。
このリソース バンドルまたはその親の 1 つから、指定されたキーの文字列配列を取得します。
ただし、値を複数の個別のキーと値のペアとしてプロパティ ファイルに保存しようとしました。
コンマ区切りのリストとして:
しかし、どちらも を使用して取得することはできませんResourceBundle#getStringArray
。
を使用して取得できるように、プロパティ ファイル内の一連のキーと値のペアをどのように表現しますResourceBundle#getStringArray
か?
java - プラグイン ベースのプログラムのロケールと ResourceBundle
プログラムに国際化を追加する必要があります。ありがたいことに、まだ全体ではなく、ほんの一部ですが、プログラム全体をカバーできるようにスケールアップする方法が必要です. 問題は、私たちのプログラムはプラグインに基づいているため、すべての文字列が同じ場所にあるわけではないということです。
私が理解している限りでは、Java のResourceBundle
動作はこのようなものです。ResourceBundle
などと呼ばれるを拡張するクラスと、などMyProgramStrings
と呼ばれる言語固有のクラスを作成します。これらの各クラスは、キー (文字列) を値 (任意のオブジェクト) にマップします。データをどこから取得するかはこれらのクラスごとに異なりますが、共通の場所はプロパティ ファイルです。MyProgramStrings_fr
MyProgramStrings_es
値を 2 段階で検索します。最初に正しいバンドルを取得し、次に必要な文字列を照会します。
ただし、必要なのは、複数のロケールの結果を 1 つのリソース空間に結合することです。たとえば、プラグインは、既に定義されている文字列をオーバーライドし、コードが文字列を検索するたびにその新しい値を返すことができる必要があります。
私はこれらすべてに少し迷っています。誰でも助けることができますか?
更新: David Waters 氏は次のように尋ねました。
回答を最後に記載しましたが、この問題をどのように解決したかをお聞きしたいと思います。
まあ、まだそれほど進んでいません - 長期的なWIBNIは常に最新の危機の犠牲者になります - しかし、プラグインが実装するインターフェースに基づいており、リソースはインターフェースと同じ完全修飾名を持つという慣習があります.
そのため、インターフェイスUsersAPI
にはさまざまな実装が含まれる場合があります。そのインターフェイスのメソッドgetBundle()
は、デフォルトで と同等のものを返します ResourceBundle.get("...UsersAPI", locale)
。そのファイルを置き換えるか、より複雑なものが必要な場合は、UsersAPI の実装でメソッドをオーバーライドできます。
これまでのところ、これで必要なことは完了していますが、プラグインに基づくより柔軟なソリューションを引き続き検討しています。
jsp - Spring MVC Webapp:一般的な画像へのパスをどこに保存しますか?
ビューテクノロジとしてTiles/JSPを使用してSpringMVCWebアプリケーションを構築しています。以前、Common画像へのパスをCommonクラスに保存しました。
次に、jspでこのクラスを使用して、次のような画像srcを取得します。
jspコードのスクリプトレットを削除し、代わりにjstlなどを使用したいと思います。この種の情報を保存するための最良の方法は何ですか?リソースバンドルですか?これをどのように解決しましたか?
java - PropertyResourceBundle から一部のリソースをオーバーライドする方法
既存の Java/JSF Web サイトがあります。画面上のすべてのテキストは、applicaltion.properties からテキストを取得する <f:loadBundle basename="org.example.applicaltion" var="applicaltion" /> を介してプロパティ ファイルから取得されます。
これらの実行時に構成可能なサブセットについては、他の場所 (Web サービス経由の CMS) から文字列を取得したいと考えています。ResourceBundle クラスを見ると、親 ResourceBundle への委譲により、これに近いもののためのインフラストラクチャーがあるように見えます。
私はこのような何かを望んでいます
私はこれを試しましたが、親は null です。これは、デフォルト -> en -> en_GB の場合により多く使用されると思います。
プロパティ ファイルにカスタム resourceBundle とは別の名前を付けてから、CustomResourceBundle.handleGetObject(key) 内から ResourceBundle.getBundle(PROPERTY_FILE_NAME).getString(key) のフル スタックを委任するというあまり魅力的ではないオプションを検討しています。
より良いアイデアはありますか?
eclipse - JSF検証でカスタムResourceBundleクラスが見つからない
コードの実行に適したカスタム ResourceBundle クラス org.example.web.UILabels.java がありますが、Eclipse の JSF エディターはそれを見つけられません。エディター/バリデーターは名前でプロパティ ファイルのみを探していると思います。これはまた、リソースで先行検索を取得できなくなったことを意味します。
これを修正する方法はありますか?
エラーメッセージが表示されます (問題のエラーリストにあります)
リソース バンドル org.example.web.UILabels がクラスパスに見つかりません
タイプ=JSF問題
Eclipse3.4.0 と WebStandardTools バージョン
- バージョン:1.4.0.v200802280619-13-7w311917141518
- バージョン:1.5.1.v200802280619-1407w311917141519
- バージョン:3.0.0.v200806092130-7A-8Y8QqN2lf4VSWrI2ek5Pf4k7s
プロパティ ファイルだけでなく ResourceBundle クラスを使用している理由の詳細については、質問 653682 how-to-override-some-resources-from-a-propertyresourcebundle を参照してください。
お時間をいただきありがとうございます、デビッド・ウォーターズ
java - JSTLタグを使用してリソースバンドルキーが存在しないかどうかを確認するにはどうすればよいですか?
オプションのキーを持つリソースファイルがあります。オプションのリソースキーが存在しない場合は、代わりにデフォルトを設定します。キーがリソースバンドルに存在するかどうかを判断する簡単な方法はないようです。だから、これは私がそれを回避するためにやっていることです。
もっと良い方法はありますか?
java - 非開発者(翻訳者!)がリソースバンドルを編集するためのツールはありますか?
私たちのソフトウェアを外部の翻訳者に翻訳させるために私たちが会社で行っていることは...まあ..それを置く方法...
- cvs co someModule
- ant translation.export(このターゲットの背後には、すべてのリソースバンドルを1つの大きなタブ区切りのテキストファイル、列:異なる言語、各行に1つのキーのすべての言語としてエクスポートする自作のantタスクがあります)
- 一部のVBツールはファイルを処理します(知りたくない)
- 翻訳者はExcelで列を操作します
- 誰かが翻訳を収集してマージします
- VBツール
- ant translation.import
- cvsコミット
...ベストケース:1。と8の間の2週間、開発は続きます...
最初の質問:これをどのように処理しますか?
私のアイデアは、翻訳者がcvsモジュールで直接作業できるようにするweb-guiを使用してツールを構築することでした(バックグラウンドでチェックアウトし、「保存」でコミットし、バックグラウンドでタグ付けすることもできます)。研修生による実装から始めて、概念実証のようなものを手に入れました。開発を進める前に知りたいのですが
2番目の質問:同等のツールを知っていますか?
および/または
3番目の質問:そのようなツールを使用しますか?