一.为什么选用该开源平台

BIRT (Business Intelligence and Reporting Tools), 是为 Web 应用程序开发的基于 Eclipse 的开源报表系统,特别之处在于它是以 Java 和 J2EE 为基础。BIRT 有两个主要组件:基于 Eclipse 的报表设计器,以及部署到应用服务器上的运行时组件。BIRT 也提供了图标引擎让你能为应用增加图标。

 BIRT 当前发行的版本是 2.5.1。可通过

http://www.eclipse.org/downloads/download.php?file=/technology/epp/downloads/release/galileo下载使用。

  有了 BIRT,你可以为应用程序构建丰富的报表。

  列表 - 列表是最简单的报表。当列表变长时,你可以把相关数据增加到同一分组(基于客户的订单分组,基于供应商的产品分组)。如果数据是数字类型的,你可以轻松的添加到“总数”、“平均”、或其他汇总中。

  图表 - 当需要图表表现时,数字型数据比较好理解。BIRT 也提供饼状、线状以及柱状图标等。

  交叉表 - 交叉表(也叫做十字表格或矩阵)用两种维度展示数据:sales per quarter or hits per web page。(交叉表在1.0.1 中没有提供,但计划在将来提供。)

  信函和文档 - 通知、信件、以及其他文本文档都很容易通过 BIRT 方便建立。文档包括正文、格式、列表、图表等。

混合报表 - 很多报表需要联合以上所有的报表构成单一文档。例如,一份客户声明会列出客户所需要的信息,为当前促进(promotions)提供文本,以及提供并行的出帐和入帐列表。一份财政报表将包括声明、图表、表格,所有这些都将进行全方位的格式化,来匹配共有的配色方案。

二.如何汉化

I.eclipse 的汉化

(webapps/birt/WEB-INF/lib/commons-logging.jar   是BIRT.WAR包解压没有但是是必须的)

1.下载eclipse-birt 集成的开发工具eclipse-reporting-galileo-win32.zip

解压至本地

2. http://download.eclipse.org/birt/downloads/lang.php?build=R-R1-2_2_2-200802271210

下载eclipse-birt的汉化包NLpack1-birt-report-designer-all-in-one-2_1_1.zip

将汉化包里面的文件按照相应的解压至eclipse-reporting-galileo-win32.zip解压出来的文件中

II.在tomcat里面的汉化

1.找到对应的birt/WEB-INF/lib/viewservlets.jar

找到viewservlets.jar/org/eclipse/birt/report/resource/Messages.properties

内容替换为:

