问题标签 [localization]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
12 回答
106721 浏览

database-design - 多语言数据库的架构

我正在开发一个多语言软件。就应用程序代码而言,可本地化不是问题。我们可以使用特定于语言的资源,并拥有与它们配合良好的各种工具。

但是定义多语言数据库模式的最佳方法是什么?假设我们有很多表(100 或更多),每个表可以有多个可以本地化的列(大多数 nvarchar 列应该是可本地化的)。例如,其中一张表可能包含产品信息:

我可以想到三种方法来支持 NAME 和 DESCRIPTION 列中的多语言文本:

  1. 每种语言的单独列

    当我们向系统添加新语言时,我们必须创建额外的列来存储翻译后的文本,如下所示:

    /li>
  2. 带有每种语言列的翻译表

    不存储翻译文本,只存储翻译表的外键。翻译表包含每种语言的列。

    /li>
  3. 每种语言都有行的翻译表

    不存储翻译文本,只存储翻译表的外键。translations 表只包含一个键,而一个单独的表包含一个用于每种语言翻译的行。

    /li>

每种解决方案各有利弊,我想知道您对这些方法有何经验,您有什么建议以及您将如何设计多语言数据库模式。

0 投票
1 回答
536 浏览

asp.net - 查找本地化文件

在我的 asp.net 应用程序中,用户可以上传几个本地化图像(按钮)。比如他会上传'send.gif', 'send.fr.gif', 'send.en-UK,gif; ETC..

当访问者来到他的页面时,我需要根据访问者的语言环境选择正确的文件。

是否有一个 api(或简单的方法)来根据区域设置找到最合适的图像 - 例如,如果访问者来自法国,API 将返回“send.fr.gif”,如果访问者来自澳大利亚,API 将返回'send.en.gif'等...

其逻辑应该与 ASP.NET 选择正确的本地化资源文件基本相同。

谢谢。

0 投票
1 回答
468 浏览

java - Apache 蜂巢和本地化 DataGrid 的默认寻呼机

我正在尝试本地化由 Apache Beehive 和 netui 默认寻呼机创建的字符串。

我想翻译这个输出的语言。

我的 .jsp 代码看起来像这样

我已经找到了我应该在翻译中使用的,但是我如何配置寻呼机应该使用的消息属性文件?

0 投票
2 回答
2534 浏览

c++ - 将宽字符串转换为提升日期

我需要将存储为宽字符串的数百万个日期转换为提升日期

以下代码有效。但是,它会生成一个可怕的编译器警告,并且似乎效率不高。

有没有更好的办法?


更好的方法是使用标准 C++ 库locale,它是facets的集合。facet 是一项服务,它允许流操作员处理日期或时间表示或其他任何内容的特定选择。所有关于不同事物的选择,每一个都由它自己的方面处理,都聚集在一个语言环境中。

这个解决方案是由litb向我指出的, 他给了我足够的帮助来在我的生产代码中使用构面,使其更简洁、更快。谢谢。

Nathan Myers有一个关于语言环境和方面的优秀教程,他设计了方面。他有一种轻松的风格,使他的教程易于阅读,尽管这是高级的东西,第一次通读后你的大脑可能会受伤——我的就是这样。我建议你现在去那里。对于任何只想将宽字符串转换为提升日期的实用性的人,本文的其余部分描述了使其工作所需的最低限度。


litb 首先提供了以下消除编译器警告的简单解决方案。(解决方案在我开始接受之前已被编辑。)这看起来像它做同样的事情,一个一个地转换宽字符,但它避免了使用临时字符串,因此更清晰,我认为。我真的很喜欢编译器警告消失了。


litb 继续建议使用我以前从未听说过的“方面”。他们似乎完成了这项工作,在循环中生成了非常简洁的代码,但代价是设置语言环境的序言。

事实证明,这也更有效:

产生以下输出:

好的,这现在在生产代码中并通过了回归测试。它看起来像这样:

我对此有最后一个问题。将方面添加到语言环境似乎需要两次调用语言环境复制构造函数

为什么没有 add(facet*) 方法?( _Addfac() 很复杂,未记录且已弃用)

0 投票
5 回答
2602 浏览

asp.net - 在 ASP.NET 中本地化图像

几年前,我们让一位平面设计师改造了我们的网站。他的结果看起来很棒,但不幸的是,他引入了 Web 浏览器不支持的新字体。

