从性能和内存的角度来看,本地化属性文件的最佳实践是什么?
一些大文件或许多小文件?
使用属性文件或编译的属性类文件?
示例方案:
我有一个大约150个.jsp文件的应用程序
每个jsp文件使用5到50个密钥
键的总数是1500.
每个密钥被翻译成25种语言。
我想象四个解决方案:
1)使用一些但很大的属性文件(例如:' Bundle_da.properties'等文件)
有25个属性文件,每个文件有1500个键
所有150个.jsp文件都包含相同的属性文件
这样,所有.jsp文件都将包含所有1500个密钥,它们只能使用5到50个密钥。
2)使用一些但很大的属性类文件(例如'公共类Bundle_da扩展ListResourceBundle ...')
有25个班级,每个班级有1500把钥匙
所有150个.jsp文件都包含相同的类
这样,所有.jsp文件都将包含所有1500个密钥,它们只能使用5到50个密钥。
3)使用许多但小的属性文件
每个.jsp文件只包含该特定文件所需的密钥
属性文件的数量将是150 x 25 = 3750
这样,所有.jsp文件都只包含实际使用的密钥。 (即5至50把钥匙)。
4)使用.jsp特定属性clases
每个.jsp特定的bundle类只包含该特定.jsp文件所需的密钥
物业合同的数量将是150 x 25 = 3750
这样,所有.jsp文件都只包含实际使用的密钥。 (即5至50把钥匙)。
两个问题:
从性能的角度来看,4种解决方案中哪一种是首选解决方案?
从内存的角度来看,4个解决方案中哪个在Web服务器上分配的内存较少?
提前谢谢你 艾伦
答案 0 :(得分:0)
我们有一个较大的桌面应用程序。为最终用户消费而设计的任何文本消息都包含在代码中的某些标记中。 perl脚本扫描所有* .C文件并提取标记的字符串以生成.po文件,它还从rsc文件中提取字符串。我们最终得到两个.po文件,一个用于.C字符串,另一个用于.rsc字符串。总共有大约16,000个字符串,.po文件转换为每种语言的.mo文件,每个.mo文件大约600K,每种语言1.2Mb。
您的情况可能有所不同,但我们从来没有理由担心文件大小。我担心的是降低本地化子系统的复杂性。例如,在我们的案例中,我宁愿让我们的翻译人员填写两个.po文件中的空白,而不是可能包含最终用户文本消息的100个文件。
注意.po文件大约是400K。