diff --git a/src/main/java/com/tagtraum/perf/gcviewer/view/AboutDialog.java b/src/main/java/com/tagtraum/perf/gcviewer/view/AboutDialog.java
index bf8be6e6..bc83093a 100644
--- a/src/main/java/com/tagtraum/perf/gcviewer/view/AboutDialog.java
+++ b/src/main/java/com/tagtraum/perf/gcviewer/view/AboutDialog.java
@@ -1,29 +1,18 @@
package com.tagtraum.perf.gcviewer.view;
-import java.awt.Color;
-import java.awt.Dimension;
-import java.awt.FlowLayout;
-import java.awt.Frame;
-import java.awt.GridBagConstraints;
-import java.awt.GridBagLayout;
-import java.awt.Insets;
-import java.awt.Panel;
-import java.awt.event.ActionEvent;
-import java.awt.event.ActionListener;
-import javax.swing.BorderFactory;
-import javax.swing.ImageIcon;
-import javax.swing.JButton;
-import javax.swing.JLabel;
-import javax.swing.JPanel;
-import javax.swing.border.SoftBevelBorder;
-import javax.swing.plaf.basic.BasicHTML;
-import javax.swing.text.View;
-
import com.tagtraum.perf.gcviewer.util.BuildInfoReader;
import com.tagtraum.perf.gcviewer.util.LocalisationHelper;
import com.tagtraum.perf.gcviewer.view.util.ImageHelper;
import com.tagtraum.perf.gcviewer.view.util.UrlDisplayHelper;
+import javax.swing.*;
+import javax.swing.border.SoftBevelBorder;
+import javax.swing.plaf.basic.BasicHTML;
+import javax.swing.text.View;
+import java.awt.*;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+
/**
* About dialog showing version and contributors information.
*
@@ -134,7 +123,7 @@ public AboutDialog(Frame f) {
Panel buttonPanel = new Panel();
buttonPanel.setLayout(new FlowLayout(FlowLayout.CENTER));
if (UrlDisplayHelper.displayUrlIsSupported()) {
- JButton homePageButton = new JButton("Homepage");
+ JButton homePageButton = new JButton(LocalisationHelper.getString("button_homepage"));
homePageButton.setActionCommand(ACTION_HOMEPAGE);
homePageButton.addActionListener(this);
buttonPanel.add(homePageButton);
diff --git a/src/main/resources/localStrings.properties b/src/main/resources/localStrings.properties
index c5173efa..3d674b87 100644
--- a/src/main/resources/localStrings.properties
+++ b/src/main/resources/localStrings.properties
@@ -15,6 +15,8 @@ button_cancel = Cancel
button_ok = OK
+button_homepage = Homepage
+
data_panel_acc_fullgcpauses = Accumulated full GC
data_panel_acc_gcpauses = Accumulated GC
diff --git a/src/main/resources/localStrings_zh_CN.properties b/src/main/resources/localStrings_zh_CN.properties
new file mode 100644
index 00000000..72a3b012
--- /dev/null
+++ b/src/main/resources/localStrings_zh_CN.properties
@@ -0,0 +1,380 @@
+#Generated by ResourceBundle Editor (https://github.com/essiembp/eclipse-rbe)
+#Generated by ResourceBundle Editor (http://eclipse-rbe.sourceforge.net)
+# $Id: $
+# please keep these sorted and up to date
+
+about_dialog_image = aboutgcviewer.png
+
+about_dialog_title = About GCViewer (关于GCViewer)
+
+action_zoom = Zoom (缩放)
+
+action_zoom_hint = Zoom (缩放提示)
+
+button_cancel = Cancel (取消)
+
+button_ok = OK (确定)
+
+button_homepage = Homepage(主页)
+
+data_panel_acc_fullgcpauses = Accumulated full GC (记录full GC)
+
+data_panel_acc_gcpauses = Accumulated GC (记录GC)
+
+data_panel_acc_pauses = Accumulated pauses (记录暂停)
+
+data_panel_avg_fullgcpause = Avg full GC (平均fullGC)
+
+data_panel_avg_gcpause = Avg GC (平均GC)
+
+data_panel_avg_pause = Avg Pause (平均暂停)
+
+data_panel_avg_pause_interval = Avg pause interval (平均暂停间隔)
+
+data_panel_avgfreedmemorybyfullgc = Avg freed full GC (平均full GC释放内存)
+
+data_panel_avgfreedmemorybygc = Avg freed GC (平均GC释放内存)
+
+data_panel_avgrelativepostfullgcincrease = Avg rel inc after FGC (Full GC后平均相对增加)
+
+data_panel_avgrelativepostgcincrease = Avg rel inc after GC (GC后平均相对增加)
+
+data_panel_count_full_gc_pauses = Number of full gc pauses (full GC暂停次数)
+
+data_panel_count_gc_pauses = Number of gc pauses (GC暂停次数)
+
+data_panel_count_pauses = Number of pauses (暂停次数)
+
+data_panel_details_avg = avg (s) (平均值(秒))
+
+data_panel_details_count = n (数量)
+
+data_panel_details_max = max (s) (最大值(秒))
+
+data_panel_details_min = min (s) (最小值(秒))
+
+data_panel_details_name = name (名称)
+
+data_panel_details_stddev = stddev (标准差)
+
+data_panel_details_sum = sum (s) (总和(秒))
+
+data_panel_details_sum_percent = sum (%) (总和(百分比))
+
+data_panel_details_total = total (总计)
+
+data_panel_footprintafterconcgc_avg = Avg heap after conc GC (并发GC后平均堆)
+
+data_panel_footprintafterconcgc_max = Max heap after conc GC (并发GC后最大堆)
+
+data_panel_footprintafterfullgc_avg = Avg heap after full GC (full GC后平均堆)
+
+data_panel_footprintafterfullgc_max = Max heap after full GC (full GC后最大堆)
+
+data_panel_footprintaftergc_avg = Avg after GC (GC后平均)
+
+data_panel_freedmemory = Freed Memory (释放内存)
+
+data_panel_freedmemorybyfullgc = Freed by full GC (由full GC释放)
+
+data_panel_freedmemorybygc = Freed by GC (由GC释放)
+
+data_panel_freedmemorypermin = Freed Mem/Min (每分钟释放内存)
+
+data_panel_group_concurrent_gc_events = Concurrent GCs (并发GC事件)
+
+data_panel_group_full_gc_pauses = Full gc pauses (full GC暂停)
+
+data_panel_group_gc_phases = Gc phases (GC阶段)
+
+data_panel_group_gc_pauses = Gc pauses (GC暂停)
+
+data_panel_group_total_pause = Total pause (总暂停)
+
+data_panel_memory_heap_usage = Total heap (usage / alloc. max) (总堆(使用/分配最大))
+
+data_panel_memory_initiatingoccupancyfraction = InitiatingOccFraction (avg / max) (触发占用率(平均/最大))
+
+data_panel_memory_perm_heap_usage = Perm heap (usage / alloc. max) (永久堆(使用/分配最大))
+
+data_panel_memory_promotion_avg = Avg promotion (平均晋升)
+
+data_panel_memory_promotion_total = Total promotion (总晋升)
+
+data_panel_memory_tenured_heap_usage = Tenured heap (usage / alloc. max) (老年代堆(使用/分配最大))
+
+data_panel_memory_young_heap_usage = Young heap (usage / alloc. max) (年轻代堆(使用/分配最大))
+
+data_panel_min_max_full_gc_pause = Min / max full gc pause (最小/最大full GC暂停)
+
+data_panel_min_max_full_gc_pause_interval = Min / max full gc pause interval (最小/最大full GC暂停间隔)
+
+data_panel_min_max_gc_pause = Min / max gc pause (最小/最大GC暂停)
+
+data_panel_min_max_pause = Min / Max Pause (最小/最大暂停)
+
+data_panel_min_max_pause_interval = Min / max pause interval (最小/最大暂停间隔)
+
+data_panel_performance_fullgc = Full GC Performance (full GC性能)
+
+data_panel_performance_gc = GC Performance (GC性能)
+
+data_panel_slopeafterfullgc = Slope full GC (full GC斜率)
+
+data_panel_slopeaftergc = Slope GC (GC斜率)
+
+data_panel_tab_chart = Chart (图表)
+
+data_panel_tab_details = Event details (事件详情)
+
+data_panel_tab_memory = Memory (内存)
+
+data_panel_tab_parser = Parser (解析器)
+
+data_panel_tab_pause = Pause (暂停)
+
+data_panel_tab_summary = Summary (摘要)
+
+data_panel_tenuredafterconcgc_avg = Avg tenured after conc GC (并发GC后平均老年代)
+
+data_panel_tenuredafterconcgc_max = Max tenured after conc GC (并发GC后最大老年代)
+
+data_panel_throughput = Throughput (吞吐量)
+
+data_panel_total_time = Total Time (总时间)
+
+data_panel_vm_op_overhead = VM operations overhead (VM操作开销)
+
+datareader_parseerror_dialog_message = {0} problems found during parsing process (解析过程中发现{0}个问题)
+
+datareaderfactory_instantiation_failed = Failed to recognize file format. (无法识别文件格式。)
+
+datawriterfactory_instantiation_failed = File format is not supported: (文件格式不支持:)
+
+fileexport_dialog_confirm_overwrite = File exists. Overwrite? (文件已存在。覆盖吗?)
+
+fileexport_dialog_csv = Comma separated values (.csv) (逗号分隔值(.csv))
+
+fileexport_dialog_csv_ts = Comma separated values with unix timestamp (.csv) (带Unix时间戳的逗号分隔值(.csv))
+
+fileexport_dialog_error_occured = An error occured. (发生错误。)
+
+fileexport_dialog_png = PNG Image (.png) (PNG图像(.png))
+
+fileexport_dialog_simplelog = Simple GC Log (GCHisto compatible, .simple.log) (简单GC日志(GCHisto兼容,.simple.log))
+
+fileexport_dialog_summarylog = Summary GC Log (.csv) (摘要GC日志(.csv))
+
+fileexport_dialog_title = Export GC log file (导出GC日志文件)
+
+fileexport_dialog_txt = Plain data (.txt) (纯文本数据(.txt))
+
+fileexport_dialog_write_file_failed = Failed to write file. (写入文件失败。)
+
+fileopen_dialog_add_checkbox = Add file
to current
window.(向当前窗口添加文件)
+
+fileopen_dialog_hint_add_checkbox = When checked, the new document will be added to
the current window, instead of opened in a new window.(选中时,新文档将添加到当前窗口,而不是在新窗口中打开)
+
+fileopen_dialog_read_file_failed = Failed to read file.(读取文件失败)
+
+fileopen_dialog_title = Choose GC log file(选择GC日志文件)
+
+main_frame_menu_file = File(文件)
+
+main_frame_menu_help = Help(帮助)
+
+main_frame_menu_mnemonic_file = F(文件快捷键F)
+
+main_frame_menu_mnemonic_help = H(帮助快捷键H)
+
+main_frame_menu_mnemonic_view = V(视图快捷键V)
+
+main_frame_menu_mnemonic_window = W(窗口快捷键W)
+
+main_frame_menu_view = View(视图)
+
+main_frame_menu_window = Window(窗口)
+
+main_frame_menuitem_about = About GCViewer(关于GCViewer)
+
+main_frame_menuitem_add_file = Add View(添加视图)
+
+main_frame_menuitem_antialias = Antialias(抗锯齿)
+
+main_frame_menuitem_arrange = Arrange(排列)
+
+main_frame_menuitem_concurrent_collection_begin_end = Concurrent collections(并发收集的开始和结束)
+
+main_frame_menuitem_enter_fullscreen = Enter Full Screen(进入全屏)
+
+main_frame_menuitem_exit = Exit(退出)
+
+main_frame_menuitem_export = Export(导出)
+
+main_frame_menuitem_full_gc_lines = Full GC Lines(full GC线)
+
+main_frame_menuitem_gc_times_line = GC Times Line(GC时间线)
+
+main_frame_menuitem_gc_times_rectangles = GC Times Rectangles(GC时间矩形)
+
+main_frame_menuitem_hint_about = Shows information about GCViewer(显示关于GCViewer的信息)
+
+main_frame_menuitem_hint_add_file = Adds a gc view to the current window(向当前窗口添加gc视图)
+
+main_frame_menuitem_hint_antialias = Use antialiasing when rendering lines (potentially slows down rendering significantly)(在渲染线条时使用抗锯齿(可能会显著降低渲染速度))
+
+main_frame_menuitem_hint_arrange = Arranges all windows(排列所有窗口)
+
+main_frame_menuitem_hint_concurrent_collection_begin_end = Shows lines for every begin (cyan) and end (pink) of a concurrent collection cycle.(显示每个并发收集周期的开始(青色)和结束(粉色)线)
+
+main_frame_menuitem_hint_enter_fullscreen = Switch to full screen mode(切换到全屏模式)
+
+main_frame_menuitem_hint_exit = Exits GCViewer(退出GCViewer)
+
+main_frame_menuitem_hint_export = Exports the current file(导出当前文件)
+
+main_frame_menuitem_hint_full_gc_lines = Shows lines for every full garbage collection(显示每次full GC的线)
+
+main_frame_menuitem_hint_gc_times_line = Shows a line that indicates the time garbage collection takes(显示指示垃圾收集所需时间的线)
+
+main_frame_menuitem_hint_gc_times_rectangles = Draws filled rectangles that indicate how long a garbage collection took(绘制填充矩形,指示垃圾收集所花费的时间)
+
+main_frame_menuitem_hint_inc_gc_lines = Shows lines for every incremental garbage collection(显示每次增量垃圾收集的线)
+
+main_frame_menuitem_hint_initial_mark_level = Shows level of memory at initial-mark (only available for algorithms with concurrent collections).(显示初始标记时的内存级别(仅适用于具有并发收集的算法))
+
+main_frame_menuitem_hint_leave_fullscreen = Exit full screen mode(退出全屏模式)
+
+main_frame_menuitem_hint_license = license information(许可信息)
+
+main_frame_menuitem_hint_open_file = Opens a file(打开文件)
+
+main_frame_menuitem_hint_open_series = Opens consecutive files as one file(将连续文件作为一个文件打开)
+
+main_frame_menuitem_hint_open_url = Opens a URL(打开URL)
+
+main_frame_menuitem_hint_readme = read various information about GCViewer(阅读关于GCViewer的各种信息)
+
+main_frame_menuitem_hint_recent_files = Opens a recent View(打开最近的视图)
+
+main_frame_menuitem_hint_refresh = Reloads the current file(重新加载当前文件)
+
+main_frame_menuitem_hint_show_data_panel = Shows the data panel with detailed information about the current document(显示包含当前文档详细信息的数据面板)
+
+main_frame_menuitem_hint_show_date_stamp = Changes between display of time since beginning in seconds and absolute datestamps.(在从开始以来的秒数和绝对日期戳之间切换显示)
+
+main_frame_menuitem_hint_tenured_memory = Part of the heap that constitutes the tenured generation(构成老年代的堆的一部分)
+
+main_frame_menuitem_hint_total_memory = Total size of allocated memory(已分配内存的总大小)
+
+main_frame_menuitem_hint_used_memory = Part of the heap that is actually used(实际使用的堆的一部分)
+
+main_frame_menuitem_hint_used_tenured_memory = Part of the tenured heap that is actually used(实际使用的老年代堆的一部分)
+
+main_frame_menuitem_hint_used_young_memory = Part of the young heap that is actually used(实际使用的年轻代堆的一部分)
+
+main_frame_menuitem_hint_watch = Watches and reloads the current file, if it changes(如果当前文件更改,则监视并重新加载它)
+
+main_frame_menuitem_hint_young_memory = Part of the heap that constitutes the young generation(构成年轻代的堆的一部分)
+
+main_frame_menuitem_inc_gc_lines = Inc GC Lines(增量GC线)
+
+main_frame_menuitem_initial_mark_level = Initial mark level(初始标记级别)
+
+main_frame_menuitem_leave_fullscreen = Exit Full Screen(退出全屏)
+
+main_frame_menuitem_license = License(许可)
+
+main_frame_menuitem_mnemonic_about = A(关于快捷键A)
+
+main_frame_menuitem_mnemonic_add_file = A(添加文件快捷键A)
+
+main_frame_menuitem_mnemonic_antialias = A(抗锯齿快捷键A)
+
+main_frame_menuitem_mnemonic_arrange = G(排列快捷键G)
+
+main_frame_menuitem_mnemonic_concurrent_collection_begin_end = N(并发收集开始和结束快捷键N)
+
+main_frame_menuitem_mnemonic_exit = X(退出快捷键X)
+
+main_frame_menuitem_mnemonic_export = E(导出快捷键E)
+
+main_frame_menuitem_mnemonic_full_gc_lines = F(full GC线快捷键F)
+
+main_frame_menuitem_mnemonic_gc_times_line = L(GC时间线快捷键L)
+
+main_frame_menuitem_mnemonic_gc_times_rectangles = R(GC时间矩形快捷键R)
+
+main_frame_menuitem_mnemonic_inc_gc_lines = I(增量GC线快捷键I)
+
+main_frame_menuitem_mnemonic_initial_mark_level = M(初始标记级别快捷键M)
+
+main_frame_menuitem_mnemonic_license = L(许可快捷键L)
+
+main_frame_menuitem_mnemonic_open_file = O(打开文件快捷键O)
+
+main_frame_menuitem_mnemonic_open_series = S(打开系列快捷键S)
+
+main_frame_menuitem_mnemonic_open_url = U(打开URL快捷键U)
+
+main_frame_menuitem_mnemonic_readme = R(Readme快捷键R)
+
+main_frame_menuitem_mnemonic_recent_files = F(最近文件快捷键F)
+
+main_frame_menuitem_mnemonic_refresh = R(刷新快捷键R)
+
+main_frame_menuitem_mnemonic_show_data_panel = D(显示数据面板快捷键D)
+
+main_frame_menuitem_mnemonic_show_date_stamp = D(显示日期戳快捷键D)
+
+main_frame_menuitem_mnemonic_tenured_memory = E(老年代内存快捷键E)
+
+main_frame_menuitem_mnemonic_total_memory = T(总内存快捷键T)
+
+main_frame_menuitem_mnemonic_used_memory = U(已使用内存快捷键U)
+
+main_frame_menuitem_mnemonic_used_tenured_memory = U(已使用老年代内存快捷键U)
+
+main_frame_menuitem_mnemonic_used_young_memory = U(已使用年轻代内存快捷键U)
+
+main_frame_menuitem_mnemonic_watch = W(监视快捷键W)
+
+main_frame_menuitem_mnemonic_young_memory = Y(年轻代内存快捷键)
+
+main_frame_menuitem_open_file = Open File(打开文件)
+
+main_frame_menuitem_open_series = Open Series(打开系列)
+
+main_frame_menuitem_open_url = Open URL(打开URL)
+
+main_frame_menuitem_readme = Readme(自述文件)
+
+main_frame_menuitem_recent_files = Recent Files(最近文件)
+
+main_frame_menuitem_refresh = Refresh(刷新)
+
+main_frame_menuitem_show_data_panel = Data Panel(数据面板)
+
+main_frame_menuitem_show_date_stamp = show datestamps(显示日期戳)
+
+main_frame_menuitem_tenured_memory = Tenured Generation(老年代)
+
+main_frame_menuitem_total_memory = Total Heap(总堆内存)
+
+main_frame_menuitem_used_memory = Used Heap(已用堆内存)
+
+main_frame_menuitem_used_tenured_memory = Used Tenured Heap(已用老年代内存)
+
+main_frame_menuitem_used_young_memory = Used young Heap(已用年轻代内存)
+
+main_frame_menuitem_watch = Watch(监视)
+
+main_frame_menuitem_young_memory = Young Generation(年轻代)
+
+timeoffset_prompt = Log start time:(日志开始时间:)
+
+urlopen_dialog_add_checkbox = Add URL to current window.(将URL添加到当前窗口)
+
+urlopen_dialog_hint_add_checkbox = When checked, the new document will be added to
the current window, instead of opened in a new window.(勾选后,新文档将添加到当前窗口,而不是在新窗口中打开)
+
+urlopen_dialog_title = Open GC URL(打开GC URL)