2010-12-14 39 views

Trả lời

0

Vì trình tạo tài liệu có thể là một phần của ứng dụng của bạn, bạn nên có một mục menu chọn ngôn ngữ, hộp kiểm hoặc hộp tổ hợp đã được chọn trước.

Vì vậy, tại sao bạn không chỉ cần thêm câu lệnh if đọc Ngôn ngữ hoặc ngôn ngữ cần thiết trước khi tạo báo cáo và tải báo cáo phù hợp tương ứng với ngôn ngữ.

Bằng cách này, bạn sẽ cần giữ một tệp jrxml cho mọi ngôn ngữ. Nó sẽ được khá dễ dàng để chỉ dịch các tiêu đề và nhãn bằng tay.

Dữ liệu của bạn phải được dịch trong cơ sở dữ liệu của bạn, nơi bạn vẫn phải giữ các giá trị thuộc tính có liên quan.

Bạn sẽ cần phải sửa đổi truy vấn SQL cho ngôn ngữ thích hợp, nhưng vì truy vấn là một phần của jrxml của bạn, nó sẽ được thực thi tự động.

4

Đây là the sample cách thực hiện hỗ trợ quốc tế hóa cho JasperReports.

Ý tưởng chính là sử dụng biểu thức đặc biệt $R{} để bản địa hóa văn bản và hình ảnh.

Các mẫu cho hình ảnh:

<image scaleImage="Clip"> 
    <reportElement positionType="Float" x="20" y="20" width="100" height="50"/> 
    <imageExpression class="java.lang.String"><![CDATA[$R{image.flag}]]></imageExpression> 
</image> 

Các mẫu cho văn bản ($ R {} cú pháp):

<textField isBlankWhenNull="true"> 
<reportElement x="20" y="100" width="530" height="20"/> 
<textElement/> 
<textFieldExpression class="java.lang.String"><![CDATA[$R{sampleString}]]></textFieldExpression> 
</textField> 

hoặc (các msg() phương pháp):

text.message=The program picked up {0} as a random number. 
<textField isStretchWithOverflow="true" isBlankWhenNull="true"> 
<reportElement x="20" y="210" width="530" height="20"/> 
<textElement/> 
<textFieldExpression class="java.lang.String"><![CDATA[msg($R{text.message}, $P{number})]]></textFieldExpression> 
</textField> 
Các vấn đề liên quan