問題

実行時にi18nデータを変更/リロードできるように、i18nキー/値のペアを格納するためにデータベースを使用したいと思います。誰もこれをやったことがありますか?または、誰かがこれを実装する方法のアイデアを持っていますか?私はこれについていくつかのスレッドを読んだことがありますが、私は実行可能な解決策を見ていません。

私は特にjstlタグで動作するものを参照しています。

 <fmt:setlocale>
<fmt:bundle>
<fmt:setBundle>
<fmt:message>
 

これにはResourceBundleの拡張が必要だと思いますが、これを試してみると、jstlタグがリソースバンドルを取得する方法と関係がある問題が発生しました。

  ベストアンサー

UTF-8/16文字をDBに保存する方法を尋ねていますか? mysqlでは、UTF8サポートでビルドし、それをデフォルトとして設定するか、列またはテーブルレベルで指定するだけの問題です。以前はoracleとmysqlでこれを行っていました。テーブルを作成し、いくつかのi18nデータをカットして貼り付けて何が起こるかを確認してください。すでに設定されている可能性があります。

または、私は完全にあなたのポイントを欠いていますか?

編集:

より明示的にするには...私は通常、3列のテーブルを実装します...言語、キー、値...ここで "value"には潜在的に外国語の単語やフレーズが含まれています... "language"にはいくつかの言語キーが含まれており、 "key"は英語のキーです(つまり、login.error.password.dup)...言語とキー

私はその後、すべての翻訳(値)を持つ各キーを表示するこのような構造上のインターフェイスを構築しました...それは空想を得ることができ、監査証跡と "汚れた"マーカーとその他のすべてのものを含めることができます。

編集2:

JSTLタグに関する情報を追加したので、もう少し理解しています...私はそれを自分でやったことはありません..しかし、私は theserverside に関するこの古い情報を見つけました...

 HttpSession session = .. [get hold of the session] 
ResourceBundle bundle = new PropertyResourceBundle(toInputStream(myOwnProperties)) [toInputStream just stores the properties into an inputstream] 
Locale locale = .. [get hold of the locale]
javax.servlet.jsp.jstl.core.Config.set(session, Config.FMT_LOCALIZATION_CONTEXT, new LocalizationContext(bundle ,locale));
 

  同じタグがついた質問を見る

javainternationalization