###############################################################################
# Copyright (c) 2004 Actuate Corporation.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Eclipse Public License v1.0
# which accompanies this distribution, and is available at
# http://www.eclipse.org/legal/epl-v10.html
#
# Contributors:
#  Actuate Corporation  - initial API and implementation
###############################################################################birt.viewer.title=BIRT Report Viewer
birt.viewer.title.navigation=\u5bfc\u822a\u3000
birt.viewer.title.error=\u9519\u8bef
birt.viewer.title.complete=\u5b8c\u6210
birt.viewer.title.message=\u6d88\u606fbirt.viewer.parameter=\u53c2\u6570
birt.viewer.runreport=\u8fd0\u884c\u62a5\u8868
birt.viewer.required=\u9700\u8981\u5e26\u6709 <FONT COLOR="red">*</FONT> \u6807\u8bb0\u7684\u53c2\u6570\u3002birt.viewer.viewinpdf=\u4ee5 PDF \u67e5\u770b
birt.viewer.maximize=\u9690\u85cf\u62a5\u8868\u53c2\u6570
birt.viewer.restore=\u663e\u793a\u62a5\u8868\u53c2\u6570birt.viewer.error=\u9519\u8bef\u6d88\u606f
birt.viewer.error.noparameter=\u6b64\u62a5\u8868\u65e0\u53c2\u6570\u3002
birt.viewer.error.parameter.invalid=\u53c2\u6570\u201c{0}\u201d\u65e0\u6548\u3002
birt.viewer.error.noprinter=\u65e0\u6cd5\u627e\u5230\u652f\u6301 PostScript \u683c\u5f0f\u7684\u4efb\u4f55\u53ef\u7528\u6253\u5370\u673a\u3002
birt.viewer.error.unknownerror=\u672a\u77e5\u9519\u8bef\u3002
birt.viewer.error.generatereportfirst=\u5e94\u9996\u5148\u751f\u6210\u62a5\u8868\u6587\u6863\u3002
birt.viewer.error.parameterrequired=\u53c2\u6570\u201c{0}\u201d\u662f\u5fc5\u9700\u7684\u3002
birt.viewer.error.parameternotallowblank=\u53c2\u6570\u201c{0}\u201d\u4e0d\u80fd\u4e3a\u7a7a\u767d\u3002
birt.viewer.error.parameternotselected=\u8bf7\u4e3a\u53c2\u6570\u201c{0}\u201d\u9009\u62e9\u503c\u3002
birt.viewer.error.noviewingsession=\u67e5\u770b\u4f1a\u8bdd\u4e0d\u53ef\u7528\u6216\u5df2\u8fc7\u671f\u3002
birt.viewer.error.viewingsessionexpired=\u67e5\u770b\u4f1a\u8bdd\u5df2\u8fc7\u671f\u3002
birt.viewer.error.viewingsessionlocked=\u67e5\u770b\u4f1a\u8bdd\u88ab\u9501\u5b9a\uff0c\u4e0d\u80fd\u7ec8\u6b62\u3002
birt.viewer.error.viewingsessionmaxreached=\u5df2\u8fbe\u5230\u67e5\u770b\u4f1a\u8bdd\u6700\u5927\u6570\u91cf\u3002birt.viewer.message.taskcanceled=\u5f53\u524d\u64cd\u4f5c\u5df2\u53d6\u6d88\u3002###############################################################################
# Toolbar
###############################################################################
birt.viewer.toolbar.print=\u6253\u5370\u62a5\u8868
birt.viewer.toolbar.printserver=\u5728\u670d\u52a1\u5668\u4e0a\u6253\u5370\u62a5\u8868
birt.viewer.toolbar.toc=\u663e\u793a\u76ee\u5f55
birt.viewer.toolbar.parameter=\u8fd0\u884c\u62a5\u8868
birt.viewer.toolbar.export=\u5bfc\u51fa\u6570\u636e
birt.viewer.toolbar.font=\u66f4\u6539\u5b57\u4f53
birt.viewer.toolbar.enableiv=\u8c03\u7528\u4ea4\u4e92\u5f0f\u67e5\u770b\u5668
birt.viewer.toolbar.exportreport=\u5bfc\u51fa\u62a5\u8868###############################################################################
# navbar
###############################################################################
birt.viewer.navbar.first=\u7b2c\u4e00\u9875
birt.viewer.navbar.previous=\u4e0a\u4e00\u9875
birt.viewer.navbar.next=\u4e0b\u4e00\u9875
birt.viewer.navbar.last=\u6700\u540e\u4e00\u9875
birt.viewer.navbar.goto=\u8f6c\u5230
birt.viewer.navbar.lable.goto=\u8f6c\u5230\u9875:
birt.viewer.navbar.prompt.one=\u663e\u793a\u9875
birt.viewer.navbar.prompt.two=/
birt.viewer.navbar.error.blankpagenum=\u8bf7\u8f93\u5165\u6709\u6548\u9875\u7801\u3002###############################################################################
# progress bar
###############################################################################
birt.viewer.progressbar.prompt=\u6b63\u5728\u5904\u7406\uff0c\u8bf7\u7a0d\u5019 ...
birt.viewer.progressbar.confirmcanceltask=\u60a8\u8981\u53d6\u6d88\u5f53\u524d\u64cd\u4f5c\u5417?###############################################################################
# Dialog
###############################################################################
birt.viewer.dialog.ok=\u786e\u5b9a
birt.viewer.dialog.cancel=\u53d6\u6d88
birt.viewer.dialog.run=\u8fd0\u884c\u62a5\u8868
birt.viewer.dialog.close=\u5173\u95edbirt.viewer.dialog.page.all=\u6240\u6709\u9875
birt.viewer.dialog.page.current=\u5f53\u524d\u9875
birt.viewer.dialog.page.range=\u9875:
birt.viewer.dialog.page.range.description=(\u8f93\u5165\u9875\u7801\u548c/\u6216\u9875\u8303\u56f4\u3002\u4f8b\u5982: 1-6 \u6216 1,3,6)
birt.viewer.dialog.page.error.invalidpagerange=\u65e0\u6548\u9875\u8303\u56f4###############################################################################
# Dialog title
###############################################################################
birt.viewer.dialog.exception.title=\u4f8b\u5916
birt.viewer.dialog.exportReport.title=\u5bfc\u51fa\u62a5\u8868
birt.viewer.dialog.parameter.title=\u53c2\u6570
birt.viewer.dialog.simpleExportData.title=\u5bfc\u51fa\u6570\u636e
birt.viewer.dialog.printReport.title=\u6253\u5370\u62a5\u8868
birt.viewer.dialog.printReportServer.title=\u5728\u670d\u52a1\u5668\u4e0a\u6253\u5370\u62a5\u8868###############################################################################
# Export report dialog
###############################################################################
birt.viewer.dialog.export.format=\u5bfc\u51fa\u683c\u5f0f:
birt.viewer.dialog.export.format.pdf=PDF
birt.viewer.dialog.export.format.excel=EXCEL
birt.viewer.dialog.export.all=\u5bfc\u51fa\u8be6\u7ec6\u62a5\u8868
birt.viewer.dialog.export.all.detail=\u5c06\u5bfc\u51fa\u6240\u6709\u53ef\u7528\u62a5\u8868\u6570\u636e\uff0c\u4e0d\u8003\u8651<br>\u5f53\u524d\u89c6\u56fe\u7684\u4fee\u6539\u3002
birt.viewer.dialog.export.modified=\u5bfc\u51fa\u5177\u6709\u5f53\u524d\u4fee\u6539\u7684\u62a5\u8868
birt.viewer.dialog.export.modified.detail=\u5c06\u53ea\u5bfc\u51fa\u53ef\u89c1\u6570\u636e\u3002\u5c06\u4e0d\u5bfc\u51fa<BR>\u5df2\u88ab\u7b5b\u9009\u6389\u6216\u9690\u85cf\u7684\u6570\u636e\u3002birt.viewer.dialog.export.pdf.fittoauto=\u81ea\u52a8
birt.viewer.dialog.export.pdf.fittoactual=\u5b9e\u9645\u5927\u5c0f
birt.viewer.dialog.export.pdf.fittowidth=\u9002\u5408\u9875\u9762\u5bbd\u5ea6
birt.viewer.dialog.export.pdf.fittowhole=\u9002\u5408\u6574\u9875###############################################################################
# Print Report dialog
###############################################################################
birt.viewer.dialog.print.format=\u6253\u5370\u683c\u5f0f
birt.viewer.dialog.print.format.html=HTML
birt.viewer.dialog.print.format.pdf=PDF
birt.viewer.dialog.print.printpreviewalreadyopen=\u6253\u5370\u9884\u89c8\u7a97\u53e3\u5df2\u6253\u5f00\u3002###############################################################################
# Print report on the server dialog
###############################################################################
birt.viewer.dialog.printserver.onserver=\u5728\u670d\u52a1\u5668\u4e0a\u6253\u5370\u8f93\u51fa\u6587\u6863\u6587\u4ef6
birt.viewer.dialog.printserver.printer=\u6253\u5370\u673a:
birt.viewer.dialog.printserver.status=\u72b6\u6001:
birt.viewer.dialog.printserver.model=\u578b\u53f7:
birt.viewer.dialog.printserver.description=\u63cf\u8ff0:
birt.viewer.dialog.printserver.status.acceptingjobs=\u6b63\u5728\u63a5\u53d7\u4f5c\u4e1a
birt.viewer.dialog.printserver.status.notacceptingjobs=Not accepting Jobsbirt.viewer.dialog.printserver.settings=\u8bf7\u6307\u5b9a\u6253\u5370\u8bbe\u7f6e
birt.viewer.dialog.printserver.settings.copies=\u4efd\u6570:
birt.viewer.dialog.printserver.settings.collate=\u9010\u4efd\u6253\u5370:
birt.viewer.dialog.printserver.settings.mode=\u6a21\u5f0f:
birt.viewer.dialog.printserver.settings.mode.bw=\u9ed1\u767d
birt.viewer.dialog.printserver.settings.mode.color=\u5f69\u8272
birt.viewer.dialog.printserver.settings.duplex=\u53cc\u5de5:
birt.viewer.dialog.printserver.settings.duplex.simplex=\u5355\u5de5
birt.viewer.dialog.printserver.settings.duplex.horizontal=\u6c34\u5e73
birt.viewer.dialog.printserver.settings.duplex.vertical=\u5782\u76f4
birt.viewer.dialog.printserver.settings.pagesize=\u9875\u9762\u5927\u5c0f:
birt.viewer.dialog.printserver.settings.print=\u6253\u5370:birt.viewer.dialog.printserver.complete=\u5df2\u5c06\u6587\u6863\u6587\u4ef6\u53d1\u9001\u5230\u670d\u52a1\u5668\u4e0a\u9009\u62e9\u7684\u6253\u5370\u673a\u3002
birt.viewer.dialog.printserver.error.noprinter=\u65e0\u6253\u5370\u673a
###############################################################################
# Confirmation dialog
###############################################################################
birt.viewer.dialog.confirmation.title=\u786e\u8ba4
###############################################################################
# Export data dialog
###############################################################################
birt.viewer.dialog.exportdata.tab.field=\u6570\u636e\u5b57\u6bb5
birt.viewer.dialog.exportdata.tab.filter=\u7b5b\u9009\u6807\u51c6
birt.viewer.dialog.exportdata.resultsets=\u53ef\u7528\u7ed3\u679c\u96c6
birt.viewer.dialog.exportdata.availablecolumn=\u53ef\u7528\u5217
birt.viewer.dialog.exportdata.selectedcolumn=\u9009\u62e9\u7684\u5217
birt.viewer.dialog.exportdata.extension=\u5bfc\u51fa\u683c\u5f0f:
birt.viewer.dialog.exportdata.encoding=\u8f93\u51fa\u7f16\u7801:
birt.viewer.dialog.exportdata.encoding.other=\u5176\u5b83
birt.viewer.dialog.exportdata.encoding.comment=(\u5982\u679c\u4e3a\u7a7a\u767d\uff0c\u4f7f\u7528\u672c\u5730\u7f16\u7801)
birt.viewer.dialog.exportdata.addall=\u5168\u90e8\u6dfb\u52a0
birt.viewer.dialog.exportdata.add=\u6dfb\u52a0
birt.viewer.dialog.exportdata.removeall=\u5168\u90e8\u5220\u9664
birt.viewer.dialog.exportdata.remove=\u5220\u9664
birt.viewer.dialog.exportdata.up=\u4e0a\u79fb
birt.viewer.dialog.exportdata.down=\u4e0b\u79fb
birt.viewer.dialog.exportdata.separator=\u5206\u9694\u7b26:
birt.viewer.dialog.exportdata.datatype=\u5bfc\u51fa\u5217\u7684\u6570\u636e\u7c7b\u578b
birt.viewer.dialog.exportdata.localeneutral=\u4e0d\u5206\u533a\u57df\u8bbe\u7f6e\u5bfc\u51fa\u5217birt.viewer.sep.0=\u9017\u53f7 ( , )
birt.viewer.sep.1=\u5206\u53f7 ( ; )
birt.viewer.sep.2=\u5192\u53f7 ( : )
birt.viewer.sep.3=\u5782\u76f4\u7ebf ( | )
birt.viewer.sep.4=\u5236\u8868\u7b26 ( \\t )###############################################################################
# General exception
###############################################################################
birt.viewer.generalException.DOCUMENT_FILE_ERROR=\u6587\u6863\u6587\u4ef6: {0} \u4e0d\u5b58\u5728\u6216\u5305\u542b\u9519\u8bef\u3002
birt.viewer.generalException.DOCUMENT_ACCESS_ERROR=\u65e0\u6cd5\u8bbf\u95ee\u6587\u6863\u6587\u4ef6: {0}\u3002
birt.viewer.generalException.REPORT_FILE_ERROR=\u62a5\u8868\u6587\u4ef6: {0} \u4e0d\u5b58\u5728\u6216\u5305\u542b\u9519\u8bef\u3002
birt.viewer.generalException.REPORT_ACCESS_ERROR=\u65e0\u6cd5\u8bbf\u95ee\u62a5\u8868\u6587\u4ef6: {0}\u3002
birt.viewer.generalException.DOCUMENT_FILE_PROCESSING=\u6b63\u5728\u5904\u7406\u6587\u6863\u6587\u4ef6\uff0c\u8bf7\u7a0d\u540e\u518d\u8bd5\u3002
birt.viewer.generalException.NO_REPORT_DESIGN=\u6ca1\u6709\u53ef\u7528\u7684\u62a5\u8868\u8bbe\u8ba1\u5bf9\u8c61\u3002
birt.viewer.generalException.MULTIPLE_EXCEPTIONS=\u51fa\u73b0\u591a\u4e2a\u5f02\u5e38\u3002###############################################################################
# Report service exception
###############################################################################
birt.viewer.reportServiceException.EXTRACT_DATA_NO_DOCUMENT=\u6ca1\u6709\u53ef\u4f9b\u63d0\u53d6\u6570\u636e\u7684\u6587\u6863\u6587\u4ef6\u3002
birt.viewer.reportServiceException.EXTRACT_DATA_NO_RESULT_SET=\u6ca1\u6709\u53ef\u4f9b\u63d0\u53d6\u6570\u636e\u7684\u7ed3\u679c\u96c6\u3002
birt.viewer.reportServiceException.INVALID_TOC=\u65e0\u6548 TOC \u67e5\u8be2\u3002
birt.viewer.reportServiceException.INVALID_PARAMETER=\u65e0\u6548\u53c2\u6570: {0}\uff0c\u56e0\u6b64\u5b83\u672a\u5b9a\u4e49\u3002
birt.viewer.reportServiceException.STARTUP_REPORTENGINE_ERROR=\u5c1d\u8bd5\u542f\u52a8\u62a5\u8868\u5f15\u64ce\u65f6\u51fa\u73b0\u81f4\u547d\u9519\u8bef\u3002birt.viewer.reportServiceException.INVALID_EXTRACTFORMAT=\u6570\u636e\u63d0\u53d6\u683c\u5f0f\u65e0\u6548\u6216\u672a\u6307\u5b9a\u3002
birt.viewer.reportServiceException.INVALID_EXTRACTEXTENSION=\u65e0\u6548\u7684\u6570\u636e\u63d0\u53d6\u6269\u5c55 ID\u3002
###############################################################################
# Birt action handler exception
###############################################################################
birt.viewer.actionException.NO_REPORT_DOCUMENT=\u62a5\u8868\u6587\u6863\u5b9e\u4f8b\u4e3a\u7a7a\u3002
birt.viewer.actionException.INVALID_BOOKMARK=\u4e66\u7b7e: {0} \u65e0\u6548\u3002\u8bf7\u68c0\u67e5\u5e76\u91cd\u7f6e\u94fe\u63a5\u3002
birt.viewer.actionException.INVALID_PAGE_NUMBER=\u65e0\u6548\u9875\u7801\u7b2c {0} \u9875\uff0c\u5171 {1} \u9875\u3002
birt.viewer.actionException.INVALID_ID_FORMAT=\u65e0\u6548 id \u683c\u5f0f\u3002Id={0}\u3002
birt.viewer.actionException.DOCUMENT_FILE_NO_EXIST=\u4f1a\u8bdd\u8d85\u65f6\u6216\u6ca1\u6709\u53ef\u7528\u7684\u6587\u6863\u6587\u4ef6\u3002###############################################################################
# Birt soap bingding impl exception
###############################################################################
birt.viewer.soapBindingException.NO_HANDLER_FOR_TARGET=\u65e0\u6cd5\u4e3a\u6b64\u76ee\u6807\u627e\u5230\u5904\u7406\u7a0b\u5e8f\u3002\u76ee\u6807: {0}\u3002###############################################################################
# Component processor exception
###############################################################################
birt.viewer.componentProcessorException.MISSING_OPERATOR=\u9519\u8bef: \u7f3a\u5c11\u8fd0\u7b97\u7b26!!!###############################################################################
# Exception dialog
###############################################################################
birt.viewer.exceptionDialog.stackTrace=\u5806\u6808\u8ddf\u8e2a:
birt.viewer.exceptionDialog.showStackTrace=\u663e\u793a\u4f8b\u5916\u5806\u6808\u8ddf\u8e2a
birt.viewer.exceptionDialog.hideStackTrace=\u9690\u85cf\u4f8b\u5916\u5806\u6808\u8ddf\u8e2a###############################################################################
# Birt Viewer JSP Taglib
###############################################################################
birt.viewer.taglib.NO_ATTR_ID=\u5fc5\u987b\u6307\u5b9a\u5c5e\u6027 ID\u3002
birt.viewer.taglib.INVALID_ATTR_ID=\u5c5e\u6027 ID \u5305\u542b\u65e0\u6548\u5b57\u7b26\u3002
birt.viewer.taglib.ATTR_ID_DUPLICATE=\u5c5e\u6027 ID \u5fc5\u987b\u552f\u4e00\u3002
birt.viewer.taglib.PARAM_NAME_DUPLICATE=\u65e0\u6cd5\u590d\u5236\u53c2\u6570\u540d\u79f0\u3002
birt.viewer.taglib.NO_REPORT_SOURCE=\u5e94\u6307\u5b9a\u62a5\u8868\u8bbe\u8ba1\u6216\u6587\u6863\u6587\u4ef6\u3002
birt.viewer.taglib.NO_REPORT_DOCUMENT=reportlet \u9700\u8981\u62a5\u8868\u6587\u6863\u6587\u4ef6\u3002
birt.viewer.taglib.NO_REQUESTER_NAME=\u53c2\u6570\u9875\u6807\u8bb0\u7684 "name" \u5c5e\u6027\u662f\u5fc5\u9700\u7684\u3002###############################################################################
# Birt Viewer Message
###############################################################################
birt.viewer.message.document.successful=\u62a5\u8868\u6587\u6863\u6587\u4ef6\u5df2\u6210\u529f\u751f\u6210\u3002###############################################################################
# Birt Viewer General Exceptions
###############################################################################
birt.viewer.exception.maybe_disabled_cookies=\u8fd9\u53ef\u80fd\u662f\u7531\u5ba2\u6237\u7aef\u4e0a\u7981\u7528\u7684 Cookie \u5f15\u8d77\u7684\u3002

