小编Car*_*los的帖子

Java本地化最佳实践

我有一个带有服务器和Swing客户端的Java应用程序.现在我需要本地化用户界面,并且可能还需要一些特定于区域设置的数据.我想听听您的意见,具体情况很少.

  1. 我应该如何将UI的本地化字符串分发到属性文件中?在我的应用程序中有几个视图,每个视图都有几个面板.我应该为每个面板或视图的每种语言设置一个本地化文件,还是应该将一种语言的所有翻译保留在同一个文件中?我目前倾向于每个视图和语言一个文件,但我不确定如何处理出现在许多地方的某些特定于域的术语.在几个文件上进行相同的翻译听起来不太好.
  2. 服务器抛出一些异常,其中包含应向用户显示的消息.我可以从会话中获取所选的区域设置并在服务器上处理本地化,但我觉得将所有本地化文件保留在客户端会更优雅.我一直在考虑只从服务器发送一个本地化密钥,其中包含某种占位符以获取特定于错误的信息,这些信息将与异常一起发送.然后,客户端可以基于本地化密钥构造消息,并用错误特定信息替换占位符.这听起来像是处理它的好方法,还是有其他选择?通常,我的异常消息包含一些针对每种情况而更改的附加信息.例如," 用户名为Khilon的用户已经存在",在这种情况下,属性文件中的字符串将类似于" 用户名为{0}的用户已存在 ".
  3. The localization of the data is the area that is the most unclear to me. As I'm not sure if it will be ever required, I have so far not planned it very much. The database part sounds straightforward enough, you basically just need an additional table for the strings and a column to tell for which locale the string is. Though I'm not sure if it would be best to have a …

java swing localization

18
推荐指数
1
解决办法
6669
查看次数

使用子范围中使用的变量名称

我一直想知道为什么在C#中使用以前在子作用域中使用的变量名是不允许的.像这样:

if (true)
{
    int i = 1;
}

int i = 2;
Run Code Online (Sandbox Code Playgroud)

编译上面的代码会产生错误:

名为"i"的局部变量不能在此范围内声明,因为它会给"i"赋予不同的含义,"i"已在"子"范围内用于表示其他内容

然而,您也不能使用子范围中定义的变量.上面的代码在Java中运行得很好,我也看不出它在C#中也没有原因.我确信这是一个很好的理由,但它是什么?

c#

14
推荐指数
1
解决办法
4786
查看次数

从Win7 64位编译32位

我想知道是否可以使用Netbeans从Windows 7 64bit在32位应用程序中编译java桌面应用程序.

求助于你.

java netbeans compilation 32bit-64bit

6
推荐指数
2
解决办法
6740
查看次数

在Ant中设置jUnit任务的编码

我有一个测试用例(它实际上是一个集成测试),它使用包含斯堪的纳维亚字母的用户名登录.问题是当我从命令行运行Ant任务时,身份验证失败,因为编码不正确(它应该是UTF-8).当我从Eclipse运行它时,测试运行正常,但不是从命令行运行.到目前为止,我已经尝试在Ant目标中告诉Ant正确的编码:

<target name="run_tests">
    <junit fork="no" haltonfailure="no">
        <jvmarg value="-Dfile.encoding=UTF-8"/>
        <formatter type="xml" usefile="true" />
        <classpath refid="test.classpath" />
        <test name="com.company.integration.AllIntegrationTests" />
    </junit>
</target>
Run Code Online (Sandbox Code Playgroud)

从命令行:

ant -D"file.encoding=UTF-8" run_tests
Run Code Online (Sandbox Code Playgroud)

这些都不奏效.无论我做什么,测试仍然失败,测试报告说:

<property name="file.encoding" value="cp1252" />
Run Code Online (Sandbox Code Playgroud)

就像我说的,如果我从Eclipse运行它,一切都很美妙.我还注意到,如果我通过将编码更改为ISO-8859-1来修改Eclipse中的运行配置,则测试会像预期的那样失败.所以显然可以改变编码,但是你怎么做呢?

java ant junit encoding

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

计算MDX中的累计和

我需要一个MDX查询,它根据度量的累积和返回行的前N%.棘手的部分是必须根据与总和使用的不同度量来对集合进行排序,因此TopPercent无法使用该函数.

为了澄清我需要的东西,这是一个例子.我想在尽可能少的包装中购买至少1000克的肉.然而,它不仅仅是包装的重量,我想要质量,所以我想要优先考虑含有最高百分比肉类的产品.可用的产品是:

|| Name      || Weight || PercentageOfMeat ||
| Product 1  | 500     |  20               |
| Product 2  | 250     |  60               |
| Product 3  | 1000    |  25               |
| Product 4  | 400     |  50               |
| Product 5  | 400     |  40               |
Run Code Online (Sandbox Code Playgroud)

所以,为了得到我想要的东西,我首先要按PercentageOfMeat降序来满足我的第一要务.然后我会累计计算产品的重量,直到达到1000克的限制.结果应该是产品2,产品4和产品5.这很简单.

但是在MDX中可以这样做吗?TopPercent(或者在示例的情况下,TopSum)否则将是完美的,但它不允许我使用不同的度量来进行排序和求和.如果我只想要最重的产品,那就行了.引用文档,功能:

按降序对集合进行排序,并返回一组具有最高值的元组,其累计总数等于或大于指定的百分比.

我基本上需要的是TopPercent不对该集合进行排序的函数,但据我所知,没有.那么有可能做我想要的或者我必须在服务器代码中计算这个吗?

ssas mdx cumulative-sum

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

获取游戏中对象的位置

我最近开始制作简单的2D游戏,并遇到了两难 - 使用或不使用getter和setter方法来处理对象的x和y位置.如果我不使用方法,但是直接访问变量会更加清晰,而且对对象的许多方法调用会损害性能.此外,获取和设置位置仍然很简单,所以这里真的不需要封装吗?或者我们是否应始终坚持使用getter和setter方法的约定?

java getter-setter

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