起初我想,“什么!?!”......因为我们的大部分内容都是动态的,并且没有真正的方法来预先制作所有图像。还有多种语言的问题(因为我们知道西班牙语即将出现)。

无论如何,我决定创建一些类来通过 GDI+ 自动生成图像并根据需要以编程方式缓存它们。这解决了我们最初的大部分问题。然而,现在我们的负载急剧增加,我们的 UI 服务器已经耗尽。

现在问题来了……我希望用标准的网络浏览器字体替换大多数动态 GDI+ 图像。我正在考虑保留一些渲染的 GDI+ 图像并将它们放在 resx 文件中,但计划通过 asp:Labels 用 Tahoma 或 Arial 字体替换其中的大部分。

您发现哪个是更好的本地化图像解决方案?

  • 将图像嵌入到 resx
  • 仅将图像 url 添加到 resx
  • 其他一些解决方案

我主要关心的是限制 UI 服务器上的处理。如果是这种情况,与将图像实际嵌入到 resx 相比,将图像 url 添加到 resx 会是更好的解决方案吗?

0 投票
6 回答
874 浏览

language-agnostic - 重新实现 ToUpper()

如果 ToUpper() 不存在,你将如何编写它?i18n 和 L10n 的奖励积分

好奇心由此引发:http ://thedailywtf.com/Articles/The-Long-Way-toUpper.aspx

0 投票
1 回答
676 浏览

vb6 - 如何在 VB6 中使用 GNU gettext?

我一直在几个私人项目中使用 gettext,现在我想使用 gettext 来翻译 Visual Basic 6 应用程序的字符串。

我检查了 GNU gettext 包,似乎我必须编写一些样板代码才能让它与 VB6 一起使用,我担心我的老板不会允许它。

  • VB6 是否有一些开箱即用的软件包?(像 dxgettext 这样的东西将是一个梦想!)
  • 你做过类似的事情吗?
  • 甚至可能吗?
  • 我从哪说起呢?
0 投票
1 回答
1455 浏览

asp.net - asp.net、javascript 和 silverlight 的共享本地化?

您如何本地化 ASP.NET + javascript + Silverlight?

我希望能够在 asp.net 页面、页面上的 javascript 和页面上的 Silverlight 对象中包含不同语言的相同文本。

我尝试过以下方法,但在实践中没有经验,我想听听您对它或替代方案的意见:

1) 创建一个类库 ( ResourcesTest) 并添加一个Phrases.resx包含一些字符串 ( Hello='Hello') 的资源文件 ( ) 以及一个本地化版本 ( Phrases.da.resx: Hello='Hej')。

2) 添加一个空的 javascript 文件 ( PhrasesHandler.js)。

3) 在 AssemblyInfo.cs 中执行此操作以允许 javascript/Silverlight 使用文本:

p>

4) 从 ASP.NET 代码隐藏 ( ) 引用资源ResourcesTest.Phrases.Hello,或者通过在网页中包含嵌入的 javascript 资源:

然后从 javascript(例如Phrases.Hello)或 Silverlight 通过 javascript(HtmlPage.Window.Eval("Phrases.Hello"))访问文本。

我发现这种方法相当复杂,我担心处理这样的系统,但还没有找到在 ASP.NET、javascript 和 Silverlight 之间共享本地化/多语言资源的其他方法。

你?您如何本地化 ASP.NET + javascript + Silverlight ?

0 投票
2 回答
959 浏览

.net - Asp:TextBox and VNI-Times, 越南文字问题

我需要能够允许用户在文本框中输入越南语文本。

我被指示使用 VNI-Times 并提供了一个带有越南文本的示例 word 文档。

当我将示例文档中的文本粘贴到文本框中时,它的编码不正确。我尝试在我的机器和服务器上安装字体(VNI-Times),并更改浏览器的编码,但均无济于事。此问题不仅限于浏览器,还限于记事本。

到目前为止,我找到了一种解决方案,在页面上放置了一个所见即所得的编辑器,但我希望使用 asp:TextBox 控件。

用户提交文本后,它会显示为服务器生成的图像,这些图像也没有正确生成。

0 投票
1 回答
1742 浏览

localization - 如何翻译 Struts 2 的验证消息?

我想学习如何使用 Struts 2,并按照我找到的教程创建了一个简单的应用程序。

我创建了一个<MyActionClass>-validation.xml文件,我想知道如何将验证消息翻译成多种语言?

我可以从本地化的 .properties 文件中获取消息,还是必须使用其他类型的验证?