标签: resourcebundle

弹簧本地敏感数据

我的网页应用程序适用于远程用户浏览器语言设置时遇到一些问题.我使用了ResourceBundleMessageSource.它看起来像这样:

<bean id="messageSource" class="org.springframework.context.support.ResourceBundleMessageSource">
    <property name="basename" value="resources/messages" /> </bean>
Run Code Online (Sandbox Code Playgroud)

我有两个.properties文件:

  • messages.properties

  • messages_ru.properties

它们位于src/resources/messages中.

我想以这样的方式配置我的应用程序,当远程用户浏览器语言设置包含俄语时,我的应用程序应该使用俄语消息(messages_ru),否则(如果语言没有配置或者它不是俄语),它应该使用meessages.properties(它包含英文消息).

当我在浏览器中设置俄语时,它工作正常.当我擦除所有设置时,它也显示俄语(我认为这取决于系统区域设置).当我设置另一种语言时,它也会显示俄语消息.

让我的应用程序显示英文消息的唯一方法是将messages.properties重命名为messages_en.properties并在浏览器中设置英语lang.但是我希望我的应用程序适用于所有语言设置(如果需要则使用俄语,任何其他设置和任何其他国家使用英语).

有任何想法吗?

spring resourcebundle spring-mvc internationalization

3
推荐指数
1
解决办法
2681
查看次数

无法使用messageSource解析Spring消息代码

我试图在春季连接一个messageSource以用于我的应用程序。它不起作用,给出此错误:

org.springframework.context.NoSuchMessageException:在代码“ validation_required”下找不到区域“ en”的消息。

我的applicationContext.xml包含messageSource的以下定义:

   <bean id="messageSource"
        class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
        <property name="basenames">
            <list>
                <value>classpath:messages</value>
            </list>
        </property>
    </bean>
Run Code Online (Sandbox Code Playgroud)

我的邮件属性文件位于:

/WEB-INF/classes/messages/messages_en_US.properties
Run Code Online (Sandbox Code Playgroud)

最后,我拨打的产生错误的电话是:

String message = messageSource.getMessage("validation_required", null, Locale.ENGLISH);
Run Code Online (Sandbox Code Playgroud)

这个小时有人可以帮我吗?

java spring localization resourcebundle

3
推荐指数
1
解决办法
3万
查看次数

架构设置不断变化的文本,属性文件?在Java EE环境中

在Java EE环境中,我们通常用于在属性/资源文件中存储文本.并且该属性文件与某些视图HTML标记文件相关联.例如,如果您的标签"名字"在HTML页面上更改为"全名",则可以使用该属性进行更新.

firstName=First Name
someOtherData=This is the data to display on screen, from property file
Run Code Online (Sandbox Code Playgroud)

如果您所处的环境很难定期更新这些属性文件,那么开发人员使用哪种架构来更改通常位于属性文件中的文本/标签内容?或者假设您需要在重新部署属性文件更改之前更改该内容.一个糟糕的解决方案是将其存储在数据库中?开发人员使用memcache吗?这通常用于缓存解决方案吗?

编辑-1数据库实际上不是为这类任务设计的(拉动文本显示在屏幕上),但数据库有用例.我可以添加区域设置列或状态字段,也可以按组添加列过滤器.如果我不使用数据库或属性文件,那么分布式键/值解决方案将允许我添加自定义过滤器?

编辑-2你会在java框架之外使用解决方案吗?像键/值数据存储一样?memcachedb?

java resourcebundle internationalization java-ee

3
推荐指数
1
解决办法
2735
查看次数

Java XML资源包和HTML内容

需要将HTML内容存储为资源包中的值(XML格式).HTML标记与XML标记冲突.如何在不使用字符实体引用的情况下存储HTML字符串(&lt; and &gt;)

java xml resourcebundle

3
推荐指数
1
解决办法
902
查看次数

将keyvalue(消息密钥)中的动态参数传递给package.properties

我试图通过该方法keyvalue(message to display)将动态参数传递package.propertiesActiongetText().要获取消息,我们可以使用getText(String keyvalue)方法.我该怎么做才能通过方法传递一些参数并通过消息检索参数getText()

我看到一些API来传递动态参数.但我不知道如何使用,这些是以下API,点击这里查看Struts 2 API文档.

  1. getText(String aTextName, List<Object> args)
  2. getText(String key, String[] args)
  3. getText(String key, String defaultValue, String[] args)

提前致谢..

struts2 resourcebundle

3
推荐指数
1
解决办法
9130
查看次数

在struts2 messages.properties中插入新行

我想在Struts2中以两行显示错误消息

User Name is not valid
Password is not valid
Run Code Online (Sandbox Code Playgroud)

我的财产是:

username.password.errrorMsg: User Name is not valid \n Password is not valid.
Run Code Online (Sandbox Code Playgroud)

我添加\n但它以单行显示.

你能建议用两行显示吗?