重启tomcat

2.用jdk 自带的转编码工具native2ascii.exe将其转为utf-8格式

Native2ascii.exe -encoding GBK  Messages.properties(修改前) Messages.properties(修改后)

三.如何修改添加了日期控件

1.       FramesetFragment.jsp

<script src="birt/ajax/core/BirtSoapResponse.js" type="text/javascript"></script>

<script src="birt/customizeFormat/date/WdatePicker.js" type="text/javascript" defer="defer" ></script>

defer="defer"  代表当javascript不改变文档的时候绕过执行

注:最终的解决方式是将<script src="birt/customizeFormat/date/WdatePicker.js" type="text/javascript" ></script> 置整个页面的底部

2.       TextBoxParameterFragment.jsp

<INPUT CLASS="BirtViewer_parameter_dialog_Input"

TYPE="<%= parameterBean.isValueConcealed( )? "PASSWORD" : "TEXT" %>"

NAME="<%= encodedParameterName %>"

ID="<%= encodedParameterName %>"

TITLE="<%= parameterBean.getToolTip( ) %>"

VALUE="<%= ParameterAccessor.htmlEncode( ( parameterBean.getDisplayText( ) == null )? "" : parameterBean.getDisplayText( ) ) %>"

<%= ( !parameterBean.isRequired( ) && parameterBean.getValue( ) == null )? "DISABLED='true'" : "" %>

