diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..395dde9
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,3 @@
+*.iml
+.idea/
+target/
\ No newline at end of file
diff --git a/plugin-formula-script.iml b/plugin-formula-script.iml
deleted file mode 100644
index 1415f28..0000000
--- a/plugin-formula-script.iml
+++ /dev/null
@@ -1,97 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
new file mode 100644
index 0000000..5a9d5b8
--- /dev/null
+++ b/pom.xml
@@ -0,0 +1,29 @@
+
+
+ 4.0.0
+
+
+ com.fr.plugin
+ starter
+ 10.0
+
+
+ jar
+ plugin-formula-script
+
+
+ ${project.basedir}/../webroot/WEB-INF/plugins/plugin-com.fr.solution.plugin.design.formula.script-1.0/classes
+
+
+ org.apache.maven.plugins
+ maven-compiler-plugin
+
+
+ 6
+
+
+
+
+
\ No newline at end of file
diff --git a/src/com/fr/solution/plugin/design/formula/locale/formula.properties b/src/com/fr/solution/plugin/design/formula/locale/formula.properties
deleted file mode 100644
index f45cd3e..0000000
--- a/src/com/fr/solution/plugin/design/formula/locale/formula.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-FR-Designer_Group_Formula_Script_Title=Script Formula
-FR-Designer_Group_Formula_Basic_Title=Basic Formula
-FR-Designer_Group_Formula_Calculate=Calculate
-FR-Designer_Group_Formula_Result=Result
-FR-Designer_Group_Formula_Calculate_Error=Error
\ No newline at end of file
diff --git a/src/com/fr/solution/plugin/design/formula/locale/formula_en_US.properties b/src/com/fr/solution/plugin/design/formula/locale/formula_en_US.properties
deleted file mode 100644
index f45cd3e..0000000
--- a/src/com/fr/solution/plugin/design/formula/locale/formula_en_US.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-FR-Designer_Group_Formula_Script_Title=Script Formula
-FR-Designer_Group_Formula_Basic_Title=Basic Formula
-FR-Designer_Group_Formula_Calculate=Calculate
-FR-Designer_Group_Formula_Result=Result
-FR-Designer_Group_Formula_Calculate_Error=Error
\ No newline at end of file
diff --git a/src/com/fr/solution/plugin/design/formula/locale/formula_ja_JP.properties b/src/com/fr/solution/plugin/design/formula/locale/formula_ja_JP.properties
deleted file mode 100644
index f45cd3e..0000000
--- a/src/com/fr/solution/plugin/design/formula/locale/formula_ja_JP.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-FR-Designer_Group_Formula_Script_Title=Script Formula
-FR-Designer_Group_Formula_Basic_Title=Basic Formula
-FR-Designer_Group_Formula_Calculate=Calculate
-FR-Designer_Group_Formula_Result=Result
-FR-Designer_Group_Formula_Calculate_Error=Error
\ No newline at end of file
diff --git a/src/com/fr/solution/plugin/design/formula/locale/formula_zh_CN.properties b/src/com/fr/solution/plugin/design/formula/locale/formula_zh_CN.properties
deleted file mode 100644
index fb45983..0000000
--- a/src/com/fr/solution/plugin/design/formula/locale/formula_zh_CN.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-FR-Designer_Group_Formula_Script_Title=\u811A\u672C\u516C\u5F0F
-FR-Designer_Group_Formula_Basic_Title=\u5E38\u89C4\u516C\u5F0F
-FR-Designer_Group_Formula_Calculate=\u5B9E\u65F6\u8BA1\u7B97
-FR-Designer_Group_Formula_Result=\u516C\u5F0F\u7684\u8BA1\u7B97\u7ED3\u679C\u4E3A
-FR-Designer_Group_Formula_Calculate_Error=\u53D1\u751F\u9519\u8BEF\uFF0C\u9519\u8BEF\u4FE1\u606F\u4E3A
\ No newline at end of file
diff --git a/src/com/fr/solution/plugin/design/formula/FormulaConstants.java b/src/main/java/com/fr/solution/plugin/design/formula/FormulaConstants.java
similarity index 100%
rename from src/com/fr/solution/plugin/design/formula/FormulaConstants.java
rename to src/main/java/com/fr/solution/plugin/design/formula/FormulaConstants.java
diff --git a/src/com/fr/solution/plugin/design/formula/ScriptFormulaLocalFinder.java b/src/main/java/com/fr/solution/plugin/design/formula/ScriptFormulaLocalFinder.java
similarity index 100%
rename from src/com/fr/solution/plugin/design/formula/ScriptFormulaLocalFinder.java
rename to src/main/java/com/fr/solution/plugin/design/formula/ScriptFormulaLocalFinder.java
diff --git a/src/com/fr/solution/plugin/design/formula/ScriptFormulaUI.java b/src/main/java/com/fr/solution/plugin/design/formula/ScriptFormulaUI.java
similarity index 100%
rename from src/com/fr/solution/plugin/design/formula/ScriptFormulaUI.java
rename to src/main/java/com/fr/solution/plugin/design/formula/ScriptFormulaUI.java
diff --git a/src/com/fr/solution/plugin/design/formula/ui/GroupFormulaPane.java b/src/main/java/com/fr/solution/plugin/design/formula/ui/GroupFormulaPane.java
similarity index 94%
rename from src/com/fr/solution/plugin/design/formula/ui/GroupFormulaPane.java
rename to src/main/java/com/fr/solution/plugin/design/formula/ui/GroupFormulaPane.java
index 2f52a63..2a0d81b 100644
--- a/src/com/fr/solution/plugin/design/formula/ui/GroupFormulaPane.java
+++ b/src/main/java/com/fr/solution/plugin/design/formula/ui/GroupFormulaPane.java
@@ -4,7 +4,6 @@ import com.fr.base.BaseFormula;
import com.fr.base.BaseUtils;
import com.fr.base.FRContext;
import com.fr.base.Parameter;
-import com.fr.base.ParameterHelper;
import com.fr.base.ParameterMapNameSpace;
import com.fr.base.io.IOFile;
import com.fr.data.TableDataSource;
@@ -123,7 +122,7 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis
JPanel textPane = FRGUIPaneFactory.createBorderLayout_S_Pane();
this.add(textPane, BorderLayout.CENTER);
JPanel checkBoxAndButtonPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
- UILabel formulaLabel = new UILabel(Inter.getLocText("FormulaD-Input_formula_in_the_text_area_below") + ":"
+ UILabel formulaLabel = new UILabel(Inter.getLocText("Plugin-Design_Basic_FormulaD_Input_Formula_In_The_Text_Area_Below") + ":"
+ " ");
formulaLabel.setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));
@@ -136,10 +135,10 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis
initTipsPane();
- UIButton checkValidButton = new UIButton(Inter.getLocText("FormulaD-Check_Valid"));
+ UIButton checkValidButton = new UIButton(Inter.getLocText("Plugin-Design_Basic_FormulaD_Check_Valid"));
checkValidButton.addActionListener(checkValidActionListener);
- UIButton calculateButton = new UIButton(Inter.getLocText("FR-Designer_Group_Formula_Calculate"));
+ UIButton calculateButton = new UIButton(Inter.getLocText("Plugin-Design_Group_Formula_Calculate"));
calculateButton.addActionListener(calculateActionListener);
JPanel checkBoxPane = FRGUIPaneFactory.createNormalFlowInnerContainer_S_Pane();
@@ -158,7 +157,7 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis
JPanel searchPane = new JPanel(new BorderLayout(4, 4));
searchPane.add(keyWordTextField, BorderLayout.CENTER);
- UIButton searchButton = new UIButton(Inter.getLocText("FR-Designer_FormulaPane_Search"));
+ UIButton searchButton = new UIButton(Inter.getLocText("Plugin-Design_Basic_FormulaPane_Search"));
searchPane.add(searchButton, BorderLayout.EAST);
tipsPane.add(searchPane, BorderLayout.NORTH);
initKeyWordTextFieldKeyListener();
@@ -290,7 +289,7 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis
@Override
protected String title4PopupWindow() {
- return Inter.getLocText("FormulaD-Formula_Definition");
+ return Inter.getLocText("Plugin-Design_Basic_FormulaD_Formula_Definition");
}
/**
@@ -325,7 +324,7 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis
Calculator calculator = Calculator.createCalculator();
JTemplate, ?> template = HistoryTemplateListPane.getInstance().getCurrentEditingTemplate();
if (template != null) {
- IOFile file = template.getTarget();
+ IOFile file = (IOFile) template.getTarget();
calculator.setAttribute(TableDataSource.class, file);
calculator.pushNameSpace(SimpleCellValueNameSpace.getInstance());
}
@@ -350,9 +349,9 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis
String message;
try {
Object result = formula.evalValue(calculator);
- message = Inter.getLocText("FR-Designer_Group_Formula_Result") + ":" + GeneralUtils.objectToString(result);
+ message = Inter.getLocText("Plugin-Design_Group_Formula_Result") + ":" + GeneralUtils.objectToString(result);
} catch (UtilEvalError utilEvalError) {
- message = Inter.getLocText("FR-Designer_Group_Formula_Calculate_Error") + ":" + utilEvalError.getMessage();
+ message = Inter.getLocText("Plugin-Design_Group_Formula_Calculate_Error") + ":" + utilEvalError.getMessage();
}
return message;
}
@@ -371,7 +370,7 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis
UIScrollPane functionTypeScrollPane = new UIScrollPane(functionTypeList);
functionTypeScrollPane.setBorder(new UIRoundedBorder(UIConstants.LINE_COLOR, 1, UIConstants.ARC));
functionTypeScrollPane.setPreferredSize(new Dimension(140, 200));
- functionPane.add(this.createNamePane(Inter.getLocText("FormulaD-Function_category") + ":", functionTypeScrollPane), BorderLayout.WEST);
+ functionPane.add(this.createNamePane(Inter.getLocText("Plugin-Design_Basic_FormulaD_Function_Category") + ":", functionTypeScrollPane), BorderLayout.WEST);
initTypeListCellRenderer();
initGroupTypeModel();
initTypeListSelectionListener();
@@ -485,7 +484,7 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis
UIScrollPane functionNameScrollPane = new UIScrollPane(functionNameList);
functionNameScrollPane.setPreferredSize(new Dimension(140, 200));
functionPane.add(
- this.createNamePane(Inter.getLocText("FormulaD-Function_name") + ":", functionNameScrollPane),
+ this.createNamePane(Inter.getLocText("Plugin-Design_Basic_FormulaD_Function_Name") + ":", functionNameScrollPane),
BorderLayout.CENTER);
functionNameScrollPane.setBorder(new UIRoundedBorder(UIConstants.LINE_COLOR, 1, UIConstants.ARC));
initFunctionNameListCellRenderer();
@@ -499,7 +498,7 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis
UIScrollPane desScrollPane = new UIScrollPane(descriptionTextArea);
desScrollPane.setBorder(null);
- this.add(this.createNamePane(Inter.getLocText("FR-Designer_FormulaPane_Formula_Description") + ":", desScrollPane), BorderLayout.EAST);
+ this.add(this.createNamePane(Inter.getLocText("Plugin-Design_Basic_FormulaPane_Formula_Description") + ":", desScrollPane), BorderLayout.EAST);
descriptionTextArea.setBackground(Color.white);
descriptionTextArea.setLineWrap(true);
descriptionTextArea.setWrapStyleWord(true);
@@ -572,7 +571,7 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis
UIScrollPane variablesTreePane = new UIScrollPane(variablesTree);
variablesTreePane.setBorder(new UIRoundedBorder(UIConstants.LINE_COLOR, 1, UIConstants.ARC));
this.add(this.createNamePane(
- Inter.getLocText("FR-Designer_FormulaPane_Variables") + ":", variablesTreePane), BorderLayout.CENTER);
+ Inter.getLocText("Plugin-Design_Basic_FormulaPane_Variables") + ":", variablesTreePane), BorderLayout.CENTER);
variablesTree.setRootVisible(false);
variablesTree.setShowsRootHandles(true);
variablesTree.addMouseListener(applyTextMouseListener);
@@ -601,7 +600,7 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis
private class LookDetailAction extends UpdateAction {
public LookDetailAction() {
- this.setName(Inter.getLocText("FR-Designer_FormulaPane_Function_Detail"));
+ this.setName(Inter.getLocText("Plugin-Design_Basic_FormulaPane_Function_Detail"));
this.setMnemonic('L');
this.setSmallIcon(BaseUtils.readIcon("/com/fr/design/images/m_file/preview.png"));
}
@@ -616,7 +615,7 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis
BasicPane basicPane = new BasicPane() {
@Override
protected String title4PopupWindow() {
- return Inter.getLocText("FR-Designer_FormulaPane_Function_Detail");
+ return Inter.getLocText("Plugin-Design_Basic_FormulaPane_Function_Detail");
}
};
basicPane.setLayout(FRGUIPaneFactory.createBorderLayout());
@@ -705,24 +704,24 @@ public class GroupFormulaPane extends BasicPane implements UIFormula, OperateLis
rootNode.add(bindCellNode);
}
- rootNode.add(new TextFolderUserObject(Inter.getLocText("FormulaD-Data_Fields"),
+ rootNode.add(new TextFolderUserObject(Inter.getLocText("Plugin-Design_Basic_FormulaD_Data_Fields"),
BaseUtils.readIcon("/com/fr/design/images/dialog/table.png"),
variableResolver.resolveColumnNames()).createMutableTreeNode());
// Set cutReport Variable
- rootNode.add(new TextFolderUserObject(Inter.getLocText("FR-Designer_FormulaPane_Variables"),
+ rootNode.add(new TextFolderUserObject(Inter.getLocText("Plugin-Design_Basic_FormulaPane_Variables"),
BaseUtils.readIcon("/com/fr/design/images/dialog/variable.png"),
variableResolver.resolveCurReportVariables()).createMutableTreeNode());
- rootNode.add(new TextFolderUserObject(Inter.getLocText(new String[]{"Datasource-Datasource", "Parameter"}),
+ rootNode.add(new TextFolderUserObject(Inter.getLocText("Plugin-Design_Basic_Parameter_Source_Type_Tabledata"),
BaseUtils.readIcon("/com/fr/design/images/dialog/parameter.gif"),
variableResolver.resolveTableDataParameterVariables()).createMutableTreeNode());
- rootNode.add(new TextFolderUserObject(Inter.getLocText("ParameterD-Report_Parameter"),
+ rootNode.add(new TextFolderUserObject(Inter.getLocText("Plugin-Design_Basic_ParameterD_Report_Parameter"),
BaseUtils.readIcon("/com/fr/design/images/m_report/p.gif"),
variableResolver.resolveReportParameterVariables()).createMutableTreeNode());
- rootNode.add(new TextFolderUserObject(Inter.getLocText("M_Server-Global_Parameters"),
+ rootNode.add(new TextFolderUserObject(Inter.getLocText("Plugin-Design_Basic_M_Server_Global_Parameters"),
BaseUtils.readIcon("/com/fr/design/images/dialog/parameter.gif"),
variableResolver.resolveGlobalParameterVariables()).createMutableTreeNode());
diff --git a/src/com/fr/solution/plugin/design/formula/ui/GroupFormulaPaneWhenReserveFormula.java b/src/main/java/com/fr/solution/plugin/design/formula/ui/GroupFormulaPaneWhenReserveFormula.java
similarity index 95%
rename from src/com/fr/solution/plugin/design/formula/ui/GroupFormulaPaneWhenReserveFormula.java
rename to src/main/java/com/fr/solution/plugin/design/formula/ui/GroupFormulaPaneWhenReserveFormula.java
index 8d4ba7a..4b02ab2 100644
--- a/src/com/fr/solution/plugin/design/formula/ui/GroupFormulaPaneWhenReserveFormula.java
+++ b/src/main/java/com/fr/solution/plugin/design/formula/ui/GroupFormulaPaneWhenReserveFormula.java
@@ -20,7 +20,7 @@ public class GroupFormulaPaneWhenReserveFormula extends GroupFormulaPane {
@Override
protected void extendCheckBoxPane(JPanel checkBoxPane) {
- reserveCheckBox4Result = new UICheckBox(Inter.getLocText("FR-Designer_Export-Save-Formula"));
+ reserveCheckBox4Result = new UICheckBox(Inter.getLocText("Plugin-Design_Basic_Export_Save_Formula"));
reserveCheckBox4Result.setSelected(false);
reserveCheckBox4Result.addChangeListener(new ChangeListener() {
@@ -33,7 +33,7 @@ public class GroupFormulaPaneWhenReserveFormula extends GroupFormulaPane {
}
}
});
- reserveCheckBox4Write = new UICheckBox(Inter.getLocText("FR-Designer_Write-Save-Formula"));
+ reserveCheckBox4Write = new UICheckBox(Inter.getLocText("Plugin-Design_Basic_Write_Save_Formula"));
reserveCheckBox4Write.setSelected(false);
checkBoxPane.add(reserveCheckBox4Result, BorderLayout.CENTER);
diff --git a/src/com/fr/solution/plugin/design/formula/ui/evt/OperateListener.java b/src/main/java/com/fr/solution/plugin/design/formula/ui/evt/OperateListener.java
similarity index 100%
rename from src/com/fr/solution/plugin/design/formula/ui/evt/OperateListener.java
rename to src/main/java/com/fr/solution/plugin/design/formula/ui/evt/OperateListener.java
diff --git a/src/com/fr/solution/plugin/design/formula/ui/type/BaseFormulaPane.java b/src/main/java/com/fr/solution/plugin/design/formula/ui/type/BaseFormulaPane.java
similarity index 96%
rename from src/com/fr/solution/plugin/design/formula/ui/type/BaseFormulaPane.java
rename to src/main/java/com/fr/solution/plugin/design/formula/ui/type/BaseFormulaPane.java
index c7cbed5..5061d5d 100644
--- a/src/com/fr/solution/plugin/design/formula/ui/type/BaseFormulaPane.java
+++ b/src/main/java/com/fr/solution/plugin/design/formula/ui/type/BaseFormulaPane.java
@@ -63,7 +63,7 @@ public abstract class BaseFormulaPane extends FurtherBasi
formulaTextArea.setForeground(Color.black);
String text = formulaTextArea.getText();
// 判断在中文输入状态是否还包含提示符 要删掉
- String tip = "\n\n\n" + Inter.getLocText("FR-Designer_FormulaPane_Tips");
+ String tip = "\n\n\n" + Inter.getLocText("Plugin-Design_Basic_FormulaPane_Tips");
if (text.contains(tip)) {
text = text.substring(0, text.indexOf(tip));
insertPosition = 0;
@@ -151,7 +151,7 @@ public abstract class BaseFormulaPane extends FurtherBasi
protected void fixContent(String content) {
if (content.trim().equals("=")) {
this.formulaTextArea.setForeground(Color.gray);
- this.formulaTextArea.setText("\n\n\n" + Inter.getLocText("FR-Designer_FormulaPane_Tips"));
+ this.formulaTextArea.setText("\n\n\n" + Inter.getLocText("Plugin-Design_Basic_FormulaPane_Tips"));
this.formulaTextArea.setCaretPosition(0);
ifHasBeenWritten = 0;
operateListener.clearMathListModel();
@@ -320,7 +320,7 @@ public abstract class BaseFormulaPane extends FurtherBasi
JOptionPane.showMessageDialog(
BaseFormulaPane.this,
- (expression != null ? Inter.getLocText("FormulaD-Valid_Formula") : Inter.getLocText("FormulaD-Invalid_Formula")) + ".", ProductConstants.PRODUCT_NAME,
+ (expression != null ? Inter.getLocText("Plugin-Design_Basic_FormulaD_Valid_Formula") : Inter.getLocText("Plugin-Design_Basic_FormulaD_Invalid_Formula")) + ".", ProductConstants.PRODUCT_NAME,
JOptionPane.INFORMATION_MESSAGE);
}
}
@@ -336,6 +336,6 @@ public abstract class BaseFormulaPane extends FurtherBasi
@Override
public String title4PopupWindow() {
- return Inter.getLocText("FR-Designer_Group_Formula_Basic_Title");
+ return Inter.getLocText("Plugin-Design_Group_Formula_Basic_Title");
}
}
diff --git a/src/com/fr/solution/plugin/design/formula/ui/type/CategoryFormulaPane.java b/src/main/java/com/fr/solution/plugin/design/formula/ui/type/CategoryFormulaPane.java
similarity index 100%
rename from src/com/fr/solution/plugin/design/formula/ui/type/CategoryFormulaPane.java
rename to src/main/java/com/fr/solution/plugin/design/formula/ui/type/CategoryFormulaPane.java
diff --git a/src/com/fr/solution/plugin/design/formula/ui/type/CommonEvent.java b/src/main/java/com/fr/solution/plugin/design/formula/ui/type/CommonEvent.java
similarity index 100%
rename from src/com/fr/solution/plugin/design/formula/ui/type/CommonEvent.java
rename to src/main/java/com/fr/solution/plugin/design/formula/ui/type/CommonEvent.java
diff --git a/src/com/fr/solution/plugin/design/formula/ui/type/impl/BasicFormulaPane.java b/src/main/java/com/fr/solution/plugin/design/formula/ui/type/impl/BasicFormulaPane.java
similarity index 100%
rename from src/com/fr/solution/plugin/design/formula/ui/type/impl/BasicFormulaPane.java
rename to src/main/java/com/fr/solution/plugin/design/formula/ui/type/impl/BasicFormulaPane.java
diff --git a/src/com/fr/solution/plugin/design/formula/ui/type/impl/ScriptFormulaPane.java b/src/main/java/com/fr/solution/plugin/design/formula/ui/type/impl/ScriptFormulaPane.java
similarity index 96%
rename from src/com/fr/solution/plugin/design/formula/ui/type/impl/ScriptFormulaPane.java
rename to src/main/java/com/fr/solution/plugin/design/formula/ui/type/impl/ScriptFormulaPane.java
index 4b41bcf..43a3c70 100644
--- a/src/com/fr/solution/plugin/design/formula/ui/type/impl/ScriptFormulaPane.java
+++ b/src/main/java/com/fr/solution/plugin/design/formula/ui/type/impl/ScriptFormulaPane.java
@@ -78,6 +78,6 @@ public class ScriptFormulaPane extends BaseFormulaPane {
@Override
public String title4PopupWindow() {
- return Inter.getLocText("FR-Designer_Group_Formula_Script_Title");
+ return Inter.getLocText("Plugin-Design_Group_Formula_Script_Title");
}
}
diff --git a/src/main/resources/com/fr/solution/plugin/design/formula/locale/formula.properties b/src/main/resources/com/fr/solution/plugin/design/formula/locale/formula.properties
new file mode 100644
index 0000000..ef93291
--- /dev/null
+++ b/src/main/resources/com/fr/solution/plugin/design/formula/locale/formula.properties
@@ -0,0 +1,23 @@
+Plugin-Design_Group_Formula_Script_Title=Script Formula
+Plugin-Design_Group_Formula_Basic_Title=Basic Formula
+Plugin-Design_Group_Formula_Calculate=Calculate
+Plugin-Design_Group_Formula_Result=Result
+Plugin-Design_Group_Formula_Calculate_Error=Error
+Plugin-Design_Basic_FormulaD_Check_Valid=Check Valid
+Plugin-Design_Basic_FormulaPane_Search=Search
+Plugin-Design_Basic_FormulaD_Formula_Definition=Definition
+Plugin-Design_Basic_FormulaD_Function_Category=Category
+Plugin-Design_Basic_FormulaD_Function_Name=Name
+Plugin-Design_Basic_FormulaPane_Formula_Description=Description
+Plugin-Design_Basic_FormulaD_Input_Formula_In_The_Text_Area_Below=Input formula in the text area below
+Plugin-Design_Basic_FormulaPane_Variables=Variables
+Plugin-Design_Basic_FormulaPane_Function_Detail= Function Detail
+Plugin-Design_Basic_FormulaD_Data_Fields=Data Fields
+Plugin-Design_Basic_Parameter_Source_Type_Tabledata=Tabledata parameter
+Plugin-Design_Basic_ParameterD_Report_Parameter=Report Parameter
+Plugin-Design_Basic_M_Server_Global_Parameters=Global Parameters
+Plugin-Design_Basic_Export_Save_Formula=Preserve formula when export
+Plugin-Design_Basic_Write_Save_Formula=Preserve formula when fill
+Plugin-Design_Basic_FormulaPane_Tips=Tips\\:You_Can_Input_B1_To_Input_The_Data_Of_The_First_Row_Second_Column
+Plugin-Design_Basic_FormulaD_Valid_Formula=Valid Formula
+Plugin-Design_Basic_FormulaD_Invalid_Formula=Invalid Formula
\ No newline at end of file
diff --git a/src/main/resources/com/fr/solution/plugin/design/formula/locale/formula_en_US.properties b/src/main/resources/com/fr/solution/plugin/design/formula/locale/formula_en_US.properties
new file mode 100644
index 0000000..d00870c
--- /dev/null
+++ b/src/main/resources/com/fr/solution/plugin/design/formula/locale/formula_en_US.properties
@@ -0,0 +1,23 @@
+Plugin-Design_Group_Formula_Script_Title=Script Formula
+Plugin-Design_Group_Formula_Basic_Title=Basic Formula
+Plugin-Design_Group_Formula_Calculate=Calculate
+Plugin-Design_Group_Formula_Result=Result
+Plugin-Design_Group_Formula_Calculate_Error=Error
+Plugin-Design_Basic_FormulaD_Check_Valid=Check Valid
+Plugin-Design_Basic_FormulaPane_Search=Search
+Plugin-Design_Basic_FormulaD_Formula_Definition=Definition
+Plugin-Design_Basic_FormulaD_Function_Category=Category
+Plugin-Design_Basic_FormulaD_Function_Name=Name
+Plugin-Design_Basic_FormulaPane_Formula_Description=Description
+Plugin-Design_Basic_FormulaD_Input_Formula_In_The_Text_Area_Below=Input formula in the text area below
+Plugin-Design_Basic_FormulaPane_Variables=Variables
+Plugin-Design_Basic_FormulaPane_Function_Detail=Function Detail
+Plugin-Design_Basic_FormulaD_Data_Fields=Data Fields
+Plugin-Design_Basic_Parameter_Source_Type_Tabledata=Tabledata parameter
+Plugin-Design_Basic_ParameterD_Report_Parameter=Report Parameter
+Plugin-Design_Basic_M_Server_Global_Parameters=Global Parameters
+Plugin-Design_Basic_Export_Save_Formula=Preserve formula when export
+Plugin-Design_Basic_Write_Save_Formula=Preserve formula when fill
+Plugin-Design_Basic_FormulaPane_Tips=Tips\\:You_Can_Input_B1_To_Input_The_Data_Of_The_First_Row_Second_Column
+Plugin-Design_Basic_FormulaD_Valid_Formula=Valid Formula
+Plugin-Design_Basic_FormulaD_Invalid_Formula=Invalid Formula
\ No newline at end of file
diff --git a/src/main/resources/com/fr/solution/plugin/design/formula/locale/formula_ja_JP.properties b/src/main/resources/com/fr/solution/plugin/design/formula/locale/formula_ja_JP.properties
new file mode 100644
index 0000000..d00870c
--- /dev/null
+++ b/src/main/resources/com/fr/solution/plugin/design/formula/locale/formula_ja_JP.properties
@@ -0,0 +1,23 @@
+Plugin-Design_Group_Formula_Script_Title=Script Formula
+Plugin-Design_Group_Formula_Basic_Title=Basic Formula
+Plugin-Design_Group_Formula_Calculate=Calculate
+Plugin-Design_Group_Formula_Result=Result
+Plugin-Design_Group_Formula_Calculate_Error=Error
+Plugin-Design_Basic_FormulaD_Check_Valid=Check Valid
+Plugin-Design_Basic_FormulaPane_Search=Search
+Plugin-Design_Basic_FormulaD_Formula_Definition=Definition
+Plugin-Design_Basic_FormulaD_Function_Category=Category
+Plugin-Design_Basic_FormulaD_Function_Name=Name
+Plugin-Design_Basic_FormulaPane_Formula_Description=Description
+Plugin-Design_Basic_FormulaD_Input_Formula_In_The_Text_Area_Below=Input formula in the text area below
+Plugin-Design_Basic_FormulaPane_Variables=Variables
+Plugin-Design_Basic_FormulaPane_Function_Detail=Function Detail
+Plugin-Design_Basic_FormulaD_Data_Fields=Data Fields
+Plugin-Design_Basic_Parameter_Source_Type_Tabledata=Tabledata parameter
+Plugin-Design_Basic_ParameterD_Report_Parameter=Report Parameter
+Plugin-Design_Basic_M_Server_Global_Parameters=Global Parameters
+Plugin-Design_Basic_Export_Save_Formula=Preserve formula when export
+Plugin-Design_Basic_Write_Save_Formula=Preserve formula when fill
+Plugin-Design_Basic_FormulaPane_Tips=Tips\\:You_Can_Input_B1_To_Input_The_Data_Of_The_First_Row_Second_Column
+Plugin-Design_Basic_FormulaD_Valid_Formula=Valid Formula
+Plugin-Design_Basic_FormulaD_Invalid_Formula=Invalid Formula
\ No newline at end of file
diff --git a/src/main/resources/com/fr/solution/plugin/design/formula/locale/formula_zh_CN.properties b/src/main/resources/com/fr/solution/plugin/design/formula/locale/formula_zh_CN.properties
new file mode 100644
index 0000000..de1b9bb
--- /dev/null
+++ b/src/main/resources/com/fr/solution/plugin/design/formula/locale/formula_zh_CN.properties
@@ -0,0 +1,23 @@
+Plugin-Design_Group_Formula_Script_Title=\u811A\u672C\u516C\u5F0F
+Plugin-Design_Group_Formula_Basic_Title=\u5E38\u89C4\u516C\u5F0F
+Plugin-Design_Group_Formula_Calculate=\u5B9E\u65F6\u8BA1\u7B97
+Plugin-Design_Group_Formula_Result=\u516C\u5F0F\u7684\u8BA1\u7B97\u7ED3\u679C\u4E3A
+Plugin-Design_Group_Formula_Calculate_Error=\u53D1\u751F\u9519\u8BEF\uFF0C\u9519\u8BEF\u4FE1\u606F\u4E3A
+Plugin-Design_Basic_FormulaD_Check_Valid=\u68C0\u67E5\u5408\u6CD5\u6027
+Plugin-Design_Basic_FormulaPane_Search=\u641C\u7D22
+Plugin-Design_Basic_FormulaD_Formula_Definition=\u51FD\u6570\u5B9A\u4E49
+Plugin-Design_Basic_FormulaD_Function_Category=\u51FD\u6570\u7C7B\u578B
+Plugin-Design_Basic_FormulaD_Function_Name=\u51FD\u6570\u540D
+Plugin-Design_Basic_FormulaPane_Formula_Description=\u516C\u5F0F\u8BF4\u660E
+Plugin-Design_Basic_FormulaD_Input_Formula_In_The_Text_Area_Below=\u8BF7\u5728\u4E0B\u9762\u7684\u6587\u672C\u7F16\u8F91\u6846\u91CC\u9762\u8F93\u5165\u516C\u5F0F
+Plugin-Design_Basic_FormulaPane_Variables=\u53D8\u91CF
+Plugin-Design_Basic_FormulaPane_Function_Detail=\u51FD\u6570\u660E\u7EC6
+Plugin-Design_Basic_FormulaD_Data_Fields=\u6570\u636E\u9879
+Plugin-Design_Basic_Parameter_Source_Type_Tabledata=\u6570\u636E\u96C6\u53C2\u6570
+Plugin-Design_Basic_ParameterD_Report_Parameter=\u62A5\u8868\u53C2\u6570
+Plugin-Design_Basic_M_Server_Global_Parameters=\u5168\u5C40\u53C2\u6570
+Plugin-Design_Basic_Export_Save_Formula=\u5BFC\u51FA/\u7F16\u8F91\u7ED3\u679C\u65F6,\u4FDD\u7559\u516C\u5F0F
+Plugin-Design_Basic_Write_Save_Formula=\u586B\u62A5/\u5206\u6790\u65F6\uFF0C\u4FDD\u7559\u516C\u5F0F\u7528\u4E8E\u8BA1\u7B97
+Plugin-Design_Basic_FormulaPane_Tips=\u63D0\u793A\\:\u60A8\u53EF\u4EE5\u901A\u8FC7\u8F93\u5165B1\u6765\u5199\u5165\u7B2C\u4E00\u884C\u7B2C\u4E8C\u5217\u7684\u6570\u636E\u3002
+Plugin-Design_Basic_FormulaD_Valid_Formula=\u5408\u6CD5\u7684\u516C\u5F0F
+Plugin-Design_Basic_FormulaD_Invalid_Formula=\u975E\u6CD5\u7684\u516C\u5F0F
\ No newline at end of file