Browse Source

Merge pull request #172 from henninghall/adding-missing-chinese-locales

Fixing different language related crashes
master
Henning Hall 5 years ago
committed by GitHub
parent
commit
054c458d5c
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 24 additions and 7 deletions
  1. +9
    -0
      android/src/main/java/com/henninghall/date_picker/DayFormats.java
  2. +12
    -4
      android/src/main/java/com/henninghall/date_picker/LocaleUtils.java
  3. +3
    -3
      android/src/main/java/com/henninghall/date_picker/props/LocaleProp.java

+ 9
- 0
android/src/main/java/com/henninghall/date_picker/DayFormats.java View File

@ -736,6 +736,15 @@ public class DayFormats {
put("zh_HK","M月d日EEE"); put("zh_HK","M月d日EEE");
put("zh_MO","M月d日EEE"); put("zh_MO","M月d日EEE");
put("zh_SG","M月d日EEE"); put("zh_SG","M月d日EEE");
put("zh_Hans","M月d日EEE");
put("zh_Hans_CN","M月d日EEE");
put("zh_Hans_HK","M月d日EEE");
put("zh_Hans_MO","M月d日EEE");
put("zh_Hans_SG","M月d日EEE");
put("zh_Hant", "M月d日EEE");
put("zh_Hant_HK","M月d日EEE");
put("zh_Hant_MO","M月d日EEE");
put("zh_Hant_TW","M月d日EEE");
put("zu","EEE MMM d"); put("zu","EEE MMM d");
put("zu_ZA","EEE MMM d"); put("zu_ZA","EEE MMM d");
}}; }};

+ 12
- 4
android/src/main/java/com/henninghall/date_picker/LocaleUtils.java View File

@ -1,12 +1,8 @@
package com.henninghall.date_picker; package com.henninghall.date_picker;
import android.os.Build;
import android.util.Log;
import java.text.DateFormat; import java.text.DateFormat;
import java.text.SimpleDateFormat; import java.text.SimpleDateFormat;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date;
import java.util.Locale; import java.util.Locale;
public class LocaleUtils { public class LocaleUtils {
@ -38,6 +34,18 @@ public class LocaleUtils {
return ((SimpleDateFormat)format).toLocalizedPattern().replace(",", ""); return ((SimpleDateFormat)format).toLocalizedPattern().replace(",", "");
} }
public static Locale getLocale(String languageTag){
Locale locale;
try{
locale = org.apache.commons.lang3.LocaleUtils.toLocale(languageTag);
} catch (Exception e ){
// Some locales can only be interpreted from country string (for instance zh_Hans_CN )
String firstPartOfLanguageTag = languageTag.substring(0, languageTag.indexOf(""));
locale = org.apache.commons.lang3.LocaleUtils.toLocale(firstPartOfLanguageTag);
}
return locale;
}
} }

+ 3
- 3
android/src/main/java/com/henninghall/date_picker/props/LocaleProp.java View File

@ -3,8 +3,8 @@ package com.henninghall.date_picker.props;
import android.os.Build; import android.os.Build;
import com.facebook.react.bridge.Dynamic; import com.facebook.react.bridge.Dynamic;
import com.henninghall.date_picker.LocaleUtils;
import org.apache.commons.lang3.LocaleUtils;
import java.util.Locale; import java.util.Locale;
@ -18,7 +18,7 @@ public class LocaleProp extends Prop {
} }
static private Locale getDefaultLocale(){ static private Locale getDefaultLocale(){
return LocaleUtils.toLocale(getDefaultLanguageTag());
return LocaleUtils.getLocale(getDefaultLanguageTag());
} }
static private String getDefaultLanguageTag(){ static private String getDefaultLanguageTag(){
@ -34,7 +34,7 @@ public class LocaleProp extends Prop {
@Override @Override
public Locale toValue(Dynamic value){ public Locale toValue(Dynamic value){
this.languageTag = value.asString().replace('-','_'); this.languageTag = value.asString().replace('-','_');
return LocaleUtils.toLocale(languageTag);
return LocaleUtils.getLocale(languageTag);
} }
} }

Loading…
Cancel
Save