<%=((encodedParameterName.toUpperCase()).indexOf("DATE")>=0)? "readonly" : "" %>

>

<%if ((encodedParameterName.toUpperCase()).indexOf("DATE") >=0) {%>

<img id="teqiimg" src="birt/images/btn_off_cal.gif" οnclick="WdatePicker({el:$dp.$('<%= encodedParameterName %>'),dateFmt:'yyyy-MM-dd'})"/>

<%} %>

3.       将customizeFormat文件夹考到birt/webcontent/birt/里,这个是时间控件

4.       报表参数的定义:

a)         参数的名称必须是*+“Date”,不如:startDate

显示类型是“文本框”

birt 汉化与修改相关推荐

  1. pycharm不用下载汉化包修改语言为中文

    pycharm不用下载汉化包修改语言为中文 选择设置/快捷键ctrl+alt+s 最后重新启动pycharm,就OK了.

  2. [免费专栏] Android安全之Android APP应用程序的汉化功能 (修改so中的字符串内容)

    也许每个人出生的时候都以为这世界都是为他一个人而存在的,当他发现自己错的时候,他便开始长大 少走了弯路,也就错过了风景,无论如何,感谢经历 Android安全付费专栏长期更新,本篇最新内容请前往: [ ...

  3. 安装ubuntu20.04(安装vim、gcc、VMtools、中文输入法、汉化、修改IP地址)

    目录 ubuntu安装包获取 ubuntu的安装 安装网络配置命令ifconfig 连接网络 如何修改IP地址 安装VMtools 解决VMware Tools选项灰色 VMtools安装 安装中文, ...

  4. Android对现有的apk进行修改(汉化,修改QQ尾巴)

    我们可以用压缩软件把apk打开,对一些apk进行简单的修改,比如说替换掉里面的原有图片,换成自己喜欢的(ps:图片名字必须一样),对一些国外的软件进行汉化,然后在利用辅助软件对修改过的apk进行再次签 ...

  5. MRBS 会议室预订系统 完整汉化翻译 修改

    Meeting Room Booking System (MRBS) 是一个基于 PHP/MySQL 开发的,使用浏览器访问的开源会议室预订系统,很好用了.官网为 https://mrbs.sourc ...

  6. 星历表DE405/406 testeph.f汉化兼修改

    !星号 英文名 中文名 数据 !1 MERCURY 水星 L1 !2 VENUS 金星 L2 !3 EARTH 地球 L10 !4 MARS 火星 L4 !5 JUPITER 木星 L5 !6 SAT ...

  7. apk(安卓手机应用软件)解包汉化过程简单陈述 [转贴]

    为什么80%的码农都做不了架构师?>>>    汉化资料到到是整理了不少,自己实践了一下,感觉做一些(除特别的外)基本汉化其实不难,今天跟大家分享一下个人整理收集的资料,有兴趣的朋友 ...

  8. 英文WM 5.0、6.0 ROM汉化初级教程

    .error{color:#FF0000;font-size:12px} /**/ 主页博客相册|个人档案 |好友   查看文章   英文WM 5.0.6.0 ROM汉化初级教程 2008-11-17 ...

  9. GitLab-ce的汉化

    一.汉化指南,基于 Larry Li 版汉化指南 修改 (以9-0-stable-zh分支为例) 源码安装汉化 推荐按照 gitlab-ce 源代码中 doc/install/installation ...

最新文章

  1. codeforces D Prefixes and Suffixes(kmp)
  2. 分享到facebook链接原格式_神马?!你还不知道Facebook广告怎么操作?
  3. AI和物联网在零售环境中的长期应用
  4. 【Python CheckiO 题解】Non-unique Elements
  5. 【Linux】文件IO --- sync、fsync、fdatesync
  6. 即时通讯学习笔记003---Tigase代码框架解读
  7. vue-cli+webpack打包配置
  8. 关于《Delphi源代码分析》的讨论
  9. vb改变字形的代码是什么_VB怎么改变字体?
  10. OPERA重要密码学习一
  11. axure 8.0 注册码
  12. win10下载CAD之后任务栏卡死
  13. 利用CSS制作一个梦幻西游小动画
  14. KTL 一个支持C++14编辑公式的K线技术工具平台 - 第五版,支持sqlite3,全新sqlite3zz语法超简单使用sqlite3; 添加方差等统计函数。
  15. 大厂是如何用DevCloud流水线实现自动化部署Web应用的?
  16. 第十二篇.最重要的合并函数Con介绍
  17. 字符串及有效长度(字节数)计算
  18. 伽玛函数(Gamma函数)C++实现
  19. C练题笔记之:Leetcode-832. 翻转图像
  20. 免费开源好看的bootstrap后台模板

热门文章

  1. digging!!!
  2. 积性函数和完全积性函数
  3. npm install报错code128
  4. iPhone手机短信如何迁移到电脑,苹果手机短信同步到电脑
  5. 小姐姐知道我用微信机器人和她聊天之后,把我拉黑了
  6. 胖老鼠和奶酪(记忆化dfs)
  7. 基于java的连连看游戏系统设计与实现(项目报告+答辩PPT+源代码+数据库+截图+部署视频)
  8. 我发现 chatGPT 在智能客服方面一个逆天的应用呀
  9. 解决Set SHAPE_RESTORE_SHX config option to YES to restore or create it.
  10. HCL打开显示当前系统用户怎么解决_苹果手机蓝牙怎么连不上的解决步骤