Продолжаю разбираться с локализацией

This commit is contained in:
Ivan Murashov
2017-09-05 18:59:19 +03:00
parent 671b3afe6d
commit 3bd9eb4d91
12 changed files with 279 additions and 205 deletions

View File

@@ -38,6 +38,22 @@ android {
}
}
productFlavors {
en {
buildConfigField "String", "locale", "\"en\""
}
ru {
buildConfigField "String", "locale", "\"ru\""
}
ua {
buildConfigField "String", "locale", "\"ua\""
}
}
sourceSets.main {
jniLibs.srcDir 'jniLibs'
}

View File

@@ -6,9 +6,11 @@ import android.util.Log;
import android.widget.Toast;
import android.content.Context;
import android.content.SharedPreferences;
import android.content.res.Configuration;
import android.content.res.Resources;
import com.dinect.checker.zbar.CameraActivity;
import com.dinect.checker.zxing.ScannerActivity;
import java.util.Locale;
import io.flutter.app.FlutterActivity;
import io.flutter.plugins.GeneratedPluginRegistrant;
@@ -47,7 +49,7 @@ public class MainActivity extends FlutterActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
GeneratedPluginRegistrant.registerWith(this);
loadLocale(this);
mPreferences = getPreferences(Context.MODE_PRIVATE);
Log.d(TAG, "application prefs:");
@@ -144,6 +146,29 @@ public class MainActivity extends FlutterActivity {
}
}
public static void loadLocale(Context context) {
Resources res = context.getResources();
Configuration configuration = new Configuration(res.getConfiguration());
switch (BuildConfig.locale) {
case "en":
configuration.locale = new Locale("en");
Locale.setDefault(configuration.locale);
res.updateConfiguration(configuration, res.getDisplayMetrics());
break;
case "ru":
configuration.locale = new Locale("ru");
Locale.setDefault(configuration.locale);
res.updateConfiguration(configuration, res.getDisplayMetrics());
break;
case "ua":
configuration.locale = new Locale("ua");
Locale.setDefault(configuration.locale);
res.updateConfiguration(configuration, res.getDisplayMetrics());
break;
}
}
public void handleItemClick() {
}