diff --git a/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java b/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java index 375e40e4c..68bb91711 100644 --- a/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java +++ b/designer-base/src/main/java/com/fr/design/DesignerEnvManager.java @@ -1424,11 +1424,9 @@ public class DesignerEnvManager implements XMLReadable, XMLWriter { * @return */ private Locale checkLocale(Locale locale) { - // Yvan: REPORT-39341,有一些情况下,获取到的是zh-Hans-CN,转成zh_CN - if (locale != null) { - locale = new Locale(locale.getLanguage(), locale.getCountry()); - } - return SupportLocale.getInstance().isSupport(locale) ? locale : Locale.US; + // Yvan: REPORT-39341,有一些情况下,获取到的是zh-Hans-CN这种,需要找到项目中最匹配的Locale + return SupportLocale.getInstance().isSupport(locale) ? + locale : SupportLocale.getInstance().getSuitableLocale(locale); } private void readReportLengthUnit(XMLableReader reader) { diff --git a/designer-base/src/test/java/com/fr/design/DesignerEnvManagerTest.java b/designer-base/src/test/java/com/fr/design/DesignerEnvManagerTest.java index f1e991579..b7d123d66 100644 --- a/designer-base/src/test/java/com/fr/design/DesignerEnvManagerTest.java +++ b/designer-base/src/test/java/com/fr/design/DesignerEnvManagerTest.java @@ -1,8 +1,6 @@ package com.fr.design; -import com.fr.invoke.Reflect; import junit.framework.TestCase; -import org.easymock.EasyMock; import java.util.Locale; @@ -19,20 +17,4 @@ public class DesignerEnvManagerTest extends TestCase{ assertEquals("下边界", envManager.getLanguage(), Locale.SIMPLIFIED_CHINESE); } - - public void testCheckLocale() { - DesignerEnvManager envManager = EasyMock.createMock(DesignerEnvManager.class); - Reflect on = Reflect.on(envManager); - - //验证zh-Hans-CN - Locale locale = Reflect.on(Locale.class).call("getInstance", "zh", "", "CN", "", null).get(); - assertEquals(Locale.SIMPLIFIED_CHINESE, on.call("checkLocale", locale).get()); - - //验证其它语言 - assertEquals(Locale.SIMPLIFIED_CHINESE, on.call("checkLocale", Locale.SIMPLIFIED_CHINESE).get()); - assertEquals(Locale.TRADITIONAL_CHINESE, on.call("checkLocale", Locale.TRADITIONAL_CHINESE).get()); - assertEquals(Locale.US, on.call("checkLocale", Locale.US).get()); - assertEquals(Locale.JAPAN, on.call("checkLocale", Locale.JAPAN).get()); - assertEquals(Locale.KOREA, on.call("checkLocale", Locale.KOREA).get()); - } }