From 26ee6854f61369a398f0210e4fe935f0a8ccb9f3 Mon Sep 17 00:00:00 2001 From: obo Date: Thu, 25 Jul 2024 16:24:00 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AD=97=E4=BD=93=E6=A3=80=E6=B5=8B=E3=80=81?= =?UTF-8?q?=E9=80=89=E9=A1=B9=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../design/actions/file/PreferencePane.java | 30 ++++++++++++------- .../fr/design/layout/FRGUIPaneFactory.java | 4 ++- .../mainframe/check/CheckFontInfoDialog.java | 3 +- 3 files changed, 25 insertions(+), 12 deletions(-) diff --git a/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java b/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java index f8703275f8..faf6f2fdb9 100644 --- a/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java +++ b/designer-base/src/main/java/com/fr/design/actions/file/PreferencePane.java @@ -1,5 +1,6 @@ package com.fr.design.actions.file; +import com.fr.base.i18n.BidiUtils; import com.fr.config.Configuration; import com.fr.config.ServerPreferenceConfig; import com.fr.design.DesignerEnvManager; @@ -82,6 +83,7 @@ import javax.swing.JPanel; import javax.swing.JProgressBar; import javax.swing.KeyStroke; import javax.swing.ScrollPaneConstants; +import javax.swing.SwingConstants; import javax.swing.SwingUtilities; import javax.swing.SwingWorker; import javax.swing.Timer; @@ -377,6 +379,7 @@ public class PreferencePane extends BasicPane { cloudAnalyticsDelayCheckBox = new UICheckBox(i18nText("Fine-Design_Cloud_Analytics_Delay")); designerStartupOption.add(cloudAnalyticsDelayCheckBox); advancePane.add(designerStartupOption); + BidiUtils.applyOrientationByLocale(generalPane, advancePane, vcsPane); } private JPanel createImageExportSettingPane() { @@ -393,8 +396,8 @@ public class PreferencePane extends BasicPane { previewRenderGroup.add(previewRenderSpeed); JPanel imageExportSettingPane = FRGUIPaneFactory.createBorderLayout_S_Pane(); JComponent[][] templateComps = { - {new UILabel(Toolkit.i18nText("Fine-Design_Report_Engine_Enlarge_Or_Reduce") + ":"), this.previewResolutionBtnS, this.previewResolutionBtnM}, - {new UILabel(Toolkit.i18nText("Fine-Design_Image_Export_Rendering_Quality") + ":"), this.previewRenderQuality, this.previewRenderSpeed}, + {new UILabel(createLabelColonName("Fine-Design_Report_Engine_Enlarge_Or_Reduce")), this.previewResolutionBtnS, this.previewResolutionBtnM}, + {new UILabel(createLabelColonName("Fine-Design_Image_Export_Rendering_Quality")), this.previewRenderQuality, this.previewRenderSpeed}, }; imageExportSettingPane.add( TableLayoutHelper.createGapTableLayoutPane( @@ -471,7 +474,7 @@ public class PreferencePane extends BasicPane { } } }); - vcsPane.add(enableVcsPanel); + vcsPane.add(remindVcsLabel); vcsPane.add(intervalPanel); if (VcsHelper.getInstance().isLegacyMode()) { vcsPane.add(saveCommitCheckBox); @@ -659,7 +662,7 @@ public class PreferencePane extends BasicPane { } }); JPanel keyStrokePane = new JPanel(new BorderLayout()); - keyStrokePane.add(new UILabel(i18nText("Fine-Design_Basic_Support_Auto_Complete_Shortcut") + ":"), BorderLayout.WEST); + keyStrokePane.add(new UILabel(createLabelColonName("Fine-Design_Basic_Support_Auto_Complete_Shortcut")), BidiUtils.rtl() ? BorderLayout.EAST : BorderLayout.WEST); shortCutLabel = new UILabel(); keyStrokePane.add(shortCutLabel, BorderLayout.CENTER); keyStrokePane.setBorder(new EmptyBorder(0, 10,0,0)); @@ -738,10 +741,10 @@ public class PreferencePane extends BasicPane { paginationLineColorTBButton.setEnabled(this.isEnabled()); JPanel leftPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - leftPane.add(new UILabel(i18nText("Fine-Design_Basic_Preference_Grid_Line_Color") + ":")); + leftPane.add(new UILabel(createLabelColonName("Fine-Design_Basic_Preference_Grid_Line_Color"))); leftPane.add(gridLineColorTBButton); JPanel rightPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane(); - rightPane.add(new UILabel(i18nText("Fine-Design_Basic_Preference_Pagination_Line_Color") + ":")); + rightPane.add(new UILabel(createLabelColonName("Fine-Design_Basic_Preference_Pagination_Line_Color"))); rightPane.add(paginationLineColorTBButton); colorSettingPane.add(leftPane); colorSettingPane.add(rightPane); @@ -753,7 +756,7 @@ public class PreferencePane extends BasicPane { advancePane.add(logPane); JPanel logExportPane = FRGUIPaneFactory.createTitledBorderPane("log" + i18nText("Fine-Design_Basic_Export_Setting")); logPane.add(logExportPane); - UILabel logLabel = new UILabel(i18nText("Fine-Design_Basic_Select_Export_Log_Directory") + ":"); + UILabel logLabel = new UILabel(i18nText(createLabelColonName("Fine-Design_Basic_Select_Export_Log_Directory"))); logExportPane.add(logLabel, BorderLayout.WEST); logExportDirectoryField = new UITextField(24); logExportPane.add(logExportDirectoryField, BorderLayout.CENTER); @@ -873,8 +876,8 @@ public class PreferencePane extends BasicPane { reportLengthComboBox = new UIComboBox(UnitConvertUtil.getUnitItems()); reportLengthComboBox.setPreferredSize(new Dimension(80, 20)); reportLengthComboBox.setMinimumSize(new Dimension(80, 20)); - UILabel pagelengthLabel = new UILabel(i18nText("Fine-Design_Basic_Page_Setup_Scale_Units") + ":"); - UILabel reportLengthLabel = new UILabel(i18nText("Fine-Design_Basic_Report_Design_Ruler_Units") + ":"); + UILabel pagelengthLabel = new UILabel(createLabelColonName("Fine-Design_Basic_Page_Setup_Scale_Units")); + UILabel reportLengthLabel = new UILabel(createLabelColonName("Fine-Design_Basic_Report_Design_Ruler_Units")); Component[][] lengthComponents = { {pagelengthLabel, pageLengthComboBox, reportLengthLabel, reportLengthComboBox}, }; @@ -893,7 +896,7 @@ public class PreferencePane extends BasicPane { portEditor.setPreferredSize(new Dimension(80, 20)); portEditor.setMinimumSize(new Dimension(80, 20)); UILabel notiJlabel = new UILabel(i18nText("Fine-Design_Basic_Work_After_Restart_Designer")); - UILabel serverPortLabel = new UILabel(i18nText("Fine-Design_Basic_Web_Preview_Port") + ":"); + UILabel serverPortLabel = new UILabel(createLabelColonName("Fine-Design_Basic_Web_Preview_Port")); Component[][] portComponents = { {serverPortLabel, portEditor, notiJlabel}, }; @@ -1487,5 +1490,12 @@ public class PreferencePane extends BasicPane { return gcButton; } + /** + * 创建带冒号的label名,适配RTL + */ + private String createLabelColonName(String i18nKey) { + return BidiUtils.rtl() ? ":" + i18nText(i18nKey) : i18nText(i18nKey) + ":"; + } + } diff --git a/designer-base/src/main/java/com/fr/design/layout/FRGUIPaneFactory.java b/designer-base/src/main/java/com/fr/design/layout/FRGUIPaneFactory.java index 417533465d..e165a424f1 100644 --- a/designer-base/src/main/java/com/fr/design/layout/FRGUIPaneFactory.java +++ b/designer-base/src/main/java/com/fr/design/layout/FRGUIPaneFactory.java @@ -1,5 +1,6 @@ package com.fr.design.layout; +import com.fr.base.i18n.BidiUtils; import com.fr.design.border.UITitledBorder; import com.fr.design.gui.ilable.UILabel; import com.fr.stable.AssistUtils; @@ -17,6 +18,7 @@ import java.awt.Component; import java.awt.Container; import java.awt.Dimension; import java.awt.FlowLayout; +import java.awt.GridLayout; import java.awt.LayoutManager; public class FRGUIPaneFactory { @@ -209,7 +211,7 @@ public class FRGUIPaneFactory { JPanel jp = new JPanel(); UITitledBorder explainBorder = UITitledBorder.createBorderWithTitle(string); jp.setBorder(explainBorder); - jp.setLayout(new FlowLayout(FlowLayout.LEFT)); + jp.setLayout(new FlowLayout(BidiUtils.rtl() ? FlowLayout.RIGHT : FlowLayout.LEFT)); return jp; } diff --git a/designer-base/src/main/java/com/fr/design/mainframe/check/CheckFontInfoDialog.java b/designer-base/src/main/java/com/fr/design/mainframe/check/CheckFontInfoDialog.java index 8274b65355..3fe98dfa92 100644 --- a/designer-base/src/main/java/com/fr/design/mainframe/check/CheckFontInfoDialog.java +++ b/designer-base/src/main/java/com/fr/design/mainframe/check/CheckFontInfoDialog.java @@ -1,5 +1,6 @@ package com.fr.design.mainframe.check; +import com.fr.base.i18n.BidiUtils; import com.fr.design.dialog.link.MessageWithLink; import com.fr.design.gui.ibutton.UIButton; import com.fr.design.gui.ilable.UILabel; @@ -123,7 +124,7 @@ public class CheckFontInfoDialog extends JDialog implements ActionListener { this.add(hiddenPanel, BorderLayout.CENTER); this.add(bottomPanel, BorderLayout.SOUTH); this.setSize(DesignSizeI18nManager.getInstance().i18nDimension("com.fr.design.mainframe.check.CheckFontInfoDialog.collapse")); - + BidiUtils.applyOrientationByLocale(this); GUICoreUtils.centerWindow(this); }