Java web应用程序的国际化

Java web应用程序的国际化,java,internationalization,Java,Internationalization,在进行web应用程序的国际化工作时,我有点受阻,因为我不知道如何将我的.properties设置为dinamic。我的意思是,从应用程序中自动获取静态文本。例如,现在我有一个MessageBundle\u de\u de.properties: greetings=Hallo! inquiry=Wie geth's? farewell=Tchüs! 但这是静态的,我写了这三对(键,值)。 如何根据我的申请制作钥匙??我想这是可能的,关于 使用和JSP技术 提前感谢,我知道这可能是一个

在进行web应用程序的国际化工作时,我有点受阻,因为我不知道如何将我的.properties设置为dinamic。我的意思是,从应用程序中自动获取静态文本。例如,现在我有一个MessageBundle\u de\u de.properties:

greetings=Hallo!  
inquiry=Wie geth's?   
farewell=Tchüs!
但这是静态的,我写了这三对(键,值)。
如何根据我的申请制作钥匙??我想这是可能的,关于

使用和JSP技术


提前感谢,我知道这可能是一个过于笼统的问题。

如果您不使用web应用程序框架,我建议使用,它为web应用程序提供了有用的功能,包括国际化。

如果您不使用web应用程序框架,我建议使用,它为web应用程序提供了有用的功能,包括国际化。

如果不使用任何框架,将应用程序内部化的最佳方法是使用数据库存储所有翻译。只要一个简单的类,它就可以按键从db加载翻译,您的问题就解决了。

如果您不使用任何框架,将应用程序内部化的最佳方法就是使用数据库存储所有翻译。只要一个简单的类就可以通过键从db加载翻译,您的问题就解决了。

由于您使用的是spring,请将以下bean添加到您的应用程序上下文中:

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basename" value="/WEB-INF/messages/messages" />
    <property name="cacheSeconds" value="0" />
</bean>
<!-- Saves a locale change using a cookie -->
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" />
<mvc:interceptors>
<!-- Changes the locale when a 'locale' request parameter is sent; e.g. /?locale=de -->
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
</mvc:interceptors>

在/WEB-INF/messages文件夹中,创建所需的所有messages.properties文件,即messages\u en\u GB.properties、messages\u DE.properties等

然后在JSP中,使用spring提供的以下标记:

<spring:message code="some.property.name" />

默认情况下,区域设置应为用户在浏览器中设置的区域设置。要允许他们选择不同的语言环境(从而选择正确的语言),您还可以将其添加到应用程序上下文中:

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basename" value="/WEB-INF/messages/messages" />
    <property name="cacheSeconds" value="0" />
</bean>
<!-- Saves a locale change using a cookie -->
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" />
<mvc:interceptors>
<!-- Changes the locale when a 'locale' request parameter is sent; e.g. /?locale=de -->
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
</mvc:interceptors>


然后,您只需要包含locale属性的链接,如
/?local=de
,即可更改为德语翻译。

由于您使用的是spring,请将以下bean添加到您的应用程序上下文中:

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basename" value="/WEB-INF/messages/messages" />
    <property name="cacheSeconds" value="0" />
</bean>
<!-- Saves a locale change using a cookie -->
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" />
<mvc:interceptors>
<!-- Changes the locale when a 'locale' request parameter is sent; e.g. /?locale=de -->
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
</mvc:interceptors>

在/WEB-INF/messages文件夹中,创建所需的所有messages.properties文件,即messages\u en\u GB.properties、messages\u DE.properties等

然后在JSP中,使用spring提供的以下标记:

<spring:message code="some.property.name" />

默认情况下,区域设置应为用户在浏览器中设置的区域设置。要允许他们选择不同的语言环境(从而选择正确的语言),您还可以将其添加到应用程序上下文中:

<bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
    <property name="basename" value="/WEB-INF/messages/messages" />
    <property name="cacheSeconds" value="0" />
</bean>
<!-- Saves a locale change using a cookie -->
<bean id="localeResolver" class="org.springframework.web.servlet.i18n.CookieLocaleResolver" />
<mvc:interceptors>
<!-- Changes the locale when a 'locale' request parameter is sent; e.g. /?locale=de -->
<bean class="org.springframework.web.servlet.i18n.LocaleChangeInterceptor" />
</mvc:interceptors>


然后,您只需要包含区域设置属性的链接,如
/?local=de
,就可以将其转换为德语翻译。

正在寻找一种简单而强大的方法来国际化您的应用程序吗?试试gettext:大多数Linux开源软件都使用它,但它也可以与Java一起使用。步骤很简单:

  • 正常编写程序,就像它是非本地化的:System.out.println(“Hello world!!!”)
  • 在代码中的某个地方,使用方法x创建名为(比如)S的公共静态类。这个方法名称应该很短,这将是经常使用的。它应该委托给Gettext或ResourceBundle API来获取消息
  • 所有要用(…):System.out.println((“Hello world!!!”)本地化的字符串
  • 运行gettext命令提取所有此类uu字符串
  • 将提取的文件翻译为目标语言
  • 再次运行gettext以编译和检查此类文件

您可以非常轻松地将本地化添加到任何应用程序(无论是用Java、C、Python还是其他语言编写的应用程序)。

正在寻找一种简单而强大的方法来国际化您的应用程序吗?试试gettext:大多数Linux开源软件都使用它,但它也可以与Java一起使用。步骤很简单:

  • 正常编写程序,就像它是非本地化的:System.out.println(“Hello world!!!”)
  • 在代码中的某个地方,使用方法x创建名为(比如)S的公共静态类。这个方法名称应该很短,这将是经常使用的。它应该委托给Gettext或ResourceBundle API来获取消息
  • 所有要用(…):System.out.println((“Hello world!!!”)本地化的字符串
  • 运行gettext命令提取所有此类uu字符串
  • 将提取的文件翻译为目标语言
  • 再次运行gettext以编译和检查此类文件

这可以很容易地将本地化添加到任何应用程序(无论它是用Java、C、Python还是其他语言编写的)。

为了国际化应用程序,我实现了一个,它将资源包文件和常量定义创建为Java枚举或来自单个源文件的密钥的静态最终字符串。因此,可以在Java源代码中使用常量,这比使用纯字符串安全得多。消息编译器不能仅用于Java。它还为Objective-C或Swift创建资源文件和常量,并可扩展到其他编程环境。

为了国际化应用程序,我实现了一个,它将资源包文件和常量定义创建为Java枚举或单个源文件中键的静态最终字符串。因此,可以在Java源代码中使用常量,这比使用纯字符串安全得多。消息编译器不能仅用于Java。它还为Objective-C或Swift创建资源文件和常量,并可扩展到其他编程环境。

您所说的如何根据应用程序制作密钥是什么意思?我想您想知道如何在网页内绑定资源字符串。您使用哪个框架开发应用程序?绑定技术会随着技术的变化而变化。在您的示例中需要做一些小的修改:inquiry=Wie-geht's?再见!正如其他人已经说过的,这一切都取决于