Daniel が指摘したように、ロケールに依存しない Web サービスを作成することは非常に理にかなっています。最善の方法は、識別子 (リソース キー名など) のみを返し、それらをクライアント側で適切なメッセージに解決することです。
ただし、JavaScript でコードにアクセスする場合、上記の方法は実際には使用できず、実際の翻訳が必要です。
その場合、実際のリソース ファイルへのアクセス レイヤーを構築する必要があります。これは、WeakHashMapを使用して、オンデマンドでリソース ファイルをロードすることで実行できます。
私の言いたいことを明確にするために、次のようなものが必要だと思います。
public class ResourceLayer {
    private final WeakHashMap<Locale, ResourceBundle> cache =
                      new WeakHashMap<>();
    public String getString(String key, Locale locale) {
        ResourceBundle resources = cache.get(locale);
        if (resources == null) {
            resources = ResourceBundle.getBundle(BASE_NAME, locale);
            cache.put(locale, resources);
        }
        try {
            return resources.getString(key);
        } catch (MissingResourceException mre) {        
            logger.error("The translation for " + key
                    + " is missing for locale " + locale.toLanguageTag());
            // Visually indicate an error
            return "!" + key + "!";
        }
    }
}
ここで注意すべき点がいくつかあります。WeakHashMap は必要な限りファイルを保持するため、メモリ フットプリントに大きな影響を与えることはありません。この例で読み取るResourceBundleは、実際にはPropertyResourceBundleクラスのインスタンスです。調べてみたくなるかもしれませんが、実際の実装ではプロパティファイルを一気に読み込んで HashMap に戻します。したがって、特定の言語リソースへの最初のアクセスでのみ I/O 操作にヒットします。
これは、メモリ消費量とディスク使用量の間のある種の妥協であるため、一般的に使用される言語のものを事前にロードすることをお勧めします...
最後だが大事なことは。私はこのソリューションをあまりお勧めしませんでしたが、実際にリソースをデータベースに入れ (ローカライズ可能性が損なわれます)、必要に応じて読み取ることができます。