java validation jsp struts2 resourcebundle

3
推荐指数
1
解决办法
3079
查看次数

ResourceBundle 示例不起作用

我正在尝试“学习Java”中关于RersourceBundles 的示例。

我使用的是 Windows 7 和 NetBeans

示例代码为:

import java.util.*;
public class Hello {
    public static void main(String[] args) {
        ResourceBundle bun;
        bun = ResourceBundle.getBundle("Message", Locale.ITALY);
        System.out.println(bun.getString("HelloMessage"));
        bun = ResourceBundle.getBundle("Message", Locale.US);
        System.out.println(bun.getString("HelloMessage"));
    }
}
Run Code Online (Sandbox Code Playgroud)

如果我运行代码我得到:

线程“main”中的异常 java.util.MissingResourceException:找不到基名称消息的包,在 java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1499) 处的 java.util.ResourceBundle.getBundleImpl(ResourceBundle. java:1322)在java.util.ResourceBundle.getBundle(ResourceBundle.java:795)在学习java4.Hello.main(Hello.java:14)Java结果:1

即使我写了并保存

import java.util.*;
public class Message_it_IT extends ListResourceBundle {
    public Object[][] getContents() {
        return contents;
    }
    static final Object[][] contents = {
        {"HelloMessage", "Buon giorno, world!"},
        {"OtherMessage", "Ciao."},
    };
}
Run Code Online (Sandbox Code Playgroud)

我仍然有同样的错误。文件 Message_it_IT 保存在另一个文件的同一目录中,出了什么问题?

谢谢

java resourcebundle

3
推荐指数
1
解决办法
3184
查看次数

JSF 2.0中的Application#getResourceBundle()和ResourceBundle#getBundle()之间的区别

为了从资源包中检索字符串,我试图比较这两种方法的结果,下面是代码示例:

第一个例子:

baseName:资源包的完全限定名称(<base-name>in <resource-bundle>).

FacesContext context = FacesContext.getCurrentInstance();
Application app = context.getApplication();
ResourceBundle bundle = app.getResourceBundle(context, baseName);
Run Code Online (Sandbox Code Playgroud)

第二个例子:

varName:是表示<var></var>in 的String<resource-bundle>

FacesContext context = FacesContext.getCurrentInstance();
Locale locale = context .getViewRoot().getLocale();
ClassLoader loader = Thread.currentThread().getContextClassLoader();
ResourceBundle bundle = ResourceBundle.getBundle(varName, locale, loader);
Run Code Online (Sandbox Code Playgroud)

这两个例子有什么区别?如果没有区别,获得ResourceBundle(使用Application#getMessageBundle()或ResourceBundle#getBundle())的最佳做法是什么?

jsf resourcebundle facescontext jsf-2

3
推荐指数
1
解决办法
1587
查看次数

通过@ManagedProperty注入ResourceBundle似乎在@Named中不起作用

如何从java代码访问消息包以根据当前区域设置获取消息?

我尝试使用@ManagedProperty如下:

@Named 
@SessionScoped 
public class UserBean implements Serializable {

    @ManagedProperty("#{msg}")
    private ResourceBundle bundle;

    // ...

    public void setBundle(ResourceBundle bundle) {
        this.bundle = bundle;
    }

}
Run Code Online (Sandbox Code Playgroud)

但是,它仍然存在null.它似乎在一个内部不起作用@Named.

这是我在faces-context.xml以下方面注册资源包的方式:

<application>

    <message-bundle>validator.messages</message-bundle>

    <locale-config>
        <supported-locale>en_US</supported-locale>
        <supported-locale>ua_UA</supported-locale>
    </locale-config>

    <resource-bundle>
        <base-name>lang.messages</base-name>
        <var>msg</var>
    </resource-bundle>

</application>
Run Code Online (Sandbox Code Playgroud)

作者的作者:

@BalusC我收到错误

16:29:10,968 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/WEBSearchPrime_JB_lang].[Faces Servlet]] (http-localhost-127.0.0.1-8080-1) Servlet.service() for servlet Faces Servlet threw exception: org.jboss.weld.exceptions.IllegalProductException: WELD-000054 Producers cannot produce non-serializable instances for injection into non-transient fields of passivating beans\\n\\nProducer\: Producer Method [PropertyResourceBundle] with …

jsf resourcebundle cdi

3
推荐指数
1
解决办法
3304
查看次数

如何在复合组件中加载资源包属性文件?

我的组件库目录树设置如下:

resources
    mylib
        css
            mycomponent.css
        properties
            mycomponent.properties
        mycomponent.xhtml
Run Code Online (Sandbox Code Playgroud)

我想加载 mycomponent.xhtml 中的属性文件以用于消息。这样做的正确方法是什么?是否有 f:loadbundle 类型的解决方案?

jsf resourcebundle properties-file composite-component

3
推荐指数
1
解决办法
682
查看次数