Tag: 国际化

标记化和模式匹配如何在中文中起作用。

这个问题涉及计算以及中国人的知识。 我有中文查询,我有一个单独的中文短语列表,我需要能够找到这些查询中的哪些有任何这些短语。 在英语中,这是一项非常简单的任务。 我根本不懂中文,它的语义,语法规则等。如果这个论坛中有人也懂中文,可以帮助我对中文有一些基本的了解和模式匹配。 我有一个基本的看法,即在中文中一个单元(中间没有任何空格)实际上可能意味着不止一个单词(这是正确的吗?)。 那么有没有任何规则说明不止一个词如何在它们之间结合起来作为一个单元脱颖而出。 这是令人困惑的,因为在中文写作中有空格,即使没有空格的单元也有多个单词。 从计算的角度来看解释中文的任何链接,模式匹配等都非常有用。

如何在java中处理多种语言?

我正在编写一个使用jsp和java的程序,我如何使用属性文件来支持多种语言? 顺便说一下,总有类似的东西,这是什么? 他们怎么来的?

用于检查Java资源包的工具(i18n)

我正在寻找一个工具,ant-task,IDE插件……这有助于使用标准的message-properties资源包来处理Java应用程序的I18N。 欢迎开源和商业解决方案。 具体来说,我正在寻找以下任务的支持: 1)从Java代码,JSP和其他工件中提取使用过的密钥。 由于涉及自定义框架,因此提取应允许自定义。 将源工件映射到某个消息包。 还有自定义规则。 报告使用不在捆绑中的密钥。 报告包中的键,但不包含映射到此包的源工件。 2)检查每个包的属性文件,并报告缺少的键定义和默认翻译(使用英文文本)。 3)将当前SVN / CVS / GIT /任何版本与旧版本进行比较,并报告一个转换(或者可能只是默认转换)而不是其他转换的情况。 http://rscbundlecheck.sourceforge.net/涵盖2)很大一部分。 但是我没有找到1)和3)的东西。 有什么指针吗?

Java偏好和国际化(i18n)

Java教程建议在Properties文件上使用Preferences API。 属性文件和ResourceBundle是处理应用程序中的内部化要求的推荐方法。 我正在考虑将两者用于桌面应用程序,该应用程序将以特定于语言环境的方式显示首选项。 任何人都可以指出这种方法的问题吗? 也许我应该只使用属性文件期间?

是否有半自动方式为i18n执行字符串提取?

我们有一个Java项目,其中包含大量用于用户提示,错误消息等的英语字符串。 我们希望将所有可翻译的字符串提取到属性文件中,以便以后可以翻译它们。 例如,我们想要替换: Foo.java String msg = “Hello, ” + name + “! Today is ” + dayOfWeek; 有: Foo.java String msg = Language.getString(“foo.hello”, name, dayOfWeek); language.properties foo.hello = Hello, {0}! Today is {1} 我知道以完全自动化的方式完成此操作几乎是不可能的,因为不是每个字符串都应该被翻译。 但是,我们想知道是否有一种半自动化方式可以消除一些劳动力。

Java Web应用程序i18n

我已经获得了使用2.3 servlet规范将i18n引入J2EE Web应用程序的(相当艰巨的)任务。 该应用程序非常庞大,已经积极开发了8年多。 因此,我想在第一次就把事情做好,这样我就可以限制我需要在JSP,JavaScript文件,servlet和其他任何地方乱写的时间,用消息包中的值替换硬编码的字符串。 这里没有使用框架。 我怎样才能支持i18n。 请注意,我希望每个视图都有一个JSP,它可以从(a)属性文件加载文本,而不是为每个受支持的语言环境加载不同的JSP。 我想我的主要问题是我是否可以在’后端’中的某处设置区域设置(即在登录时从用户配置文件中读取区域设置并在会话中存储值),然后期望JSP页面能够正确加载指定的字符串。正确的属性文件(即,当语言环境为法语时,来自messages_fr.properties),而不是添加逻辑以在每个JSP中查找正确的语言环境。 我有什么想法可以解决这个问题吗?

具有适当复数的Java国际化(i18n)

我打算使用Java的标准i18n系统和复数forms的ChoiceFormat类,但后来意识到它不能处理某些语言的复杂多元规则(例如波兰语)。 如果它只处理类似于英语的语言,那么它似乎有点无意义。 有什么选择来实现正确的复数forms? 使用它们的优点和缺点是什么?

使用Velocity / FreeMarker模板进行国际化电子邮件

如何使用Velocity或FreeMarker等模板引擎来构建邮件正文? 通常人们倾向于创建以下模板: ${message.hi} ${user.userName}, ${message.welcome} ${message.link}${user.emailAddress}. 并使用以下属性创建资源包: message.hi=Hi message.welcome=Welcome to Spring! message.link=Click here to send email. 这会产生一个基本问题:如果我的.vm文件变得很大,文本行很多,那么在单独的资源包( .properties )文件中翻译和管理它们就变得很繁琐。 我要做的是,为每种语言创建一个单独的.vm文件,类似于mytemplate_en_gb.vm, mytemplate_fr_fr.vm, mytemplate_de_de.vm然后以某种方式告诉Velocity / Spring根据输入Locale选择正确的文件。 这在spring有可能吗? 或者我应该考虑更简单明了的替代方法? 注意:我已经看过关于如何使用模板引擎创建电子邮件主体的Spring教程 。 但它似乎没有回答我关于i18n的问题。

为什么从ResourceBundle.getBundle中检索字符串时难以理解的字符

请告诉我如何解决这个问题: Locale locale = new Locale(language); ResourceBundle messages = ResourceBundle.getBundle(“i18n.messages”, locale, utf8Control); try { String message = new String(messages.getString(key).getBytes(“ISO-8859-1”), “UTF-8”); pageContext.getOut().write(message); } catch (IOException e) { e.printStackTrace(); } 我正在尝试实现本地化,我从创建的消息文件中获取文本,问题是,而不是必要的字符,它输出“?????? ??????? ????” 谷歌搜索,问题似乎是编码,我试图这样做: String message = new String(messages.getString(key).getBytes(“ISO-8859-1”), “UTF-8”) 还创建了utf8Control: public class Utf8Control extends ResourceBundle.Control { @Override public ResourceBundle newBundle(String baseName, Locale locale, String format, ClassLoader […]

更正java.util.ResourceBundle组织

我有一个包含许多模块的国际化项目。 每个模块都有自己的一组包: – database-module + com_naugler_project_database.properties + com_naugler_project_database_fr.properties – mapping-module + com_naugler_project_mapping.properties + com_naugler_project_mapping_fr.properties 但是,许多国际化术语都是多余的(例如“确定”或“取消”),我希望将这些术语放在一个地方,以便于维护和开发。 我发现了ResourceBundleinheritance的这个有用的解释 ,但似乎一个(不是?)共同的祖先不会被正确国际化,因为: – common-module + com_naugler_project.properties + com_naugler_project_fr.properties <– this is not an ancestor – database-module + com_naugler_project_database.properties + com_naugler_project_database_fr.properties <– of this 我的捆绑组织是否会离开基地? 提供共同的国际化祖先的正确方法是什么?